Coeficientes enormes en regresión logística: ¿qué significa y qué hacer?

9

Obtengo coeficientes enormes durante la regresión logística, vea coeficientes con krajULKV:

> summary(m5)

Call:
glm(formula = cbind(ml, ad) ~ rok + obdobi + kraj + resid_usili2 + 
    rok:obdobi + rok:kraj + obdobi:kraj + kraj:resid_usili2 + 
    rok:obdobi:kraj, family = "quasibinomial")

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.7796  -1.0958  -0.3101   1.0034   2.8370  

Coefficients:
                              Estimate     Std. Error t value Pr(>|t|)   
(Intercept)                 -486.72087      664.71911  -0.732  0.46424   
rok                            0.24232        0.33114   0.732  0.46452   
obdobinehn                  3400.43703     1354.14874   2.511  0.01223 * 
krajJHC                      786.22409      708.50291   1.110  0.26746   
krajJHM                      511.85538      823.03038   0.622  0.53417   
krajLBK                      -23.94180     2388.86316  -0.010  0.99201   
krajMSK                     1281.88767      955.09736   1.342  0.17992   
krajOLK                     -175.19425     1255.82946  -0.140  0.88909   
krajPAK                      349.76438     1071.03364   0.327  0.74408   
krajPLK                    -1335.73206     1534.09899  -0.871  0.38418   
krajSTC                      868.99157      692.30426   1.255  0.20976   
krajULKV                  245661.86828 17496742.31677   0.014  0.98880   
krajVYS                     3341.76686     1314.77140   2.542  0.01121 * 
krajZLK                     3950.75617     2922.25220   1.352  0.17676   
resid_usili2                  -1.44719        0.89315  -1.620  0.10555   
rok:obdobinehn                -1.69479        0.67462  -2.512  0.01219 * 
rok:krajJHC                   -0.39108        0.35295  -1.108  0.26817   
rok:krajJHM                   -0.25481        0.40997  -0.622  0.53443   
rok:krajLBK                    0.01621        1.19155   0.014  0.98915   
rok:krajMSK                   -0.63985        0.47592  -1.344  0.17917   
rok:krajOLK                    0.08714        0.62545   0.139  0.88923   
rok:krajPAK                   -0.17419        0.53344  -0.327  0.74410   
rok:krajPLK                    0.66539        0.76383   0.871  0.38394   
rok:krajSTC                   -0.43292        0.34490  -1.255  0.20976   
rok:krajULKV                -122.01076     8704.03367  -0.014  0.98882   
rok:krajVYS                   -1.66391        0.65468  -2.542  0.01122 * 
rok:krajZLK                   -1.96718        1.45474  -1.352  0.17667   
obdobinehn:krajJHC         -3623.86807     1385.86009  -2.615  0.00909 **
obdobinehn:krajJHM         -3220.08906     1458.83842  -2.207  0.02757 * 
obdobinehn:krajLBK         -1051.07131     3434.11845  -0.306  0.75963   
obdobinehn:krajMSK         -6415.65781     1978.30260  -3.243  0.00123 **
obdobinehn:krajOLK         -2427.66591     1777.51914  -1.366  0.17239   
obdobinehn:krajPAK         -3111.45312     1623.59145  -1.916  0.05566 . 
obdobinehn:krajPLK         -1800.26258     2065.74461  -0.871  0.38375   
obdobinehn:krajSTC         -4409.45624     1379.64196  -3.196  0.00145 **
obdobinehn:krajULKV      -187832.68360 16454272.74951  -0.011  0.99089   
obdobinehn:krajVYS         -5445.51446     1791.38012  -3.040  0.00244 **
obdobinehn:krajZLK         -6216.43343     3167.49836  -1.963  0.05003 . 
krajJHC:resid_usili2           1.60474        0.98554   1.628  0.10385   
krajJHM:resid_usili2           1.57822        1.04518   1.510  0.13143   
krajLBK:resid_usili2          11.53462       13.40012   0.861  0.38961   
krajMSK:resid_usili2          -1.33600        1.55241  -0.861  0.38971   
krajOLK:resid_usili2           0.07296        1.27034   0.057  0.95421   
krajPAK:resid_usili2           1.35880        1.23033   1.104  0.26974   
krajPLK:resid_usili2           1.90189        1.41163   1.347  0.17826   
krajSTC:resid_usili2           2.05237        0.95972   2.139  0.03277 * 
krajULKV:resid_usili2        599.79215    20568.86123   0.029  0.97674   
krajVYS:resid_usili2           3.03834        1.16464   2.609  0.00925 **
krajZLK:resid_usili2           1.18574        1.11024   1.068  0.28583   
rok:obdobinehn:krajJHC         1.80611        0.69042   2.616  0.00906 **
rok:obdobinehn:krajJHM         1.60475        0.72676   2.208  0.02751 * 
rok:obdobinehn:krajLBK         0.52268        1.71244   0.305  0.76027   
rok:obdobinehn:krajMSK         3.19712        0.98564   3.244  0.00123 **
rok:obdobinehn:krajOLK         1.21012        0.88541   1.367  0.17208   
rok:obdobinehn:krajPAK         1.55034        0.80886   1.917  0.05563 . 
rok:obdobinehn:krajPLK         0.89718        1.02893   0.872  0.38349   
rok:obdobinehn:krajSTC         2.19742        0.68732   3.197  0.00144 **
rok:obdobinehn:krajULKV       93.43130     8189.24994   0.011  0.99090   
rok:obdobinehn:krajVYS         2.71357        0.89236   3.041  0.00243 **
rok:obdobinehn:krajZLK         3.09624        1.57711   1.963  0.04996 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

