27 votos

Cuándo es aceptable/aconsejable forzar el intercepto de 0 en la regresión lineal

Tengo un modelo de regresión para estimar el tiempo de finalización de un proceso, basado en varios factores. Tengo 200 ensayos de estos procesos, en los que los 9 factores que se miden varían mucho. Cuando realizo una regresión lineal de los 9 factores (y todas las interacciones de 2 y 3 factores), sin intercepción explícita, obtengo una R ${^2}$ de 0,915, si fuerzo el intercepto a 0 obtengo una R ajustada ${^2}$ de 0,953.

Mi intención de forzar el intercepto a 0 era asegurar que los ensayos que se completaron en cantidades muy cortas de tiempo (< 1 segundo) no resultaron en predicciones de < 0. Establecer el intercepto a 0 no ayudó con esto.

Así que mi pregunta es triple. 1) ¿Cuándo es aceptable/aconsejable forzar una interceptación? 2) ¿La mejora de la R ${^2}$ ¿significa realmente que el modelo se ajusta mejor (el gráfico de valores ajustados frente a los medidos parece mejor)? 3) ¿Hay alguna forma de garantizar que los valores ajustados sean todos > 0?

2 votos

Hay varios votos para cerrar este hilo por ser un duplicado de uno de los referidos en los comentarios anteriores. Esos votos son válidos en base a (1) e incluso (2), pero (3) parece nuevo. Por lo tanto, me gustaría sugerir que los encuestados se centren en la tercera pregunta.

0 votos

Mis disculpas por el cruce con otras preguntas, sin embargo encontré que las preguntas que busqué, incluyendo la que está enlazada, no abordaban aspectos específicos, como por ejemplo dónde se espera un valor siempre positivo, sin embargo me parece bien que se centre en el tercer punto, ya que es el más importante.

22voto

AdamSane Puntos 1825

Es inusual no ajustar un intercepto y generalmente desaconsejable - uno sólo debería hacerlo si sabe que es 0, pero creo que (y el hecho de que no se puede comparar el $R^2$ para los ajustes con y sin intercepción) ya está bien cubierto (aunque posiblemente un poco exagerado en el caso de la intercepción 0); quiero centrarme en tu cuestión principal, que es que necesitas que la función ajustada sea positiva, aunque vuelvo a la cuestión de la intercepción 0 en parte de mi respuesta.

La mejor manera de conseguir un ajuste siempre positivo es ajustar algo que siempre sea positivo; en parte eso depende de las funciones que necesites ajustar.

Si su modelo lineal es en gran medida uno de conveniencia (en lugar de provenir de una relación funcional conocida que podría provenir de un modelo físico, por ejemplo), entonces podría trabajar con el logaritmo del tiempo; el modelo ajustado está entonces garantizado para ser positivo en $t$ . Como alternativa, se podría trabajar con la velocidad en lugar del tiempo - pero entonces con los ajustes lineales se puede obtener un problema con velocidades pequeñas (tiempos largos) en su lugar.

