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.