table(rank) rank">

La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

5. Modello di Regressione logistica con R Enrico Properzi - A.A. 2010/2011.

Presentazioni simili


Presentazione sul tema: "5. Modello di Regressione logistica con R Enrico Properzi - A.A. 2010/2011."— Transcript della presentazione:

1 5. Modello di Regressione logistica con R Enrico Properzi - A.A. 2010/2011

2 I modelli in cui la variabile dipendente è dicotomica rientrano come caso particolare dei modelli di regressione generalizzata. In R la stima di questa tipologia di modelli viene realizzata per mezzo del comando glm (formula, family = gaussian, data, weights, subset, na.action, …) Dove il parametro family può assumere le seguenti specifiche: binomial(link= logit) gaussian(link=identity) Gamma(link=inverse) inverse.gaussian(link=1/mu^2) poisson(link=log) quasi (link=identity, variance=constant) quasibinomial(link=logit) Quasipoisson(link=log) Nel caso particolare di variabile dipendente dicotomica si utilizza il parametro: Family= binomial(link=logit)

3 Caso di studio: Un ricercatore è interessato a come alcune variabili, tra cui il punteggio di laurea (GRE), la media degli esami (GPA) e il prestigio delluniversità (rank) influiscano sullammissione alla scuola di specializzazione post-laurea. La variabile risposta (admit) è quindi una variabile binaria (0/1) graduate <- read.csv("graduate.csv", header=T) str(graduate) 'data.frame': 400 obs. of 4 variables: $ admit: int $ gre : int $ gpa : num $ rank : int attach(graduate) > table(rank) rank

4 > table(admit) admit > table(rank,admit) admit rank

5 Costruiamo un modello logit con un solo regressore (gre) utilizzando la funzione glm mod1 <-glm(admit~gre,family=binomial(link="logit")) > summary(mod1) Call: glm(formula = admit ~ gre, family = binomial(link = "logit")) Deviance Residuals: Min 1Q Median 3Q Max Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) e-06 *** gre *** --- Signif. codes: 0 *** ** 0.01 * (Dispersion parameter for binomial family taken to be 1) Null deviance: on 399 degrees of freedom Residual deviance: on 398 degrees of freedom AIC: Number of Fisher Scoring iterations: 4

6 Costruiamo ora un modello di regressione logistica più completo, utilizzando tutti I regressori a disposizione. Il comando as.factor(rank) indica che la variabile rank viene trattata come un fattore (var. categorica) >modlogit <-glm(admit~gre+gpa+as.factor(rank), + family=binomial(link="logit"), na.action=na.pass) summary(modlogit) Call: glm(formula = admit ~ gre + gpa + as.factor(rank), family = binomial(link = "logit"), na.action = na.pass) Deviance Residuals: Min 1Q Median 3Q Max

7 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) *** gre * gpa * as.factor(rank) * as.factor(rank) *** as.factor(rank) *** --- Signif. codes: 0 *** ** 0.01 * (Dispersion parameter for binomial family taken to be 1) Null deviance: on 399 degrees of freedom Residual deviance: on 394 degrees of freedom AIC: Number of Fisher Scoring iterations: 4

8 Lincremento di ununità della variabile gre determina laumento di del log odds della variabile admit Lincremento di ununità della variabile gpa determina laumento di del log odds della variabile admit Le variabili dummy associate al rank hanno un significato leggermente diverso. Ad esempio, aver frequentato ununiversità con rank 2 riduce il log odds della variabile admit di rispetto allaver frequentato ununiversità con rank 1. Si possono anche esplicitare I coefficienti ed interpretarli come odds- ratio: > exp(modlogit$coef) (Intercept) gre gpa as.factor(rank) as.factor(rank)3 as.factor(rank) Ora possiamo affermare che laumento di ununità della variabile gpa determina laumento di un fattore pari a 2.23 dellodds di essere ammessi alla scuola di specializzazione.

