Aprendí que usando el vif()
método de car
paquete, podemos calcular el grado de multicolinealidad de las entradas en un modelo. En wikipedia , si el vif
valor es mayor que 5
entonces, podemos considerar que la entrada sufre un problema de multicolinealidad. Por ejemplo, he desarrollado un modelo de regresión lineal utilizando el lm()
método y vif()
da lo siguiente. Como podemos ver, las entradas ub
, lb
y tb
están sufriendo de multicolinealidad.
vif(lrmodel)
tb ub lb ma ua mb sa sb
7.929757 50.406318 30.826721 1.178124 1.891218 1.364020 2.113797 2.357946
Para evitar el problema de multicolinealidad y, por lo tanto, hacer que mi modelo sea más robusto, he interactuado entre ub
y lb
, y ahora la tabla vif del nuevo modelo es la siguiente:
tb ub:lb ma mb sa sb ua
1.763331 1.407963 1.178124 1.327287 2.113797 1.860894 1.891218
No hay mucha diferencia en los R^2
valores y tampoco hay mucha diferencia en los errores de las pruebas de CV de una sola omisión en los dos casos anteriores.
Mis preguntas son:
¿Está bien evitar el problema de multicolinealidad tomando la interacción como se muestra arriba?
¿Hay alguna manera mejor de presentar un problema de multicolinealidad en comparación con los resultados del método vif anteriores.
Por favor dame tus sugerencias.
Gracias.
fuente
Respuestas:
Parece incluir el término de interacción
ub:lb
, pero noub
ylb
ellos mismos como predictores separados. Esto violaría el llamado "principio de marginalidad" que establece que los términos de orden superior solo deben incluir variables presentes en términos de orden inferior ( Wikipedia para empezar ). Efectivamente, ahora está incluyendo un predictor que es solo el producto basado en elementos deub
ylb
.ub
ub
lb
Comenzaría a hacer todas las correlaciones por pares entre los predictores, y ejecutaría las regresiones antes mencionadas para ver qué variables predicen
ub
ylb
para ver si la redundancia se explica fácilmente. Si es así, puede eliminar los predictores redundantes. También puede examinar la regresión de crestas (lm.ridge()
del paqueteMASS
en R).Los diagnósticos de multicolinealidad más avanzados utilizan la estructura de valor propio de donde es la matriz de diseño de la regresión (es decir, todos los predictores como vectores de columna). La condición es donde y son los más grandes y los más pequeños ( ) valores propios de . En R, puede usar , donde el modelo generalmente usa las variables estandarizadas.XtX X κ λm a x√λm i n√ λm a x λm i n ≠ 0 XtX
kappa(lm(<formula>))
lm()
Geométricamente, le da una idea sobre la forma de la nube de datos formada por los predictores. Con 2 predictores, el diagrama de dispersión podría verse como una elipse con 2 ejes principales. luego le dice cuán "plana" es esa elipse, es decir, es una medida de la relación entre la longitud del eje más grande y la longitud del eje principal más pequeño. Con 3 predictores, puede tener forma de cigarro y 3 ejes principales. Cuanto más "plana" esté su nube de datos en alguna dirección, más redundantes serán las variables cuando se tomen juntas.κ κ
Hay algunas reglas generales para los valores no críticos de (escuché menos de 20). Pero tenga en cuenta que no es invariable en las transformaciones de datos que solo cambian la unidad de las variables, como la estandarización. Esto es a diferencia de VIF: le dará el mismo resultado que (siempre y cuando no hay términos multiplicativos en el modelo), pero , y es casi seguro que difieren.κ κ
vif(lm(y ~ x1 + x2))
vif(lm(scale(y) ~ scale(x1) + scale(x2)))
kappa(lm(y ~ x1 + x2))
kappa(lm(scale(y) ~ scale(x1) + scale(x2)))
fuente
ub
lb
( ) , pero para un modelo de regresión lineal general es como usted señaló (+1) ^ _ ^ Por cierto lb - límite inferior, ub - límite superior ?! Si es así, haga la diferencia de dos , probablemente sea la mejor transformación. u b - l bpairs()
para matrices de diagrama de dispersión que muestran toda la distribución por pares de los predictores. El paquetescatterplot3d
se puede usar para visualizar el diagrama de dispersión de 3 variables. Vea esta respuesta para dibujar la elipse cuya relación de eje es igual a en el caso bivariado. También puede consultar el paquete que ofrece diagnósticos de multicolinealidad adicionales, tal vez gráficos.perturb
También debe considerar el valor P durante la consideración variable.
fuente