Quando duplico semplicemente un sottoinsieme di osservazioni e costruisco lo stesso modello di regressione logistica con i dati estesi, i coefficienti delle covariate cambiano. Se duplico l'intero set di dati, rimangono gli stessi.
Questo mi confonde perché tutte le covariate sono categoriali, quindi quando duplico un sottoinsieme, non sto fornendo alcuna nuova informazione. Viene ripetuta una serie di osservazioni con combinazioni di covariate; i risultati non stanno cambiando.
Ad esempio, ho modificato il set di dati di regressione logistica UCLA utilizzato in questo tutorial e ho creato un set di dati in cui tutte le covariate sono variabili discrete. Questo mi dà il set di dati che puoi vedere qui (file csv)
Quando eseguo la regressione logistica su di esso, ottengo:
dff <- read.table ('d: /temp/ucla-factored.csv',sep =', ', header = TRUE) dff $ rank <- factor (dff $ rank) mylogit <- glm (ammette ~ gre + gpa + rank, data = dff, family = 'binomial') summary (mylogit) Call: glm (formula = admit ~ gre + gpa + rank, family = "binomial", data = dff) Deviance Residuals: Min 1Q Median 3Q Max -1.5149 -0.8971 -0.6672 1.1441 2.0587 Coefficienti: Std. Errore valore z Pr (> | z |) (Intercept) -0.7025 0.4144 -1.695 0.090046. gregre2 0,4024 0,3404 1,182 0,237190 gregre3 0,6130 0,3571 1,717 0,086038. gpagpa2 0.3115 0.3121 0.998 0.318350 gpagpa3 0.8551 0.3428 2.495 0.012609 * rankrank2 -0.6866 0.3166 -2.169 0.030101 * rankrank3 -1.3850 0.3439 -4.027 5.65e-05 *** rankrank4 -1.6000 0.4170 -3.837 0.000 .124 *** codici: 0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 '' 1 (parametro di dispersione per la famiglia binomiale considerato 1) Devianza nulla: 499,98 su 399 gradi di libertà Devianza residua: 459,80 su 392 gradi di libertà AIC: 475,8 Numero di iterazioni di Fisher Scoring: 4
Quindi scelgo le righe in cui gpa è gpa2 e le copio e le aggiungo al set di dati, fornendomi il file csv qui
La regressione logistica con questo set di dati esteso fornisce :
dffbig <- read.table ('d: /temp/ucla-factoredbig.csv',sep =', ', header = TRUE) dffbig $ rank <- factor (dffbig $ rank) mylogitbig <- glm (admit ~ gre + gpa + rank, data = dffbig, family = 'binomial') summary (mylogitbig) Call: glm (formula = admit ~ gre + gpa + rank, family = "binomial", data = dffbig) Devianza Residui: Min 1Q Mediana 3Q Max -1,4775 -0,8931 -0,6533 1,1939 2,1207 Coefficienti: Std. Errore valore z Pr (> | z |) (Intercept) -0,8668 0,3786 -2,290 0,0220 * gregre2 0,5278 0,2814 1,875 0,0607. gregre3 0,7013 0,2964 2,366 0,0180 * gpagpa2 0,2992 0,2877 1,040 0,2985 gpagpa3 0,8481 0,3364 2,521 0,0117 * rankrank2 -0,5478 0,2600 -2,107 0,0351 * rankrank3 -1,3187 0,2873 -4,589 4,45e-06 *** rankrank4 5,74 -5,55 * --- Signif. codici: 0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 '' 1 (parametro di dispersione per la famiglia binomiale considerato come 1) Devianza nulla: 727,61 su 587 gradi di libertà Deviazione residua: 672,97 su 580 gradi di libertà AIC: 688,97 Numero di iterazioni di Fisher Scoring: 4
Perché? Fintanto che i risultati non sono diversi, perché osservare lo stesso pattern cambierebbe i parametri stimati di un modello?
Background: questo è correlato ai miei sforzi per creare un set di dati sintetici utilizzando solo un modello di regressione logistica esistente. Quando tutte le variabili sono categoriche, dovrei essere in grado di trovare tutte le possibili combinazioni di input e generare dati di input, ma le cose non vanno come previsto quando i dati sintetici vengono reinseriti nella regressione logistica perché la regressione logistica sembra includere più che mero distribuzioni di combinazioni di variabili discrete.