(Dispersion parameter for quasibinomial family taken to be 1.258421)

    Null deviance: 1518.0  on 878  degrees of freedom
Residual deviance: 1228.6  on 819  degrees of freedom
  (465 observations deleted due to missingness)
AIC: NA

Number of Fisher Scoring iterations: 18

¿¿Qué significa esto?? ¿Significa alguna multicolinealidad, como @Scortchi mencionado en esta discusión ? ¿O esto significa sobreajuste? ¿Cómo detectar el problema? ¿Que deberia hacer ahora?

Traté de eliminar algunas variables. Esto ayuda un poco pero no tanto:

> m6 <- update(m5, ~.- kraj:resid_usili2)
> m7 <- update(m6, ~.- resid_usili2)
> summary(m7)

Call:
glm(formula = cbind(ml, ad) ~ rok + obdobi + kraj + rok:obdobi + 
    rok:kraj + obdobi:kraj + rok:obdobi:kraj, family = "quasibinomial")

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.9098  -1.1931  -0.2274   1.0529   3.1283  

Coefficients:
                           Estimate  Std. Error t value Pr(>|t|)
(Intercept)              -118.95199   476.34698  -0.250    0.803
rok                         0.05971     0.23718   0.252    0.801
obdobinehn                412.69412   646.95083   0.638    0.524
krajJHC                   447.69791   498.45358   0.898    0.369
krajJHM                   -62.92516   525.85737  -0.120    0.905
krajLBK                   677.73239  1595.20024   0.425    0.671
krajMSK                   278.24639   621.32312   0.448    0.654
krajOLK                  -705.97832   782.53474  -0.902    0.367
krajPAK                   387.96543   608.98961   0.637    0.524
krajPLK                  -653.68419   782.20737  -0.836    0.403
krajSTC                  -114.34822   489.06318  -0.234    0.815
krajULKV                -2117.64674  1797.75836  -1.178    0.239
krajVYS                   884.74411   681.05324   1.299    0.194
krajZLK                  -997.77613   925.93280  -1.078    0.281
rok:obdobinehn             -0.20602     0.32211  -0.640    0.523
rok:krajJHC                -0.22303     0.24819  -0.899    0.369
rok:krajJHM                 0.03092     0.26180   0.118    0.906
rok:krajLBK                -0.33909     0.79438  -0.427    0.670
rok:krajMSK                -0.13889     0.30935  -0.449    0.654
rok:krajOLK                 0.35102     0.38943   0.901    0.368
rok:krajPAK                -0.19392     0.30323  -0.640    0.523
rok:krajPLK                 0.32463     0.38937   0.834    0.405
rok:krajSTC                 0.05677     0.24351   0.233    0.816
rok:krajULKV                1.05287     0.89453   1.177    0.239
rok:krajVYS                -0.44149     0.33911  -1.302    0.193
rok:krajZLK                 0.49612     0.46081   1.077    0.282
obdobinehn:krajJHC       -776.31258   672.68911  -1.154    0.249
obdobinehn:krajJHM       -267.78650   700.38741  -0.382    0.702
obdobinehn:krajLBK      -1246.67321  1760.37329  -0.708    0.479
obdobinehn:krajMSK       -383.77613   858.81391  -0.447    0.655
obdobinehn:krajOLK        -96.72334   947.75189  -0.102    0.919
obdobinehn:krajPAK       -540.25140   827.13134  -0.653    0.514
obdobinehn:krajPLK       -517.49161  1124.63474  -0.460    0.645
obdobinehn:krajSTC       -683.81160   672.66674  -1.017    0.310
obdobinehn:krajULKV      2344.32314  2073.98366   1.130    0.259
obdobinehn:krajVYS       -795.62043   917.80551  -0.867    0.386
obdobinehn:krajZLK        618.33075  1093.37768   0.566    0.572
rok:obdobinehn:krajJHC      0.38725     0.33493   1.156    0.248
rok:obdobinehn:krajJHM      0.13374     0.34870   0.384    0.701
rok:obdobinehn:krajLBK      0.62237     0.87662   0.710    0.478
rok:obdobinehn:krajMSK      0.19114     0.42758   0.447    0.655
rok:obdobinehn:krajOLK      0.04842     0.47171   0.103    0.918
rok:obdobinehn:krajPAK      0.26922     0.41184   0.654    0.513
rok:obdobinehn:krajPLK      0.25790     0.55986   0.461    0.645
rok:obdobinehn:krajSTC      0.34078     0.33492   1.017    0.309
rok:obdobinehn:krajULKV    -1.16571     1.03236  -1.129    0.259
rok:obdobinehn:krajVYS      0.39675     0.45704   0.868    0.386
rok:obdobinehn:krajZLK     -0.30732     0.54422  -0.565    0.572

