6 votos

¿Puedo incluir el producto de dos variables aleatorias? ¿O corro el riesgo de colinealidad?

Tengo un modelo en el que quiero predecir Y.

Mis regresores X, son x1 y x2.

Por alguna razón creo que también sería útil incluirlo en el modelo:

  • x3 = x1 * x2
  • x4 = x1 / x2

¿Puedo utilizar un regresor x1, x2, x3 y x4 juntos o me arriesgo a tener un problema de colinealidad perfecta? Sé, por ejemplo, que utilizando x5 = x1 + x2 produciría una colinealidad perfecta y, por tanto, un regresor completamente inútil.

6voto

AdamSane Puntos 1825

No tendrás perfecto colinealidad (según su pregunta), pero sí corre el riesgo de tener problemas de multicolinealidad con sus dos regresores adicionales.

Aunque no son algebraicamente combinaciones lineales de los dos predictores, puede darse el caso de que estas variables (x1-x4) en una muestra concreta se encuentren cerca de un subespacio lineal, con las consecuencias típicas de la casi multicolinealidad.

Por ejemplo, si las dos variantes originales tienen coeficientes de variación muy pequeños, su producto puede estar muy relacionado con su suma (o con alguna otra combinación lineal si son de tamaño diferente). Esto puede ocurrir incluso si las variables originales no están muy correlacionadas.

Del mismo modo, puede darse una alta correlación con el ratio y la diferencia.

3voto

jldugger Puntos 7490

Operando bajo su suposición de que $x_3=x_1x_2$ y $x_4=x_1/x_2$ como posibles variables explicativas en un modelo de respuesta. $Y$ (y, por tanto, no se abandonan sumariamente porque puedan ser un poco inconvenientes), puede ser útil considerar formas alternativas de expresar este modelo.

Como se ha dicho, el modelo es de la forma

$$Y \sim F(x_1, x_2, x_3, x_4; \theta) = F(x_1, x_2, x_1x_2, x_1/x_2; \theta)$$

para una familia de distribuciones determinada $F$ con parámetros desconocidos $\theta$ por determinar. Por ejemplo, un modelo de regresión lineal implicaría un parámetro de cinco dimensiones $\theta = (\beta_0, \beta_1, \beta_2, \beta_3, \beta_4)$ de la forma

$$E[Y] = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_3 + \beta_4 x_4 = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_1x_2 + \beta_4 x_1/x_2.$$

Para simplificar la exposición, vamos a analizar el modelo de regresión lineal: quedará claro cómo se extiende el análisis a otros modelos.

Una forma es replantear el modelo en términos de $x_4$ y $x_2,$ que algebraicamente implican $x_1=x_2x_4$ y $x_3=x_2^2x_4:$

$$E[Y] = \beta_0 + \beta_1 x_4x_2 + \beta_2 x_2 + \beta_3 x_4x_2^2 + \beta_4 x_4 = \beta_0 + \beta_2 x_2 + \beta_4 x_4 + x_4\left(\beta_1 x_2 + \beta_3 x_2^2\right).$$

El último término se caracterizaría ordinariamente como un interacción entre $x_4$ y una función cuadrática de $x_2.$ Puesto que, salvo en circunstancias muy especiales, las interacciones sólo deben incluirse cuando se incluyen los términos que las componen, esto sugiere que debe ampliar el modelo para incluir un $x_2^2$ plazo. Tendría la forma

$$E[Y] = \beta_0 + \left(\beta_2 x_2 + \beta_5 x_2^2\right) + \beta_4 x_4 + x_4\left(\beta_1 x_2 + \beta_3 x_2^2\right).$$

Se trata de un modelo que implica (a) $x_4$ y (b) la más simple posible spline cuadrático de $x_2.$ Estos modelos son habituales: los términos cuadráticos permiten cierta respuesta no lineal en $x_2$ y la interacción permite que la respuesta cambie con diferentes valores de $x_4$ de forma controlada.

Estas sencillas manipulaciones algebraicas demuestran que el modelo propuesto no tiene nada de extraño. Lo replantean en términos de conceptos estándar y bien entendidos.


Queda la cuestión de la colinealidad. Que la colinealidad puede ser un problema lo demuestra el caso en que ambos $x_1$ y $x_2$ son variables binarias codificadas como $\pm 1.$ En este caso, $x_1/x_2$ y $x_1x_2$ son siempre igual (no sólo colineales).

