¿Qué modelo es el "mejor modelo de ajuste" depende de lo que quiere decir con "mejor". R tiene herramientas para ayudar, pero debe proporcionar la definición de "mejor" para elegir entre ellas. Tenga en cuenta los siguientes datos de ejemplo y código:
x <- 1:10
y <- x + c(-0.5,0.5)
plot(x,y, xlim=c(0,11), ylim=c(-1,12))
fit1 <- lm(y~offset(x) -1)
fit2 <- lm(y~x)
fit3 <- lm(y~poly(x,3))
fit4 <- lm(y~poly(x,9))
library(splines)
fit5 <- lm(y~ns(x, 3))
fit6 <- lm(y~ns(x, 9))
fit7 <- lm(y ~ x + cos(x*pi))
xx <- seq(0,11, length.out=250)
lines(xx, predict(fit1, data.frame(x=xx)), col='blue')
lines(xx, predict(fit2, data.frame(x=xx)), col='green')
lines(xx, predict(fit3, data.frame(x=xx)), col='red')
lines(xx, predict(fit4, data.frame(x=xx)), col='purple')
lines(xx, predict(fit5, data.frame(x=xx)), col='orange')
lines(xx, predict(fit6, data.frame(x=xx)), col='grey')
lines(xx, predict(fit7, data.frame(x=xx)), col='black')
¿Cuál de los modelos es el mejor?se podrían hacer argumentos para cualquiera de ellos (pero yo, por mi parte, no querría usar el morado para la interpolación).
en el clavo en pedir "en caso de que". Los datos de muestra solo tienen 8 puntos. Los grados de libertad son bastante bajos aquí. Los datos de la vida real pueden tener mucho más, por supuesto. –
Gracias por su respuesta. ¿Qué hay de hacer que R encuentre el modelo que mejor se adapte? ¿Hay alguna función para esto? –
Depende de su definición de "mejor modelo". El modelo que le proporcione el mayor R^2 (que sería un polinomio de décimo orden) no es necesariamente el "mejor" modelo. Los términos en su modelo deben ser razonablemente elegidos. Puede obtener un ajuste casi perfecto con una gran cantidad de parámetros, pero el modelo no tendrá poder predictivo y será inútil para otra cosa que no sea dibujar una línea que mejor se ajuste a los puntos. – Greg