2 votos

¿Cómo interpreto los coeficientes de un modelo de regresión múltiple de statsmodels con 2 variables dicotómicas?

Tengo una variable dependiente continua Y y 2 factores de agrupamiento cruzados dicotómicos formando 4 grupos: A1, A2, B1 y B2. Estoy buscando los efectos principales de cualquier factor, por lo que ajusto un modelo lineal sin una interacción con statsmodels.formula.api.ols. Aquí tienes un ejemplo reproducible:

np.random.seed(12312)

means = {
    'A1': 5,
    'A2': 6,
    'B1': 3,
    'B2': 4
}

N = 20
var = .85

y = []
x1 = []
x2 = []

for k, v in means.items():
    y.append(np.random.normal(loc=v, scale=var, size=N))
    x1.append([int(k[0]=='A') for i in range(N)])
    x2.append([int(k[1]=='1') for i in range(N)])

y = np.concatenate(y)
x1 = np.concatenate(x1)
x2 = np.concatenate(x2)

data = np.stack([y,x1,x2], axis=1)

df = pd.DataFrame(data, columns=['y','x1','x2'])
df.loc[:, 'x1'] = df.x1.astype(int); df.loc[:, 'x2'] = df.x2.astype(int)

lm = ols('y ~ x1 + x2', data=df).fit()

Y aquí tienes el resumen de resultados dado por print(lm.summary()):

                            Resultados de Regresión OLS                            
==============================================================================
Variable dependiente:                      y   R-cuadrado:                       0.686
Modelo:                            OLS   R-cuadrado ajustado:                  0.677
Método:                 Mínimos cuadrados   Estadística F:                     83.93
Fecha:                Mar, 03 Dic 2019   Prob (Estadística F):           4.53e-20
Hora:                        11:51:53   Log-Likelihood:                -98.488
Observaciones:                  80   AIC:                             203.0
Residuos df:                      77   BIC:                             210.1
Modelo df:                           2                                         
Tipo de covarianza:            no robusta                                         
==============================================================================
                 coeficiente    error estándar          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Intercepto      4.0107      0.164     24.518      0.000       3.685       4.336
x1             2.1321      0.189     11.288      0.000       1.756       2.508
x2            -1.2013      0.189     -6.360      0.000      -1.577      -0.825
==============================================================================
Omnibus:                        0.639   Durbin-Watson:                   2.121
Prob(Omnibus):                  0.727   Jarque-Bera (JB):                0.761
Asimetría:                           0.185   Prob(JB):                        0.684
Curtosis:                       2.699   Cond. No.                         3.19
==============================================================================

Puedo ver que los efectos principales que generé están allí, pero no estoy seguro de cómo interpretar exactamente los coeficientes. Intuitivamente, el término de intercepción debería ser exactamente la media de la categoría de referencia (x1=0; x2=0), pero al mirar las medias de los grupos, no lo es:

x1 x2          
0  0   4.090842
   1   2.729360
1  0   6.062789
   1   5.021698

Y la diferencia (entre la intercepción y la media) es aún más pronunciada cuando trabajo con los datos reales.

Dado que no puedo interpretar el coeficiente de intercepción, no estoy seguro de si los otros dos coeficientes representan diferencias entre grupos en relación con la categoría de referencia.

Me di cuenta de que cuando se incluye una interacción (por ejemplo, lm = ols('y ~ x1 * x2', data=df).fit()), el coeficiente de intercepción se convierte precisamente en la media de la categoría de referencia, y todos los demás coeficientes corresponden a diferencias entre grupos. Entonces, ¿cuáles son los coeficientes cuando la interacción no está incluida?

0voto

Florian Rachor Puntos 111

Estás ajustando un modelo aditivo, por lo que los valores ajustados no coincidirán exactamente con las medias muestrales. Se necesita un modelo de 4 grados de libertad para que coincidan las medias de las celdas. Un modelo aditivo solo tiene 3 grados de libertad. El modelo aditivo impone la restricción de que E[y|x1=1, x2=z] - E[y|x1=0, x2=z] no depende de z. Esta restricción generalmente no se cumple exactamente en las medias muestrales.

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