(Dispersion parameter for quasibinomial family taken to be 1.313286)

    Null deviance: 2396.8  on 1343  degrees of freedom
Residual deviance: 2110.3  on 1296  degrees of freedom
AIC: NA

Number of Fisher Scoring iterations: 5

EDITAR: Según lo propuesto por Scortchi , traté de usar VIF y también obtengo enormes valores. ¿Qué significa esto? Ver:

> require(HH)
> vif(cbind(ml, ad) ~ rok + obdobi + kraj + resid_usili2 + 
+         rok:obdobi + rok:kraj + obdobi:kraj + kraj:resid_usili2 + 
+         rok:obdobi:kraj)
                    rok              obdobinehn                 krajJHC                 krajJHM 
              50.281603         45075363.969712         15194580.406796         11362184.620230 
                krajLBK                 krajMSK                 krajOLK                 krajPAK 
         7567915.376763          5228018.864051         17105623.986998         10944471.683601
[... cut out ...]
Curioso
fuente
Bueno, ¿has mirado una matriz de correlación de variables krjXXX para ver si están altamente correlacionadas?
zbicyclist
@zbicyclist, gracias. krajes solo una variable categórica de 12 niveles (HKK (oculto en la intersección), JHC, JHM, LBK, MSK, ...), así que supongo que la matriz de correlación para krajXXX no tiene sentido, ¿estoy en lo cierto? ¿Que debería hacer entonces?
Curioso
Solicitud rápida: su enlace a una discusión de Scortchi anterior no tiene un enlace real, ¿podría agregarlo? ¡Gracias!
James Stanley el
2
Tomás, supongo que el nivel de HKK es un nivel frecuente (es decir, no bajó un nivel con solo 1 o 2 observaciones). Un error que a veces se comete es bajar el nivel menos frecuente. Creo que @ James Stanley tiene la mejor sugerencia sobre qué hacer a continuación.
zbicyclist
1
No se preocupe, es bueno saberlo: creo que el punto de @ zbicyclist es que si elige una categoría de referencia que tiene un resultado realmente infrecuente, entonces todos los parámetros para ese factor podrían verse afectados por la separación casi completa (al elegir un nivel con resultados más frecuentes evitarán que esto sea un problema para todos los parámetros). [Para su información, que quizás ya sepa, puede cambiar el nivel de referencia si es necesario: en R, uno usaría, por ejemplo, kraj <- relevel(kraj, ref = "JHC")si quisiera usar JHC como el nivel de referencia en su lugar.]
James Stanley