9 CONFRONTO TRA MODELLI Considerando due modelli: Modello completo (C) con k+r variabili esplicative Modello ridotto (R) con k variabili esplicative L kr : verosimiglianza relativa al modello stimato C L k : verosimiglianza relativa al modello stimato R Il metodo più usato per confrontare più modelli è il metodo del rapporto delle verosimiglianze, ovvero il test LR. I confronti tra modelli si fanno costruendo rapporti di verosimiglianze o equivalentemente differenze tra log-verosimiglianze. Nel nostro caso vogliamo confrontare il modello con un solo regressore con quello con tutti i regressori a disposizione. Lipotesi nulla che si vuole verificare è che i coefficienti degli r parametri aggiunti nel modello completo siano congiuntamente nulli. Pertanto se rifiutiamo questa ipotesi allora il modello completo aggiunge qualcosa di significativo al modello più semplice.

10 > L0 <- logLik(mod1)log-verosimiglianza modello semplice > L0 'log Lik.' (df=2) > L1 <- logLik(modlogit) log-verosimiglianza modello completo > L1 'log Lik.' (df=6) > L01 <- as.vector(-2*(L0-L1))test LR > L01 [1] > df<- attr(L1,"df")-attr(L0,"df")calcolo dei gradi di libertà > df [1] 4 > pchisq(L01, df, lower.tail=F)p-value [1] e-05 Il p-value piccolo porta a rifiutare lipotesi nulla -> il modello completo è preferibile!

11 Caso di studio: In unindagine condotta nel a ciascun intervistato era stato chiesto se era daccordo o in disaccordo con la seguente affermazione: le donne dovrebbero occuparsi di mandare avanti la propria casa lasciando agli uomini il compito di mandare avanti il paese Le risposte sono riassunte nel dataset womenrole.txt. Lobiettivo è valutare se le risposte degli uomini e delle donne differiscono e quanto leducazione influisce sulle risposte. donne<- read.table("womenrole.txt", header=T) str(donne) 'data.frame': 42 obs. of 4 variables: $ education: int $ sex : Factor w/ 2 levels "F","M": $ agree : int $ disagree : int Abbiamo quindi due variabili esplicative: sex e education

12 Per definire un modello di regressione logistica utilizzando la funzione glm dobbiamo specificare il numero di accordi e disaccordi come una matrice a due colonne che rappresenta la variabile risposta > women1<- glm(cbind(agree, disagree) ~ sex + education, family=binomial()) > summary(women1) Call: glm(formula = cbind(agree, disagree) ~ sex + education, family = binomial()) Deviance Residuals: Min 1Q Median 3Q Max Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) <2e-16 *** sexM education <2e-16 *** --- Signif. codes: 0 *** ** 0.01 * (Dispersion parameter for binomial family taken to be 1) Null deviance: on 40 degrees of freedom Residual deviance: on 38 degrees of freedom AIC: Number of Fisher Scoring iterations: 4

13 Dalloutput risulta evidente che la variabile education gioca un ruolo significativo nel prevedere se un individuo sia daccordo o meno con laffermazione oggetto dellindagine. La variabile sex sembra invece non essere importante. Proviamo ora a verificare se cè uninterazione tra i due regressori: > women2 <- glm(cbind(agree, disagree) ~ sex*education, family=binomial()) > summary(women2) Call: glm(formula = cbind(agree, disagree) ~ sex * education, family = binomial()) Deviance Residuals: Min 1Q Median 3Q Max Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) < 2e-16 *** sexM * education < 2e-16 *** sexM:education ** --- Signif. codes: 0 *** ** 0.01 * (Dispersion parameter for binomial family taken to be 1)

14 Null deviance: on 40 degrees of freedom Residual deviance: on 37 degrees of freedom AIC: Number of Fisher Scoring iterations: 4 Il termine di interazione sex*education risulta essere altamente significativo. Possiamo osservare che nel caso di pochi anni di scolarizzazione le donne manifestano una maggiore probabilità di essere daccordo con laffermazione rispetto agli uomini. Allaumentare degli anni di scolarizzazione superano i 10 la situazione si ribalta.


Scaricare ppt "5. Modello di Regressione logistica con R Enrico Properzi - A.A. 2010/2011."

Presentazioni simili


Annunci Google