La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

LABORATORIO DI STATISTICA AZIENDALE

Presentazioni simili


Presentazione sul tema: "LABORATORIO DI STATISTICA AZIENDALE"— Transcript della presentazione:

1 LABORATORIO DI STATISTICA AZIENDALE
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 dell’università (rank) influiscano sull’ammissione 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 0 1 273 127 > table(rank,admit) rank 0 1 1 28 33 2 97 54 3 93 28 4 55 12

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 Q Median Q Max Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) e-06 *** gre *** --- Signif. codes: 0 ‘***’ ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (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) -3
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 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (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 L’incremento di un’unità della variabile gre determina l’aumento di 0
L’incremento di un’unità della variabile gre determina l’aumento di del log odds della variabile admit L’incremento di un’unità della variabile gpa determina l’aumento di del log odds della variabile admit Le variabili dummy associate al rank hanno un significato leggermente diverso. Ad esempio, aver frequentato un’università con rank 2 riduce il log odds della variabile admit di rispetto all’aver frequentato un’università con rank 1. Si possono anche esplicitare I coefficienti ed interpretarli come odds-ratio: > exp(modlogit$coef) (Intercept) gre gpa as.factor(rank)2 as.factor(rank)3 as.factor(rank)4 Ora possiamo affermare che l’aumento di un’unità della variabile gpa determina l’aumento di un fattore pari a 2.23 dell’odds 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 Lkr : verosimiglianza relativa al modello stimato C Lk : 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. L’ipotesi 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 l’ipotesi nulla -> il modello completo è preferibile!

11 Caso di studio: In un’indagine condotta nel a ciascun intervistato era stato chiesto se era d’accordo 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. L’obiettivo è valutare se le risposte degli uomini e delle donne differiscono e quanto l’educazione 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 Q Median Q Max Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) <2e-16 *** sexM education <2e-16 *** --- Signif. codes: 0 ‘***’ ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (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 La variabile sex sembra invece non essere importante.
Dall’output risulta evidente che la variabile education gioca un ruolo significativo nel prevedere se un individuo sia d’accordo o meno con l’affermazione oggetto dell’indagine. La variabile sex sembra invece non essere importante. Proviamo ora a verificare se c’è un’interazione 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 Q Median Q Max Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) < 2e-16 *** sexM * education < 2e-16 *** sexM:education ** --- Signif. codes: 0 ‘***’ ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for binomial family taken to be 1)

14 Null deviance: 451.722 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 d’accordo con l’affermazione rispetto agli uomini. All’aumentare degli anni di scolarizzazione superano i 10 la situazione si ribalta.


Scaricare ppt "LABORATORIO DI STATISTICA AZIENDALE"

Presentazioni simili


Annunci Google