我试图使用函数绘制回归的置信带,但我的上下预测带的线看起来很奇怪和模糊。任何人都可以发现这个问题,因为我似乎找不到任何错误吗?
以下是代码:
drawPrediction <- function(x, y) {
lm.model <- lm(y ~ x)
ci <- predict(lm.model, interval = "prediction")
plot(x,y)
abline(lm.model, col = "red")
lines(x, ci[,2], lty = 2, col = 'blue')
lines(x,ci[,3], lty = 2, col = 'blue' )
}
给出一些测试数据的结果(R state.x77数据,回归文盲收入):
这是我用于上述测试的代码:
> test <- as.data.frame(state.x77)
> drawPrediction(test$Illiteracy, test$Income)
答案 0 :(得分:3)
问题是x没有排序,所以你在整个地方绘制线条,而不仅仅是在连续的x之间。相反,使用
lm.model <- lm(Income ~ Illiteracy, data=as.data.frame(state.x77))
ci <- predict(lm.model, interval = "prediction")
plot(x,y)
abline(lm.model, col = "red")
lines(sort(x), ci[order(x),2], lty = 2, col = 'blue')
lines(sort(x), ci[order(x),3], lty = 2, col = 'blue' )