Eliminar el intercepto es un modelo diferente, pero hay muchos ejemplos donde es legítimo. Hasta ahora, las respuestas ya han discutido en detalle el ejemplo donde el verdadero intercepto es 0. Me enfocaré en algunos ejemplos donde podríamos estar interesados en una parametrización del modelo atípica.
Ejemplo 1: El Modelo de Estilo ANOVA. Para variables categóricas, típicamente creamos vectores binarios que codifican la membresía del grupo. El modelo de regresión estándar está parametrizado como intercepto + k - 1 vectores ficticios. El intercepto codifica el valor esperado para el grupo "de referencia", o el vector omitido, y los vectores restantes prueban la diferencia entre cada grupo y la referencia. Pero en algunos casos, puede ser útil tener el valor esperado de cada grupo.
dat <- mtcars
dat$vs <- factor(dat$vs)
## modelo de intercepto: el coeficiente de vs se convierte en diferencia
lm(mpg ~ vs + hp, data = dat)
Coefficients:
(Intercepto) vs1 hp
26.96300 2.57622 -0.05453
## sin intercepto: dos coeficientes de vs, expectativas condicionales para ambos grupos
lm(mpg ~ 0 + vs + hp, data = dat)
Coefficients:
vs0 vs1 hp
26.96300 29.53922 -0.05453
Ejemplo 2: El caso de datos estandarizados. En algunos casos, uno puede estar trabajando con datos estandarizados. En este caso, el intercepto es 0 por diseño. Creo que un ejemplo clásico de esto era el antiguo estilo de modelos de ecuaciones estructurales o factor, que operaban solo en las matrices de covarianza de los datos. En el caso a continuación, probablemente sea una buena idea estimar el intercepto de todos modos, si solo es para eliminar el grado de libertad adicional (que realmente debería haberse perdido de todos modos porque la media fue estimada), pero hay un puñado de situaciones donde por construcción, las medias pueden ser 0 (por ejemplo, ciertos experimentos donde los participantes asignan calificaciones, pero están obligados a dar igual positivos y negativos).
dat <- as.data.frame(scale(mtcars))
## el intercepto es 0 por diseño
lm(mpg ~ hp + wt, data = dat)
Coefficients:
(Intercepto) hp wt
3.813e-17 -3.615e-01 -6.296e-01
## dejando fuera el intercepto
lm(mpg ~ 0 + hp + wt, data = dat)
Coefficients:
hp wt
-0.3615 -0.6296
Ejemplo 3: Modelos Multivariados e Interceptos Ocultos. Este ejemplo es similar al primero en muchos aspectos. En este caso, los datos se han apilado para que dos variables diferentes estén ahora en un vector largo. Una segunda variable codifica información sobre si el vector de respuesta, y
, pertenece a mpg
o a disp
. En este caso, para obtener los interceptos separados para cada resultado, suprimes el intercepto general e incluyes ambos vectores ficticios para la medida. Esto es una especie de análisis multivariado. No se suele hacer con lm()
porque tienes medidas repetidas y probablemente deberías permitir la no independencia. Sin embargo, hay algunos casos interesantes donde esto es necesario. Por ejemplo, al intentar hacer un análisis de mediación con efectos aleatorios, para obtener la matriz completa de varianza covarianza, necesitas estimar ambos modelos simultáneamente, lo cual se puede hacer apilando los datos y usando hábilmente los vectores ficticios.
## apilando datos para análisis multivariado
dat <- reshape(mtcars, varying = c(1, 3), v.names = "y",
timevar = "measure", times = c("mpg", "disp"),
direction = "long")
dat$measure <- factor(dat$measure)
## dos regresiones con solo interceptos
lm(cbind(mpg, disp) ~ 1, data = mtcars)
Coefficients:
mpg disp
(Intercepto) 20.09 230.72
## usando los datos apilados, la medida es la diferencia
## entre las medias de los resultados
lm(y ~ measure, data = dat)
Coefficients:
(Intercepto) measurempg
230.7 -210.6
## 'intercepto' separado para cada resultado
lm(y ~ 0 + measure, data = dat)
Coefficients:
measuredisp measurempg
230.72 20.09
No estoy argumentando que los interceptos deberían eliminarse generalmente, pero es bueno ser flexible.
1 votos
@chi gracias por editar mi pregunta. ¿Hay cosas que debería aclarar o reformular en futuras preguntas?
3 votos
Su pregunta está bien formulada. @chl amablemente mejoró algo de formato, eso es todo. Implicó TeXificar el "R^2" (se convirtió en $\$$R^2$\$$, lo que se representa como $R^2$).
1 votos
¿Qué significaría la intersección en tu modelo? Por la información en tu pregunta, parece que sería el valor esperado de tu respuesta cuando sqft=0 y lotsize=0 y baths=0. ¿Alguna vez ocurrirá eso en la realidad?
0 votos
El intercepto no tiene significado. Entonces, al escribir una fórmula para el valor esperado de una casa, ¿puedo omitir esto?
1 votos
En lugar de y= a + b1 x1 + b2 x2 + b3x3, ¿puedo omitir a?
3 votos
NB: Algunos de estos comentarios y respuestas abordan esencialmente la misma pregunta (enmarcada en el contexto de una regresión de precios de viviendas) que se fusionó con esta como duplicada.
1 votos
Un punto adicional: $ R ^ 2 $ no tiene tan buenas propiedades cuando no se incluye una intercepción en tu modelo, por lo que no es la mejor estadística para usar en tu comparación.