r:modelli:regressione_logistica
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedente | |||
| r:modelli:regressione_logistica [17/06/2025 07:50] – [I coefficienti] Agnese Vardanega | r:modelli:regressione_logistica [16/10/2025 14:44] (versione attuale) – Agnese Vardanega | ||
|---|---|---|---|
| Linea 6: | Linea 6: | ||
| ====== Regressione logistica ====== | ====== Regressione logistica ====== | ||
| - | < | ||
| Modello utilizzato quando la variabile dipendente è di tipo dicotomico (categoriale). | Modello utilizzato quando la variabile dipendente è di tipo dicotomico (categoriale). | ||
| Linea 12: | Linea 11: | ||
| Obiettivo del modello è di stabilire la probabilità di $Y$ (0 - 1), in base al valore di $X$ (0 - 1). | Obiettivo del modello è di stabilire la probabilità di $Y$ (0 - 1), in base al valore di $X$ (0 - 1). | ||
| - | </ | ||
| ===== Equazioni ===== | ===== Equazioni ===== | ||
| Linea 19: | Linea 17: | ||
| Vedi [[modelli_lineari_generalizzati|]] | Vedi [[modelli_lineari_generalizzati|]] | ||
| - | < | ||
| - | La funzione che lega le probabilità $\pi$ al predittore lineare $\eta$ (*link*) è la funzione | + | |
| + | La funzione che lega le probabilità $\pi$ al predittore lineare $\eta$ (//link//) è la funzione | ||
| $$\text{logit}(\pi) = \text{ln}\left(\frac{\pi}{1-\pi}\right) = \text{ln}(\omega) = \eta$$ | $$\text{logit}(\pi) = \text{ln}\left(\frac{\pi}{1-\pi}\right) = \text{ln}(\omega) = \eta$$ | ||
| - | Per " | + | Per " |
| $$\pi = \frac{e^{\eta}}{1 + e^{\eta}} $$ | $$\pi = \frac{e^{\eta}}{1 + e^{\eta}} $$ | ||
| - | </ | + | |
| dove $e$ è la base del logaritmo naturale (funzione '' | dove $e$ è la base del logaritmo naturale (funzione '' | ||
| - | < | ||
| - | In pratica, i parametri del modello (i regressori) saranno espressi in termini di *log-odds* ($ln(\omega)$), | ||
| - | </markdown> | + | In pratica, i parametri del modello (i regressori) saranno espressi in termini di //log-odds// ($ln(\omega)$), |
| ===== Applicazione===== | ===== Applicazione===== | ||
| - | < | ||
| - | ```rsplus | + | |
| + | < | ||
| library(tidyverse) | library(tidyverse) | ||
| - | ``` | + | </ |
| - | ```rsplus | + | < |
| # dati | # dati | ||
| library(LabRS) | library(LabRS) | ||
| data(" | data(" | ||
| tabM | tabM | ||
| - | ``` | + | </ |
| - | ``` | + | < |
| ## Genere | ## Genere | ||
| ## Partito | ## Partito | ||
| Linea 60: | Linea 57: | ||
| ## | ## | ||
| ## | ## | ||
| - | ``` | + | </ |
| Eliminiamo la seconda riga della tabella, e otteniamo una tabella 2 x 2: | Eliminiamo la seconda riga della tabella, e otteniamo una tabella 2 x 2: | ||
| - | ```rsplus | + | < |
| tab <- tabM[c(1, | tab <- tabM[c(1, | ||
| tab | tab | ||
| - | ``` | + | </ |
| - | ``` | + | < |
| ## Genere | ## Genere | ||
| ## Partito | ## Partito | ||
| ## | ## | ||
| ## | ## | ||
| - | ``` | + | </ |
| - | </ | ||
| ===== Il modello ===== | ===== Il modello ===== | ||
| Linea 83: | Linea 80: | ||
| ==== La preparazione dei dati ==== | ==== La preparazione dei dati ==== | ||
| - | < | + | |
| Per applicare il modello della regressione logistica, dobbiamo in primo luogo scegliere la **modalità target**, ovvero, della variabile dipendente, quale modalità sarà equivalente a " | Per applicare il modello della regressione logistica, dobbiamo in primo luogo scegliere la **modalità target**, ovvero, della variabile dipendente, quale modalità sarà equivalente a " | ||
| Linea 89: | Linea 86: | ||
| La procedura di R, assegna di default la prima modalità (livello) della variabile dipendente: in questo caso, " | La procedura di R, assegna di default la prima modalità (livello) della variabile dipendente: in questo caso, " | ||
| - | Lo stesso accade per le variabili indipendenti categoriali come Genere (con livelli, ad esempio, " | + | Lo stesso accade per le variabili indipendenti categoriali come Genere (con livelli, ad esempio, " |
| In questo contesto, la preparazione e l' | In questo contesto, la preparazione e l' | ||
| Linea 95: | Linea 92: | ||
| Ad esempio, se volessimo che la categoria target fosse " | Ad esempio, se volessimo che la categoria target fosse " | ||
| - | In generale, per avere un maggior controllo su questi aspetti, è bene trasformare le tabelle in dataframe in *formato lungo* - con le variabili come colonne e le osservazioni come righe. | + | In generale, per avere un maggior controllo su questi aspetti, è bene trasformare le tabelle in dataframe in //formato lungo// - con le variabili come colonne e le osservazioni come righe. |
| - | </ | ||
| ==== La funzione ==== | ==== La funzione ==== | ||
| - | < | + | |
| Per questo esempio, usiamo direttamente la tabella, che verrà trasformata in dataframe dalla procedura, che creerà la variabile ' | Per questo esempio, usiamo direttamente la tabella, che verrà trasformata in dataframe dalla procedura, che creerà la variabile ' | ||
| - | ```rsplus | + | < |
| bin.res <- glm(Partito ~ Genere, data = tab, | bin.res <- glm(Partito ~ Genere, data = tab, | ||
| | | ||
| | | ||
| - | ``` | + | </ |
| Guardiamo la sintesi dei risultati: | Guardiamo la sintesi dei risultati: | ||
| - | ```rsplus | + | < |
| summary(bin.res) | summary(bin.res) | ||
| - | ``` | + | </ |
| - | ``` | + | < |
| ## | ## | ||
| ## Call: | ## Call: | ||
| Linea 139: | Linea 136: | ||
| ## | ## | ||
| ## Number of Fisher Scoring iterations: 4 | ## Number of Fisher Scoring iterations: 4 | ||
| - | ``` | + | </ |
| - | </ | + | |
| ===== Interpretazione dei risultati ===== | ===== Interpretazione dei risultati ===== | ||
| Linea 148: | Linea 145: | ||
| - | < | + | |
| $$\text{Rep} = -0.01457-0.47291 \cdot \text{Donne}$$ | $$\text{Rep} = -0.01457-0.47291 \cdot \text{Donne}$$ | ||
| Linea 154: | Linea 151: | ||
| L' | L' | ||
| - | ```rsplus | + | < |
| log(tab[" | log(tab[" | ||
| - | ``` | + | </ |
| $\beta_1$ è invece il logaritmo dell' | $\beta_1$ è invece il logaritmo dell' | ||
| Linea 162: | Linea 159: | ||
| L' | L' | ||
| - | </ | + | |
| ==== predict (log-odds, eta) ==== | ==== predict (log-odds, eta) ==== | ||
| - | < | + | |
| - | Con la funzione | + | Con la funzione |
| - | ```rsplus | + | < |
| predict(bin.res) | predict(bin.res) | ||
| - | ``` | + | </ |
| - | ``` | + | < |
| ## | ## | ||
| ## -0.01456842 -0.01456842 -0.48747826 -0.48747826 | ## -0.01456842 -0.01456842 -0.48747826 -0.48747826 | ||
| - | ``` | + | </ |
| - | </ | + | |
| ==== fitted (probabilità) ==== | ==== fitted (probabilità) ==== | ||
| - | < | + | |
| Per calcolare le probabilità, | Per calcolare le probabilità, | ||
| Linea 191: | Linea 188: | ||
| $$p_{Rep} = \frac{e^{\eta}} {1 + e^{\eta}}$$ | $$p_{Rep} = \frac{e^{\eta}} {1 + e^{\eta}}$$ | ||
| - | ```rsplus | + | < |
| eta = predict(bin.res) | eta = predict(bin.res) | ||
| 1 - (exp(eta) / (1 + exp(eta))) | 1 - (exp(eta) / (1 + exp(eta))) | ||
| - | ``` | + | </ |
| - | Questa fondamentale informazione è recuperabile direttamente con la funzione | + | Questa fondamentale informazione è recuperabile direttamente con la funzione |
| - | ```rsplus | + | < |
| fitted(bin.res) | fitted(bin.res) | ||
| - | ``` | + | </ |
| - | ``` | + | < |
| ## | ## | ||
| ## 0.4963580 0.4963580 0.3804878 0.3804878 | ## 0.4963580 0.4963580 0.3804878 0.3804878 | ||
| - | ``` | + | </ |
| Linea 214: | Linea 211: | ||
| - | ```rsplus | + | < |
| 1-(fitted(bin.res)) | 1-(fitted(bin.res)) | ||
| - | ``` | + | </ |
| - | ``` | + | < |
| ## | ## | ||
| ## 0.5036420 0.5036420 0.6195122 0.6195122 | ## 0.5036420 0.5036420 0.6195122 0.6195122 | ||
| - | ``` | + | </ |
| - | </ | + | |
| ==== Gli intervalli di confidenza ==== | ==== Gli intervalli di confidenza ==== | ||
| - | < | + | |
| Analogamente, | Analogamente, | ||
| - | ```rsplus | + | < |
| # basati sulla likelihood | # basati sulla likelihood | ||
| exp(confint(bin.res)) | exp(confint(bin.res)) | ||
| - | ``` | + | </ |
| - | ``` | + | < |
| ## 2.5 % 97.5 % | ## 2.5 % 97.5 % | ||
| ## (Intercept) 0.8684174 1.1184090 | ## (Intercept) 0.8684174 1.1184090 | ||
| ## GenereDonne 0.5251018 0.7392535 | ## GenereDonne 0.5251018 0.7392535 | ||
| - | ``` | + | </ |
| L'odd ratio è compreso fra 0,53 e 0,74, confermando che gli uomini si dichiarano democratici in misura minore delle donne. | L'odd ratio è compreso fra 0,53 e 0,74, confermando che gli uomini si dichiarano democratici in misura minore delle donne. | ||
| - | ```rsplus | + | < |
| # basati sugli errori standard | # basati sugli errori standard | ||
| exp(confint.default(bin.res)) | exp(confint.default(bin.res)) | ||
| - | ``` | + | </ |
| - | ``` | + | < |
| ## 2.5 % 97.5 % | ## 2.5 % 97.5 % | ||
| ## (Intercept) 0.8684710 1.1183834 | ## (Intercept) 0.8684710 1.1183834 | ||
| ## GenereDonne 0.5252367 0.7394021 | ## GenereDonne 0.5252367 0.7394021 | ||
| - | ``` | + | </ |
| - | </ | + | |
| {{indexmenu_n> | {{indexmenu_n> | ||
r/modelli/regressione_logistica.txt · Ultima modifica: 16/10/2025 14:44 da Agnese Vardanega