Por otra parte, que la colinealidad podría no ser un gran problema puede demostrarse exhibiendo algunos datos de muestra con relativamente poca colinealidad. Nos gustaría $x_2$ sea ortogonal a $x_2^2,$ por supuesto, y entonces todo irá bien siempre que las interacciones no introduzcan colinealidad. Desgraciadamente, $x_4$ y $x_4x_2^2$ es probable que estén correlacionadas positivamente. Pero, ¿en qué medida?

Considere los datos $x_2 = (-1,0,1,\, -1,0,1,\, -1,0,1)$ y $x_4 = (-1,\sqrt{3},-1,\,0,0,0,\,1,-\sqrt{3},1).$ La matriz de covarianza de las columnas $(x_2, x_2^2, x_4x_2, x_4, x_4x_2^2)$ es

$$\pmatrix{3&0&0&0&0 \\ 0 & 1 & 0&0&0 \\ 0&0&2&0&0 \\ 0&0&0&5&2 \\ 0&0&0&2&2}/4.$$

Es casi ortogonal, con correlación sólo entre las dos últimas variables (como era de esperar). (Obsérvese que la introducción de $x_2^2$ no ha cambiado nada, porque esta variable es ortogonal a todas las demás). La relación entre el mayor y el menor valor propio (su número de condición) es $6.$ No es bonito, pero tampoco está mal. Se podrían obtener fácilmente estimaciones fiables de los coeficientes con tales variables explicativas.

Si no puede permitirse el lujo de elegir los valores de $x_2$ y $x_4$ para organizar tal casi ortogonalidad, entonces simplemente tendrá que proceder como cualquiera haría siempre en tales casos: investigar los datos que tiene y tratar cualquier colinealidad de las formas habituales (que incluirían ignorarla; eliminar variables basándose en consideraciones científicas; seleccionar algunos componentes principales; utilizar un Lasso; etc.).

1voto

No, no se corre el riesgo de colinealidad porque $x_i$ no son linealmente dependientes en general, es decir, la siguiente ecuación tiene una única solución que se mantiene para todas las posibles $x_i$ : $$a_1x_1+a_2x_2+a_3x_3+a_4x_4=0$$ Y eso es $a_i=0$ .

En $x_5=x_1+x_2$ la siguiente ecuación tiene soluciones distintas de cero tales que $a_1=a_2=-a_5$ : $$a_1x_1+a_2x_2+a_5x_5=0$$

0voto

No lo hagas

y = x1 + x2 + x3 + x3

...lo que equivale en su caso a

 y = x1 + x2 + (x1 * x2) + (x1 / x2)

Para incluir el producto de los predictores, es una mejor práctica crear su modelo con esta fórmula:

y = x1 * x2. 

El signo * indica que también está utilizando el efecto de interacción, el equivalente de su x3. Notación alternativa para esto:

y = x1 + x2 + x1:x2

En resumen, tu x3 ya se tiene en cuenta cuando incluyes el término de interacción. Tenga en cuenta que se trata más bien de una buena práctica/claridad. El uso de una variable separada para connotar el término de interacción también serviría, en caso de apuro, pero podría causar problemas más adelante si una función de su software estadístico / sus revisores / su asesor le exigen que indique explícitamente que x3 es el término de interacción.

Observe también que la sintaxis anterior no incluirá la variable x4, a menos, por supuesto, que el término de interacción sea igual a x4.

¿Y x4?

Para el dividendo de los predictores, su x4, como principio general y no como regla fija, es mejor evitar añadirlo. Hay excepciones, como lo demuestran los ejemplos de whuber en este hilo. En algunos casos, también es posible que desee utilizar x4 como una especie de inversa multiplicativa, por ejemplo x1 * x4 es equivalente a x1 ^ 2 * (1 / x4) y así sucesivamente.

Como siempre, hay que tener en cuenta los posibles problemas al añadir un predictor, como la multicolinealidad. En cuanto a la x3, yo también evitaría crear una variable separada si es posible y no resulta demasiado inconveniente, y en su lugar utilizaría la fórmula del modelo para denotar esta información.

He aquí un ejemplo, suponiendo un modelo lineal. Creamos un modelo con dos predictores y el efecto de interacción. Tenga en cuenta que también podría utilizar la fórmula Sepal.Length ~ Sepal.Width + Petal.Length + Sepal.Width:Petal.Length con el mismo resultado:

> model <- lm(data = iris, Sepal.Length ~ Sepal.Width * Petal.Length)
> summary(model)