Respuestas:

14

Sugeriría que los coeficientes masivos, y los errores estándar masivamente correspondientes, serían causados ​​casi definitivamente por una separación casi completa o completa. Es decir, para alguna combinación de parámetros, o todos tuvieron el resultado o nadie tuvo el resultado, por lo que el coeficiente se dirige hacia el infinito (o infinito negativo).

Esto tiende a suceder especialmente cuando se especifican muchos términos de interacción, ya que aumentan las posibilidades de tener una combinación de factores que da como resultado algunas células "vacías" (sin resultados en la celda, o todos tienen resultados).

Consulte la página siguiente para obtener más detalles y estrategias sugeridas: http://www.ats.ucla.edu/stat/mult_pkg/faq/general/complete_separation_logit_models.htm

En términos más generales, significa que probablemente esté tratando de hacer "demasiado" con su modelo para el tamaño de su conjunto de datos (particularmente el número de resultados observados).

EDITAR: un par de sugerencias pragmáticas

Puede intentar (1) de manera rápida y simple: eliminar los términos de interacción de su modelo, para ver si eso ayuda (si esto tiene sentido desde la perspectiva de una pregunta de investigación es un tema completamente diferente); o (2) obtenga R para convertirlo en una tabla de contingencia bi-iiig para (por ejemplo, filas) las combinaciones descritas en las interacciones por (por ejemplo, columnas) la variable de resultado. Es posible que pueda ver alguna evidencia de separación aquí.

James Stanley
fuente
gracias James Entonces, ¿esto realmente significa un sobreajuste? ¿Significa esto que posiblemente no debería incluir las interacciones en el modelo?
Curioso
No creo que esto sea técnicamente "sobreajustado", sino un caso de estirar demasiado su modelo. Vea, por ejemplo, Wikipedia sobre lo que generalmente se entiende por sobreajuste (y no pretendo ser un experto en la definición): en.wikipedia.org/wiki/Overfitting : que un modelo sobreespecificado es aquel en el que los parámetros estimados probablemente no funcionan bien en validación cruzada, o en otras palabras, el modelo que ha especificado describirá esta muestra, pero no funcionaría bien en otra muestra de la misma población.
James Stanley
gracias James, pero esto es exactamente lo que imagino bajo el término sobreajuste ... Por cierto, utilicé VIF y obtuve enormes valores también, por favor vea mi pregunta editada. ¿Le dice esto algo nuevo sobre problemas de multicolinealidad / sobreajuste?
Curioso
2
Creo que esto es solo una cuestión de terminología / jerga: lo que está describiendo sigue siendo un problema y se debe a una especificación excesiva, pero no creo que nos refiramos a esto como "sobreajuste" en un sentido formal. ¡Tendré que irme y leer algunas partes de las distinciones para ser más claro!
James Stanley el
2
No estoy seguro de si hay un término técnico más allá de la separación casi completa. Yo diría que "para evitar la separación casi completa (debido a la escasez de datos en combinaciones de los dos factores) no probamos las interacciones". Obviamente, esto es prácticamente todo jerga, pero creo que esta podría ser la mejor descripción.
James Stanley