Quiero calcular una regresión lineal utilizando la función lm() en R. Además, quiero obtener la pendiente de una regresión, donde explico explícitamente la intercepción en lm()
.Regresión lineal con una intercepción fija conocida en R
Encontré un ejemplo en Internet y traté de leer la R-help "? Lm" (desafortunadamente no lo entiendo), pero no tuve éxito. ¿Alguien puede decirme dónde está mi error?
lin <- data.frame(x = c(0:6), y = c(0.3, 0.1, 0.9, 3.1, 5, 4.9, 6.2))
plot (lin$x, lin$y)
regImp = lm(formula = lin$x ~ lin$y)
abline(regImp, col="blue")
# Does not work:
# Use 1 as intercept
explicitIntercept = rep(1, length(lin$x))
regExp = lm(formula = lin$x ~ lin$y + explicitIntercept)
abline(regExp, col="green")
Gracias por su ayuda.
o 'I (x - 1,0) ~ y-1' surpresses el montaje de la intersección también. –
@Joris Meys: Sí. Yo creo que las dos formas son sinónimos. Elegí la otra forma de evitar tener dos términos '-1' y tener que explicar cuál es cuál. – NPE
Pero cuando trazo la curva de curva de regresión (regExp, col = "green"), no pasa por 1. No he descubierto cómo extraer la pendiente (y/o intersección) de la salida lm. Para mí, parece que siempre debe conocer la posición de los valores en el coef-array, y luego extraer en (y esperar que la posición sea correcta). Entonces, ¿el siguiente código es la "forma de oro" para trazar la curva de regresión correcta? 'abline (b = coef (regExp) [1], a = explicitIntercept, col =" green ")' –