Call:
lm(formula = Sepal.Length ~ Sepal.Width * Petal.Length, data = iris)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.99594 -0.21165 -0.01652  0.21244  0.77249 

Coefficients:
                         Estimate Std. Error t value Pr(>|t|)    
(Intercept)               1.40438    0.53253   2.637  0.00926 ** 
Sepal.Width               0.84996    0.15800   5.379 2.91e-07 ***
Petal.Length              0.71846    0.13886   5.174 7.45e-07 ***
Sepal.Width:Petal.Length -0.07701    0.04305  -1.789  0.07571 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3308 on 146 degrees of freedom
Multiple R-squared:  0.8436,    Adjusted R-squared:  0.8404 
F-statistic: 262.5 on 3 and 146 DF,  p-value: < 2.2e-16

Entonces añado una variable para el producto y la incluyo en el modelo en lugar de la interacción:

> 
> iris$prod <- iris$Sepal.Width * iris$Petal.Length
> model.prod <-
+   lm(data = iris, Sepal.Length ~ Sepal.Width + Petal.Length + prod)
> summary(model.prod)

Call:
lm(formula = Sepal.Length ~ Sepal.Width + Petal.Length + prod, 
    data = iris)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.99594 -0.21165 -0.01652  0.21244  0.77249 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)   1.40438    0.53253   2.637  0.00926 ** 
Sepal.Width   0.84996    0.15800   5.379 2.91e-07 ***
Petal.Length  0.71846    0.13886   5.174 7.45e-07 ***
prod         -0.07701    0.04305  -1.789  0.07571 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3308 on 146 degrees of freedom
Multiple R-squared:  0.8436,    Adjusted R-squared:  0.8404 
F-statistic: 262.5 on 3 and 146 DF,  p-value: < 2.2e-16

Así que, realmente es lo mismo. Puedo enfatizar esto pidiendo explícitamente a R que incluya tanto la variable producto como el término de interacción:

> model.inter <-
+   lm(data = iris,
+      Sepal.Length ~ Sepal.Width + Petal.Length + Sepal.Width:Petal.Length + prod)
> summary(model.inter)

Call:
lm(formula = Sepal.Length ~ Sepal.Width + Petal.Length + Sepal.Width:Petal.Length + 
    prod, data = iris)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.99594 -0.21165 -0.01652  0.21244  0.77249 

Coefficients: (1 not defined because of singularities)
                         Estimate Std. Error t value Pr(>|t|)    
(Intercept)               1.40438    0.53253   2.637  0.00926 ** 
Sepal.Width               0.84996    0.15800   5.379 2.91e-07 ***
Petal.Length              0.71846    0.13886   5.174 7.45e-07 ***
prod                     -0.07701    0.04305  -1.789  0.07571 .  
Sepal.Width:Petal.Length       NA         NA      NA       NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3308 on 146 degrees of freedom
Multiple R-squared:  0.8436,    Adjusted R-squared:  0.8404 
F-statistic: 262.5 on 3 and 146 DF,  p-value: < 2.2e-16

El uso del dividendo (x1 / x2), así como la interacción, en realidad disminuyó un poco el R2 ajustado, ya que no contribuye mucho y tuve que añadir otro predictor. Mejoró los residuos, pero sólo un poquito.

> model.divid <-
+   lm(data = iris, Sepal.Length ~ Sepal.Width + Petal.Length + divid + prod)
> summary(model.divid)

Call:
lm(formula = Sepal.Length ~ Sepal.Width + Petal.Length + divid + 
    prod, data = iris)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.98673 -0.21684  0.00684  0.21559  0.71138 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)   1.58216    0.53349   2.966  0.00353 ** 
Sepal.Width   0.55849    0.20998   2.660  0.00870 ** 
Petal.Length  0.72299    0.13733   5.265 4.97e-07 ***
divid         0.28102    0.13526   2.078  0.03951 *  
prod         -0.04455    0.04535  -0.982  0.32750    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3271 on 145 degrees of freedom
Multiple R-squared:  0.8481,    Adjusted R-squared:  0.8439 
F-statistic: 202.4 on 4 and 145 DF,  p-value: < 2.2e-16

Entonces, ¿por qué no utilizar el dividendo de x1 y x2 en este ejemplo? No voy a incluir el código y la salida por brevedad, pero con estos datos el R2-cuadrado ajustado para divid ~ Sepal.Width + Petal.Length fue del 94%, con un valor p < 2,2e-16. Para el ejemplo proporcionado, la adición de su x4 habría sido una mala idea.

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