R:绘制置信区域问题

时间:2017-09-24 20:38:15

标签: r plot

我试图使用函数绘制回归的置信带,但我的上下预测带的线看起来很奇怪和模糊。任何人都可以发现这个问题,因为我似乎找不到任何错误吗?

以下是代码:

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数据,回归文盲收入):

enter image description here

这是我用于上述测试的代码:

> test <- as.data.frame(state.x77)
> drawPrediction(test$Illiteracy, test$Income)

1 个答案:

答案 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' )

Sorted x's