28 votos

¿Cómo tratar un error como "Coeficientes: 14 no definidos debido a singularidades" en R?

Cuando se hace un GLM y se obtiene el error "no definido debido a las singularidades" en la salida del anova, ¿cómo se puede contrarrestar este error?

Algunos han sugerido que se debe a la colinealidad entre las covariables o a que uno de los niveles no está presente en el conjunto de datos (véase: interpretación de "no se define debido a las singularidades" en lm )

Si quisiera ver qué "tratamiento particular" está impulsando el modelo y tengo 4 niveles de tratamiento: Treat 1 , Treat 2 , Treat 3 & Treat 4 que se registran en mi hoja de cálculo como: cuando Treat 1 es 1 el resto son cero, cuando Treat 2 es 1 el resto es cero, etc., ¿qué tendría que hacer?

0 votos

Veo que mucha gente tiene este problema- ¿Alguien entiende la respuesta a la consulta de esta persona? stat.ethz.ch/pipermail/r-help/2006-April/103836.html

43voto

Johnsyweb Puntos 350

Probablemente está obteniendo ese error porque dos o más de sus variables independientes son perfectamente colineales (por ejemplo, codificación errónea de variables ficticias para hacer copias idénticas).

Utilice cor() en sus datos o alias() en su modelo para una inspección más detallada.

14 votos

Gracias no conocía la función alias(). Es muy útil tenerla. Saludos, O.

1 votos

No conocía también la función alias . Muy bonito.

6voto

Sherwin Puntos 6

El error "no definido debido a singularidades" se producirá debido a la fuerte correlación entre sus variables independientes. Esto puede evitarse teniendo n-1 variables ficticias. En su caso, para la variable Tratamiento, debería utilizar 3 variables ficticias binarias (Tratamiento1, Tratamiento2, Tratamiento3).

En la programación de R, la función de regresión lineal lm() dará como resultado "NA" como coeficiente para las variables altamente correlacionadas.

1 votos

¿Puede decir en qué sentido considera que esto se suma a la respuesta existente? ¿Quizás editándola?

2voto

user300086 Puntos 1

En mi experiencia (algo limitada), lo más probable es que se deba a altos niveles de colinealidad entre dos o más variables. Sugeriría utilizar la función VIF para identificar qué varaibles son los que más contribuyen en este sentido, y tenerlo en cuenta a la hora de seleccionar los varaibles para su eliminación en la siguiente iteración de su modelo.

En cuanto a la interpretación de los valores de VIF, algunos sugieren que un valor inferior a 5 es un nivel aceptable, con un valor de 5-10 aceptable en algunas circunstancias. Por lo general, no confío demasiado en los umbrales de valores específicos, ya que los valores siguen dando una indicación relativa de los problemas de colinealidad potencial.

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