Si sabe que su respuesta es lineal en los predictores, puede intentar ajustar un regresión restringida pero en el caso de la regresión múltiple, la forma exacta que necesite dependerá de sus x particulares (no hay una restricción lineal que funcione para todas las $x's$ ), por lo que es un poco ad hoc.

También se pueden examinar los GLM, que se pueden utilizar para ajustar modelos que tienen valores ajustados no negativos y pueden (si es necesario) incluso tener $E(Y)=X\beta$ .

Por ejemplo, se puede ajustar un GLM gamma con enlace de identidad. No debería terminar con un valor ajustado negativo para ninguna de sus x (pero quizás podría tener problemas de convergencia en algunos casos si fuerza el enlace de identidad donde realmente no se ajusta).

He aquí un ejemplo: el cars conjunto de datos en R, que registra la velocidad y las distancias de parada (la respuesta).

enter image description here

Uno podría decir "oh, pero la distancia para la velocidad 0 está garantizada para ser 0, así que deberíamos omitir el intercepto" pero el problema con ese razonamiento es que el modelo está mal especificado de varias maneras, y ese argumento sólo funciona bastante bien cuando el modelo no está mal especificado - un modelo lineal con 0 intercepto no se ajusta en absoluto bien en este caso, mientras que uno con un intercepto es en realidad una aproximación medio decente aunque no sea realmente "correcto".

El problema es que, si se ajusta una regresión lineal ordinaria, el intercepto ajustado es bastante negativo, lo que hace que los valores ajustados sean negativos.

La línea azul es el ajuste OLS; el valor ajustado para los valores x más pequeños del conjunto de datos es negativo. La línea roja es el GLM gamma con enlace de identidad -- aunque tiene un intercepto negativo, sólo tiene valores ajustados positivos. Este modelo tiene una varianza proporcional a la media, por lo que si encuentra que sus datos son más dispersos a medida que el tiempo esperado crece, puede ser especialmente adecuado.

Así que ese es un posible enfoque alternativo que puede valer la pena probar. Es casi tan fácil como ajustar una regresión en R.

Si no necesitas el enlace de identidad, puedes considerar otras funciones de enlace, como el enlace logarítmico y el enlace inverso, que se relacionan con las transformaciones ya discutidas, pero sin la necesidad de una transformación real.


Como la gente suele pedirlo, aquí está el código de mi parcela:

plot(dist~speed,data=cars,xlim=c(0,30),ylim=c(-5,120))
abline(h=0,v=0,col=8)
abline(glm(dist~speed,data=cars,family=Gamma(link=identity)),col=2,lty=2)
abline(lm(dist~speed,data=cars),col=4,lty=2)

(La elipse se añadió a mano después, aunque es bastante fácil de hacer en R también)

0 votos

Gracias por la respuesta, estoy un poco confundido sobre el propósito de las funciones Gamma y abline, cuando intento ejecutar el mismo comando en mis datos obtengo: "sólo utiliza los dos primeros de 130 coeficientes de regresión". No debería que mi modelo es más complicado que "dist~speed", hay 9 factores y actualmente estoy utilizando las 3 interacciones de los factores. Cuando intento trazar la función abline, sólo obtengo una línea vertical en 0. Intenté simplificar el modelo (y usar el enlace logarítmico) y también obtuve una línea casi horizontal, ¿cómo interpreto estos datos usando el método anterior?

0 votos

abline dibuja una línea cuando se especifica la pendiente (a) y el intercepto (b). Si le pasas un modelo lineal simple ajustado, lo extraerá de él. Cuando tiene múltiples predictores no se puede trazar una línea (¿Cómo funcionaría eso? No encajaste una línea). Estaba ilustrando mi sugerencia de utilizar un MLG para que pudieras ver lo que hacía, no dando una receta para que la siguieras. No sé cómo están organizados tus datos, así que es difícil dar un consejo sobre lo que ha fallado en tu ajuste. Ajustar un MLG será casi tan fácil como ajustar una regresión en casi cualquier paquete estadístico, si estás acostumbrado a otra cosa, úsala.

13voto

kjetil b halvorsen Puntos 7012

Respuesta breve a la pregunta del título: (casi) NUNCA. En el modelo de regresión lineal $$ y = \alpha + \beta x + \epsilon $$ , si se establece $\alpha=0$ entonces usted dice que SABE que el valor esperado de $y$ dado $x=0$ es cero. Eso casi nunca se sabe.

$R^2$ es mayor sin intercepción, no porque el modelo sea mejor, sino porque la definición de $R^2$ ¡usado es otro! $R^2$ es una expresión de la comparación del modelo estimado con algún modelo estándar, expresada como reducción de la suma de cuadrados en comparación con la suma de cuadrados con el modelo estándar. En el modelo con intercepción, la suma de cuadrados de la comparación se sitúa en torno a la media. Sin intercepción, ¡está en torno a cero! Esta última suele ser mucho mayor, por lo que es más fácil obtener una gran reducción de la suma de cuadrados.

Conclusión: NO DEJE EL INTERCAMBIO FUERA DEL MODELO (a menos que realmente, realmente sepa lo que está haciendo).

EDITAR (a partir de los comentarios de abajo): Una excepción se menciona en otra parte de los comentarios (pero eso es sólo aparentemente una excepción, el vector constante 1 está en el espacio de columnas de la matriz de diseño $X$ . Por lo demás, como las relaciones físicas $s=v t$ donde no hay constantes. Pero incluso en ese caso, si el modelo es sólo aproximado (la velocidad no es realmente constante), puede ser mejor dejar una constante aunque no se pueda interpretar. Con los modelos no lineales esto se convierte en un problema mayor.

1 votos

Pero seguramente el hecho de tener datos que indican que cuando los 9 factores son así, el tiempo real es 0 (o casi) significa que estoy bastante seguro de que cuando X = 0, Y = 0.

4 votos

En tu caso, sabes que los tiempos de finalización no pueden ser negativos, sí. Entonces, ¿un modelo lineal no es apropiado? Pruebe con algún otro modelo, tal vez el análisis de supervivencia, o algún GLM con una distribución en la línea real positiva (distribución Gamma, distribución Weibull...)

0 votos

Una excepción se menciona en otra parte de los comentarios (pero es sólo aparentemente una excepción, el vector constamt 1 está en el espacio de la columna de la matriz del regresor $X$ . Por lo demás, como las relaciones físicas $s=v t$ donde no hay constantes. Pero incluso entonces, si el modelo es sólo aproximado (la velocidad no es realmente constante), puede ser mejor dejar una constante aunque no pueda interpretarse. Con los modelos no lineales esto se convierte en un problema mayor.

4voto

alexs77 Puntos 36

1) Nunca es aceptable suprimir una intercepción, excepto en tipos muy raros de modelos DiD en los que el resultado y los predictores son realmente diferencias calculadas entre grupos (este no es su caso).

2). No, no es así. Lo que significa es que puede tener un mayor grado de interno validez (por ejemplo, el modelo se ajusta a los datos) pero probablemente un bajo grado de externo validez (por ejemplo, el modelo se ajustaría mal a los datos experimentales obtenidos en condiciones similares). Esto es generalmente algo malo.

3) Suprimir el intercepto no necesariamente lo hará, pero asumo que el predictor era de valor continuo. En muchas situaciones, los tiempos de finalización del proceso se analizan mediante una transformación inversa, por ejemplo $x = 1/t$ donde $t$ es el tiempo que se tarda en completar un proceso. La inversa de la media de los datos transformados inversamente se llama media armónica y representa el tiempo medio de finalización de una tarea.

