6 votos

predict() - regresión logística multinomial

Hoy acudo a ustedes porque me enfrento a un gran problema que no puedo explicar.

He realizado una regresión logística multinomial (utilizando el paquete mlogit) sobre datos de comportamiento. Preparo los datos haciendo

    mlogit <- mlogit.data(Merge, choice = "Choice", shape = "long", alt.var = "Comp", 
                          drop.index = TRUE)

en mis datos de Merge.

que me da lo siguiente:

                Date     Time ActivityX ActivityY Temp Behavior Valley Age Month Year kid Individual Choice
    1.F   01/05/2012 00:00:00        80        58   10        F  Fuorn   8     5 2012   Y         26   TRUE
    1.R   01/05/2012 00:00:00        80        58   10        F  Fuorn   8     5 2012   Y         26  FALSE
    1.M   01/05/2012 00:00:00        80        58   10        F  Fuorn   8     5 2012   Y         26  FALSE
    1.RUN 01/05/2012 00:00:00        80        58   10        F  Fuorn   8     5 2012   Y         26  FALSE
    2.F   01/05/2012 00:05:00        90        76   10        F  Fuorn   8     5 2012   Y         26   TRUE
    2.R   01/05/2012 00:05:00        90        76   10        F  Fuorn   8     5 2012   Y         26  FALSE
    2.M   01/05/2012 00:05:00        90        76   10        F  Fuorn   8     5 2012   Y         26  FALSE
    2.RUN 01/05/2012 00:05:00        90        76   10        F  Fuorn   8     5 2012   Y         26  FALSE
    3.F   01/05/2012 00:10:00        51        47   10        M  Fuorn   8     5 2012   Y         26  FALSE
    3.R   01/05/2012 00:10:00        51        47   10        M  Fuorn   8     5 2012   Y         26  FALSE
    3.M   01/05/2012 00:10:00        51        47   10        M  Fuorn   8     5 2012   Y         26   TRUE
    3.RUN 01/05/2012 00:10:00        51        47   10        M  Fuorn   8     5 2012   Y         26  FALSE
    4.F   01/05/2012 00:15:00         0         0   10        R  Fuorn   8     5 2012   Y         26  FALSE
    4.R   01/05/2012 00:15:00         0         0   10        R  Fuorn   8     5 2012   Y         26   TRUE
    4.M   01/05/2012 00:15:00         0         0   10        R  Fuorn   8     5 2012   Y         26  FALSE
    4.RUN 01/05/2012 00:15:00         0         0   10        R  Fuorn   8     5 2012   Y         26  FALSE
    5.F   01/05/2012 00:20:00         0         0    9        R  Fuorn   8     5 2012   Y         26  FALSE
    5.R   01/05/2012 00:20:00         0         0    9        R  Fuorn   8     5 2012   Y         26   TRUE
    5.M   01/05/2012 00:20:00         0         0    9        R  Fuorn   8     5 2012   Y         26  FALSE
    5.RUN 01/05/2012 00:20:00         0         0    9        R  Fuorn   8     5 2012   Y         26  FALSE

entonces hice mi regresión :

m1 <- mlogit(Choice ~ 1 |Temp + Valley + Age + kid + Month , mlogit)

