Le aconsejaría que verifique que ninguna de sus variables sean constantes (es decir, sin varianza). Si está bien en ese puntaje, verifique si tiene variables de valor complejas o variables infinitas.
Tristán
3
Normalmente significa que una o más de sus variables no son linealmente independientes, ya que la variable problemática se puede expresar como una combinación de las otras variables. El paquete R carettiene una función llamada findLinearCombosque le indicará cuáles son las variables problemáticas.
richiemorrisroe
2
Estoy de acuerdo con richiemorrisroe. Como dice que X'X no es definitivo positivo, creo que están implicando que la matriz de diseño X'X es singular y, por lo tanto, no tiene rango completo. Por lo tanto, al menos una de las covariables se puede escribir como combinaciones lineales exactas de otras covariables.
Michael Chernick
Respuestas:
123
La deficiencia de rango en este contexto dice que no hay suficiente información contenida en sus datos para estimar el modelo que desea. Proviene de muchos orígenes. Hablaré aquí sobre modelar en un contexto bastante general, en lugar de una regresión logística explícita, pero todo aún se aplica al contexto específico.
La deficiencia puede provenir simplemente de muy pocos datos. En general, no puede estimar de manera única n parámetros con menos de n puntos de datos. Eso no significa que todo lo que necesita sean n puntos, ya que si hay algún ruido en el proceso, obtendría resultados bastante pobres. Necesita más datos para ayudar al algoritmo a elegir una solución que represente todos los datos, en un sentido de error mínimo. Es por eso que utilizamos herramientas de mínimos cuadrados. ¿Cuántos datos necesitas? Siempre me hicieron esa pregunta en una vida pasada, y la respuesta fue más de lo que usted tiene, o tanto como puede obtener. :)
A veces puede tener más datos de los que necesita, pero algunos (demasiados) puntos son réplicas. La replicación es BUENA en el sentido de que ayuda a reducir el ruido, pero no ayuda a aumentar el rango numérico. Por lo tanto, suponga que solo tiene dos puntos de datos. No puede estimar un modelo cuadrático único a través de los puntos. Un millón de réplicas de cada punto aún no le permitirá ajustar más que una línea recta, a través de lo que todavía son solo un par de puntos. Esencialmente, la replicación no agrega contenido de información. Todo lo que hace es disminuir el ruido en lugares donde ya tienes información.
A veces tienes información en los lugares equivocados. Por ejemplo, no puede ajustar un modelo cuadrático bidimensional si todo lo que tiene son puntos que se encuentran en una línea recta en dos dimensiones. Es decir, suponga que tiene puntos dispersos solo a lo largo de la línea x = y en el plano, y desea ajustar un modelo para la superficie z (x, y). Incluso con miles de millones de puntos (ni siquiera réplicas) tendrá información suficiente para estimar inteligentemente más que un modelo constante. Sorprendentemente, este es un problema común que he visto en los datos de muestra. El usuario se pregunta por qué no puede construir un buen modelo. El problema está integrado en los mismos datos que han muestreado.
A veces es simplemente la elección del modelo. Esto puede verse como "datos insuficientes", pero desde el otro lado. Desea estimar un modelo complicado, pero no ha proporcionado datos suficientes para hacerlo.
En todos los casos anteriores, la respuesta es obtener más datos, muestreados de manera inteligente de lugares que proporcionarán información sobre el proceso que actualmente carece. El diseño de experimentos es un buen lugar para comenzar.
Sin embargo, incluso los buenos datos a veces son inadecuados, al menos numéricamente. (¿Por qué suceden cosas malas a los buenos datos?) El problema aquí puede estar relacionado con el modelo. Puede estar en nada más que una mala elección de unidades. Puede provenir de la programación de la computadora realizada para resolver el problema. (¡Uf! ¿Por dónde empezar?)
Primero, hablemos de unidades y escalado. Supongamos que trato de resolver un problema donde una variable es MUCHOS órdenes de magnitud más grande que otra. Por ejemplo, supongamos que tengo un problema que involucra mi altura y el tamaño de mi zapato. Mediré mi altura en nanómetros. Por lo tanto, mi altura sería de aproximadamente 1.78 mil millones (1.78e9) de nanómetros. Por supuesto, elegiré medir el tamaño de mi zapato en kilo-parsecs, entonces 9.14e-21 kilo-parsecs. Cuando haces modelos de regresión, la regresión lineal tiene que ver con el álgebra lineal, que implica combinaciones lineales de variables. El problema aquí es que estos números son diferentes en muchos órdenes de magnitud (y ni siquiera en las mismas unidades). Las matemáticas fallarán cuando un programa de computadora intente sumar y restar números que varían en tantos órdenes de magnitud (para una precisión doble número,
El truco generalmente es usar unidades comunes, pero en algunos problemas incluso eso es un problema cuando las variables varían en demasiados órdenes de magnitud. Más importante es escalar sus números para que sean similares en magnitud.
A continuación, puede ver problemas con números grandes y pequeñas variaciones en esos números. Por lo tanto, suponga que intenta construir un modelo polinomial de orden moderadamente alto con datos donde todas sus entradas se encuentran en el intervalo [1,2]. Los números de cuadratura, cubos, etc., que están en el orden de 1 o 2 no causarán problemas al trabajar en aritmética de doble precisión. Alternativamente, agregue 1e12 a cada número. En teoría, las matemáticas lo permitirán. Todo lo que hace es cambiar cualquier modelo polinómico que construimos en el eje x. Tendría exactamente la misma forma, pero se traduciría 1e12 a la derecha. En la práctica, el álgebra lineal fallará miserablemente debido a problemas de deficiencia de rango. No ha hecho nada más que traducir los datos, pero de repente comienza a ver aparecer matrices singulares.
Por lo general, el comentario realizado será una sugerencia para "centrar y escalar sus datos". Efectivamente, esto dice cambiar y escalar los datos para que tengan una media cercana a cero y una desviación estándar que sea aproximadamente 1. Eso mejorará en gran medida el condicionamiento de la mayoría de los modelos polinomiales, reduciendo los problemas de deficiencia de rango.
Existen otras razones para la deficiencia de rango. En algunos casos se integra directamente en el modelo. Por ejemplo, supongamos que proporciono la derivada de una función, ¿puedo inferir únicamente la función en sí? Por supuesto que no, ya que la integración implica una constante de integración, un parámetro desconocido que generalmente se infiere por el conocimiento del valor de la función en algún momento. De hecho, esto a veces surge también en problemas de estimación, donde la singularidad de un sistema se deriva de la naturaleza fundamental del sistema en estudio.
Seguramente omití algunas de las muchas razones para la deficiencia de rango en un sistema lineal, y he parloteado durante demasiado tiempo ahora. Con suerte, logré explicar los que cubrí en términos simples y una forma de aliviar el problema.
Para la definición del rango de una matriz, puede consultar cualquier buen libro de texto sobre álgebra lineal, o echar un vistazo a la página de Wikipedia .
Se dice que una matriz matriz es rango completo si , y sus columnas no son una combinación lineal entre sí. En ese caso, la matriz es positiva definida, lo que implica que tiene un inverso .n×pXn≥pp×pXTX(XTX)−1
Si no es rango completo, una de las columnas se explica completamente por las otras, en el sentido de que es una combinación lineal de las otras. Un ejemplo trivial es cuando una columna está duplicada. Esto también puede suceder si tiene una variable 0-1 y una columna consta de solo 0 o solo 1. En ese caso, el rango de la matriz es menor que y no tiene inverso.XXnXTX
Dado que la solución de muchos problemas de regresión (incluida la regresión logística) implica el cálculo intermedio , es imposible estimar los parámetros del modelo. Por curiosidad, puede comprobar aquí cómo participa este término en la fórmula de la regresión lineal múltiple.(XTX)−1
Eso fue por deficiencia absoluta de rango. Pero a veces el problema aparece cuando la matriz "casi" no tiene rango completo, como lo detalla ampliamente @woodchips. Este problema generalmente se conoce como multicolinealidad . Este problema es bastante común, puedes encontrar más información sobre cómo tratarlo en publicaciones relacionadas aquí y allá .X
La respuesta de user974 es fantástica desde una perspectiva de modelado y la respuesta de gui11aume es fantástica desde una perspectiva matemática. Quiero refinar la respuesta anterior estrictamente desde una perspectiva de modelado mixto: específicamente una perspectiva de modelado mixto generalizado (GLMM). Como puede ver, ha hecho referencia a la función R mer_finalizeque se encuentra en el fantástico lme4paquete. También dice que está ajustando un modelo de regresión logística.
Hay muchos problemas que surgen con este tipo de algoritmos numéricos. La cuestión de la estructura matricial de la matriz modelo de efectos fijos ciertamente vale la pena considerar, como aludió el usuario974. Pero esto es muy fácil de evaluar, simplemente calcule model.matrixsus argumentos formula=y data=en un modelo y tome su determinante usando la detfunción. Sin embargo, los efectos aleatorios complican en gran medida la interpretación, la rutina de estimación numérica y la inferencia sobre los efectos fijos (lo que generalmente se considera coeficientes de regresión en un modelo de regresión "regular").
Supongamos que, en el caso más simple, solo se le ajusta un modelo de intercepciones aleatorias. Entonces, básicamente, está considerando que hay miles de fuentes de heterogeneidad no medidas que se mantienen constantes en medidas repetidas dentro de los grupos. Usted estima una intercepción "grandiosa", pero tiene en cuenta la heterogeneidad suponiendo que las intercepciones específicas de grupo tienen alguna distribución normal media. Las intersecciones se estiman de forma iterativa y se utilizan para actualizar los efectos del modelo hasta que se logre la convergencia (se maximiza la probabilidad logarítmica, o una aproximación de la misma). El modelo mixto es muy fácil de imaginar, pero matemáticamente la probabilidad es muy compleja y propensa a problemas con singularidades, mínimos locales y puntos límite (odds ratios = 0 o infinito). Los modelos mixtos no tienen probabilidades cuadráticas como los GLM canónicos.
Desafortunadamente, Venerables y Ripley no invirtieron mucho en diagnósticos para fallas convergentes como el suyo. Es prácticamente imposible incluso especular sobre la miríada de posibles errores que conducen a tal mensaje. Considere, entonces, los tipos de diagnóstico que uso a continuación:
¿Cuántas observaciones hay por grupo?
¿Cuáles son los resultados de un modelo marginal ajustado con GEE?
¿Cuál es el ICC de los grupos? ¿La heterogeneidad dentro del grupo está cerca de la heterogeneidad entre grupos?
Ajuste un estimador de 1 paso y observe los efectos aleatorios estimados. ¿Son aproximadamente normales?
Ajuste el modelo mixto bayesiano y observe la distribución posterior de los efectos fijos. ¿Parecen tener una distribución aproximadamente normal?
Mire una gráfica de panel de los grupos que muestra exposición o regresor de interés contra el resultado utilizando un suavizador. ¿Las tendencias son consistentes y claras o hay muchas formas posibles de explicarlas? (por ejemplo, ¿cuál es el "riesgo" entre sujetos no expuestos, la exposición parece ser protectora o dañina?)
¿Es posible restringir la muestra a sujetos que solo tienen un número suficiente de observaciones por persona (por ejemplo, n = 5 o n = 10) para estimar el efecto del tratamiento "ideal"?
Alternativamente, puede considerar algunos enfoques de modelado diferentes:
¿Existen pocos grupos o puntos de tiempo suficientes para que pueda usar un efecto fijo (como indicadores de grupo o un efecto de tiempo polinómico) para modelar el nivel de grupo / heterogeneidad autorregresiva?
Es apropiado un modelo marginal (usando un GEE para mejorar la eficiencia de la estimación de error estándar, pero usando solo efectos fijos)
¿Podría un modelo bayesiano con un previo informativo sobre los efectos aleatorios mejorar la estimación?
caret
tiene una función llamadafindLinearCombos
que le indicará cuáles son las variables problemáticas.Respuestas:
La deficiencia de rango en este contexto dice que no hay suficiente información contenida en sus datos para estimar el modelo que desea. Proviene de muchos orígenes. Hablaré aquí sobre modelar en un contexto bastante general, en lugar de una regresión logística explícita, pero todo aún se aplica al contexto específico.
La deficiencia puede provenir simplemente de muy pocos datos. En general, no puede estimar de manera única n parámetros con menos de n puntos de datos. Eso no significa que todo lo que necesita sean n puntos, ya que si hay algún ruido en el proceso, obtendría resultados bastante pobres. Necesita más datos para ayudar al algoritmo a elegir una solución que represente todos los datos, en un sentido de error mínimo. Es por eso que utilizamos herramientas de mínimos cuadrados. ¿Cuántos datos necesitas? Siempre me hicieron esa pregunta en una vida pasada, y la respuesta fue más de lo que usted tiene, o tanto como puede obtener. :)
A veces puede tener más datos de los que necesita, pero algunos (demasiados) puntos son réplicas. La replicación es BUENA en el sentido de que ayuda a reducir el ruido, pero no ayuda a aumentar el rango numérico. Por lo tanto, suponga que solo tiene dos puntos de datos. No puede estimar un modelo cuadrático único a través de los puntos. Un millón de réplicas de cada punto aún no le permitirá ajustar más que una línea recta, a través de lo que todavía son solo un par de puntos. Esencialmente, la replicación no agrega contenido de información. Todo lo que hace es disminuir el ruido en lugares donde ya tienes información.
A veces tienes información en los lugares equivocados. Por ejemplo, no puede ajustar un modelo cuadrático bidimensional si todo lo que tiene son puntos que se encuentran en una línea recta en dos dimensiones. Es decir, suponga que tiene puntos dispersos solo a lo largo de la línea x = y en el plano, y desea ajustar un modelo para la superficie z (x, y). Incluso con miles de millones de puntos (ni siquiera réplicas) tendrá información suficiente para estimar inteligentemente más que un modelo constante. Sorprendentemente, este es un problema común que he visto en los datos de muestra. El usuario se pregunta por qué no puede construir un buen modelo. El problema está integrado en los mismos datos que han muestreado.
A veces es simplemente la elección del modelo. Esto puede verse como "datos insuficientes", pero desde el otro lado. Desea estimar un modelo complicado, pero no ha proporcionado datos suficientes para hacerlo.
En todos los casos anteriores, la respuesta es obtener más datos, muestreados de manera inteligente de lugares que proporcionarán información sobre el proceso que actualmente carece. El diseño de experimentos es un buen lugar para comenzar.
Sin embargo, incluso los buenos datos a veces son inadecuados, al menos numéricamente. (¿Por qué suceden cosas malas a los buenos datos?) El problema aquí puede estar relacionado con el modelo. Puede estar en nada más que una mala elección de unidades. Puede provenir de la programación de la computadora realizada para resolver el problema. (¡Uf! ¿Por dónde empezar?)
Primero, hablemos de unidades y escalado. Supongamos que trato de resolver un problema donde una variable es MUCHOS órdenes de magnitud más grande que otra. Por ejemplo, supongamos que tengo un problema que involucra mi altura y el tamaño de mi zapato. Mediré mi altura en nanómetros. Por lo tanto, mi altura sería de aproximadamente 1.78 mil millones (1.78e9) de nanómetros. Por supuesto, elegiré medir el tamaño de mi zapato en kilo-parsecs, entonces 9.14e-21 kilo-parsecs. Cuando haces modelos de regresión, la regresión lineal tiene que ver con el álgebra lineal, que implica combinaciones lineales de variables. El problema aquí es que estos números son diferentes en muchos órdenes de magnitud (y ni siquiera en las mismas unidades). Las matemáticas fallarán cuando un programa de computadora intente sumar y restar números que varían en tantos órdenes de magnitud (para una precisión doble número,
El truco generalmente es usar unidades comunes, pero en algunos problemas incluso eso es un problema cuando las variables varían en demasiados órdenes de magnitud. Más importante es escalar sus números para que sean similares en magnitud.
A continuación, puede ver problemas con números grandes y pequeñas variaciones en esos números. Por lo tanto, suponga que intenta construir un modelo polinomial de orden moderadamente alto con datos donde todas sus entradas se encuentran en el intervalo [1,2]. Los números de cuadratura, cubos, etc., que están en el orden de 1 o 2 no causarán problemas al trabajar en aritmética de doble precisión. Alternativamente, agregue 1e12 a cada número. En teoría, las matemáticas lo permitirán. Todo lo que hace es cambiar cualquier modelo polinómico que construimos en el eje x. Tendría exactamente la misma forma, pero se traduciría 1e12 a la derecha. En la práctica, el álgebra lineal fallará miserablemente debido a problemas de deficiencia de rango. No ha hecho nada más que traducir los datos, pero de repente comienza a ver aparecer matrices singulares.
Por lo general, el comentario realizado será una sugerencia para "centrar y escalar sus datos". Efectivamente, esto dice cambiar y escalar los datos para que tengan una media cercana a cero y una desviación estándar que sea aproximadamente 1. Eso mejorará en gran medida el condicionamiento de la mayoría de los modelos polinomiales, reduciendo los problemas de deficiencia de rango.
Existen otras razones para la deficiencia de rango. En algunos casos se integra directamente en el modelo. Por ejemplo, supongamos que proporciono la derivada de una función, ¿puedo inferir únicamente la función en sí? Por supuesto que no, ya que la integración implica una constante de integración, un parámetro desconocido que generalmente se infiere por el conocimiento del valor de la función en algún momento. De hecho, esto a veces surge también en problemas de estimación, donde la singularidad de un sistema se deriva de la naturaleza fundamental del sistema en estudio.
Seguramente omití algunas de las muchas razones para la deficiencia de rango en un sistema lineal, y he parloteado durante demasiado tiempo ahora. Con suerte, logré explicar los que cubrí en términos simples y una forma de aliviar el problema.
fuente
Para la definición del rango de una matriz, puede consultar cualquier buen libro de texto sobre álgebra lineal, o echar un vistazo a la página de Wikipedia .
Se dice que una matriz matriz es rango completo si , y sus columnas no son una combinación lineal entre sí. En ese caso, la matriz es positiva definida, lo que implica que tiene un inverso .n×p X n≥p p×p XTX (XTX)−1
Si no es rango completo, una de las columnas se explica completamente por las otras, en el sentido de que es una combinación lineal de las otras. Un ejemplo trivial es cuando una columna está duplicada. Esto también puede suceder si tiene una variable 0-1 y una columna consta de solo 0 o solo 1. En ese caso, el rango de la matriz es menor que y no tiene inverso.X X n XTX
Dado que la solución de muchos problemas de regresión (incluida la regresión logística) implica el cálculo intermedio , es imposible estimar los parámetros del modelo. Por curiosidad, puede comprobar aquí cómo participa este término en la fórmula de la regresión lineal múltiple.(XTX)−1
Eso fue por deficiencia absoluta de rango. Pero a veces el problema aparece cuando la matriz "casi" no tiene rango completo, como lo detalla ampliamente @woodchips. Este problema generalmente se conoce como multicolinealidad . Este problema es bastante común, puedes encontrar más información sobre cómo tratarlo en publicaciones relacionadas aquí y allá .X
fuente
La respuesta de user974 es fantástica desde una perspectiva de modelado y la respuesta de gui11aume es fantástica desde una perspectiva matemática. Quiero refinar la respuesta anterior estrictamente desde una perspectiva de modelado mixto: específicamente una perspectiva de modelado mixto generalizado (GLMM). Como puede ver, ha hecho referencia a la función R
mer_finalize
que se encuentra en el fantásticolme4
paquete. También dice que está ajustando un modelo de regresión logística.Hay muchos problemas que surgen con este tipo de algoritmos numéricos. La cuestión de la estructura matricial de la matriz modelo de efectos fijos ciertamente vale la pena considerar, como aludió el usuario974. Pero esto es muy fácil de evaluar, simplemente calcule
model.matrix
sus argumentosformula=
ydata=
en un modelo y tome su determinante usando ladet
función. Sin embargo, los efectos aleatorios complican en gran medida la interpretación, la rutina de estimación numérica y la inferencia sobre los efectos fijos (lo que generalmente se considera coeficientes de regresión en un modelo de regresión "regular").Supongamos que, en el caso más simple, solo se le ajusta un modelo de intercepciones aleatorias. Entonces, básicamente, está considerando que hay miles de fuentes de heterogeneidad no medidas que se mantienen constantes en medidas repetidas dentro de los grupos. Usted estima una intercepción "grandiosa", pero tiene en cuenta la heterogeneidad suponiendo que las intercepciones específicas de grupo tienen alguna distribución normal media. Las intersecciones se estiman de forma iterativa y se utilizan para actualizar los efectos del modelo hasta que se logre la convergencia (se maximiza la probabilidad logarítmica, o una aproximación de la misma). El modelo mixto es muy fácil de imaginar, pero matemáticamente la probabilidad es muy compleja y propensa a problemas con singularidades, mínimos locales y puntos límite (odds ratios = 0 o infinito). Los modelos mixtos no tienen probabilidades cuadráticas como los GLM canónicos.
Desafortunadamente, Venerables y Ripley no invirtieron mucho en diagnósticos para fallas convergentes como el suyo. Es prácticamente imposible incluso especular sobre la miríada de posibles errores que conducen a tal mensaje. Considere, entonces, los tipos de diagnóstico que uso a continuación:
Alternativamente, puede considerar algunos enfoques de modelado diferentes:
fuente