$$\mbox{HM} = \frac{1}{\mathbb{E}(x)} = \frac{1}{\mathbb{E}(1/t)} $$

También se puede utilizar un modelo paramétrico exponencial o gamma o weibull de tiempo hasta el evento, que son tipos de modelos construidos específicamente para predecir los tiempos de finalización. Estos darán resultados muy similares a los resultados transformados inversamente.

1 votos

Creo que es un poco fuerte afirmar que se puede nunca suprimir una interceptación. ¿Y si quiere/necesita codificar $k$ grupos ficticios en lugar de los más habituales $k-1$ ?

1 votos

Usted sigue estimando $k$ efectos en el ejemplo que mencionas. La pregunta del OP es una cuestión de 2 contra 1 efectos ( con intercepción frente a sin intercepción, predictor continuo).

1 votos

Usuario777: Sí, pero eso sólo funciona en casos muy concretos. Por ejemplo, si tienes clasificaciones cruzadas en dos grupos, tu truco no funciona.

3voto

Tom Puntos 783

1) Forzar $0$ intercepción es aconsejable si se sabe con certeza que es 0. Cualquier cosa que se sepa a priori que debe utilizar en su modelo.

Un ejemplo es el modelo de Hubble para la expansión del Universo (utilizado en El sabueso de las estadísticas ):

$$\mbox{Galaxy Speed} = k (\mbox{Distance from Earth}) $$

Este modelo es bastante burdo, pero utiliza la intercepción 0 como consecuencia de la teoría del Big Bang: en el momento $0$ toda la materia está en un solo lugar.

Por otro lado, el modelo que describes probablemente necesitará un término de intercepción.

2) Podrías mejorar o no $R^2_{adj}$ o puede aceptar la hipótesis nula para la prueba de que el intercepto es 0, pero ambas no son razones para eliminar el término del intercepto.

3) Para garantizar la positividad de las respuestas, a veces se puede transformar la variable de respuesta. El logaritmo o la raíz cuadrada pueden funcionar en función de los datos; por supuesto, habrá que comprobar los residuos.

0 votos

Este es un caso muy especial. La mayoría de las aplicaciones no son así.

-1voto

Owen Fraser-Green Puntos 642

La única manera que conozco de restringir todos los valores ajustados para que sean mayores que cero es utilizar un enfoque de programación lineal y especificar eso como una restricción.

1 votos

No es así. La regresión de Poisson y cualquier modelo lineal generalizado con enlace logarítmico devolverá todos los valores predichos positivos. @Glen_b ya ha señalado este punto en su respuesta.

0 votos

@Nick ... Por supuesto ... Como las variables de Poisson están restringidas por 0 esto es así. Gracias ...

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