y me dio resultados significativos :

                          Estimate  Std. Error  t-value  Pr(>|t|)    
    M:(intercept)      -4.2153e-01  5.7533e-02  -7.3268 2.358e-13 ***
    R:(intercept)       6.2325e-01  3.4958e-02  17.8284 < 2.2e-16 ***
    RUN:(intercept)    -1.2275e+01  4.0526e-01 -30.2895 < 2.2e-16 ***
    M:Temp              1.5371e-02  9.8680e-04  15.5764 < 2.2e-16 ***
    R:Temp             -3.9871e-02  6.7926e-04 -58.6975 < 2.2e-16 ***
    RUN:Temp           -4.4532e-02  6.8696e-03  -6.4825 9.023e-11 ***
    M:ValleyTrupchun   -3.6154e-01  1.6362e-02 -22.0968 < 2.2e-16 ***
    R:ValleyTrupchun   -4.0186e-02  9.7968e-03  -4.1020 4.096e-05 ***
    RUN:ValleyTrupchun  1.2895e+00  8.5357e-02  15.1066 < 2.2e-16 ***
    M:Age              -1.1026e-02  2.6902e-03  -4.0985 4.158e-05 ***
    R:Age               1.9465e-02  1.6479e-03  11.8119 < 2.2e-16 ***
    RUN:Age             5.5473e-02  1.6661e-02   3.3294 0.0008703 ***
    M:kidY              6.0686e-02  2.2638e-02   2.6807 0.0073460 ** 
    R:kidY             -4.1638e-01  1.2391e-02 -33.6024 < 2.2e-16 ***
    RUN:kidY            6.2311e-01  1.0410e-01   5.9854 2.158e-09 ***
    M:Month            -2.0466e-01  8.4448e-03 -24.2346 < 2.2e-16 ***
    R:Month             2.4148e-02  5.2317e-03   4.6157 3.917e-06 ***
    RUN:Month           9.8715e-01  5.6209e-02  17.5622 < 2.2e-16 ***

Esos resultados coincidían con lo que esperaba encontrar en la literatura, así que estaba bastante contento.

Mi siguiente paso fue trazar mis resultados y aquí es cuando tengo algún problema.

En primer lugar, cuando trazo mis datos originales y los comparo con el resultado de mi regresión, encuentro algunas diferencias enormes. Por ejemplo, cuando grafico el porcentaje de tiempo que se dedica a un comportamiento (M para moverse, F para alimentarse, R para descansar y Run para correr, en mi regresión F es la referencia) en función de la edad, encuentro que cuanto más viejo es un individuo, más descansa y más se mueve, pero las estimaciones que obtuve de mi regresión muestran que deberían descansar más (cuando envejecen) pero moverse menos. Así que para resumir, mi gráfico sobre los datos originales muestra lo contrario de lo que obtuve de la regresión.

No sé si es normal, en el sentido de que no sé si puedo comparar mis datos originales con el resultado de mi regresión de forma que mi regresión muestre la probabilidad de cambiar a un comportamiento desde otro cada vez que mi variable crece de una unidad.

Así que quería utilizar el predict() pero no sé cómo hacerlo. Esperaba recibir ayuda aquí.

3 votos

¿Puede proporcionar los datos para hacer un ejemplo reproducible? Creo que lo que quieres hacer es un gráfico de, por ejemplo, p(Move) frente a la edad, para valores fijos de las otras covariables. Me gustaría hacer lo mismo para mi modelo multinomial. La diferencia entre su modelo ajustado y los datos empíricos podría deberse a que su gráfico empírico no está teniendo en cuenta todos los demás predictores que sí tiene su modelo. Ajuste Choice ~ 1 | Age y vea qué aspecto tiene.

2voto

JMW.APRN Puntos 21

Cuando las estimaciones no tienen el signo esperado, el sospechoso habitual es multicolinealidad . A continuación, un pasaje de la página de Wikipedia.

La interpretación habitual de un coeficiente de regresión es que proporciona una estimación del efecto de un cambio unitario en una variable independiente, $X_1$ manteniendo constantes las demás variables. Si está altamente correlacionada con otra variable independiente, $X_2$ en el conjunto de datos dado, entonces tenemos un conjunto de observaciones para las que $X_1$ y $X_2$ tienen una relación lineal estocástica particular. No tenemos un conjunto de observaciones para las que todos los cambios en $X_1$ son independientes de los cambios en $X_2$ por lo que tenemos una estimación imprecisa del efecto de los cambios independientes en $X_1$ .

Puede encontrar más información sobre los efectos adversos de la multicolinealidad y las estrategias para combatirla leyendo esta pregunta y esa pregunta .

4 votos

Creo que esta pregunta no se refiere a los signos inesperados de las estimaciones, sino simplemente al comportamiento del software que parece graficar los resultados de la regresión de una manera inesperada.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X