在R图上绘制预测线

时间:2012-04-17 18:28:13

标签: r

我有时间序列数据:

输出x数据帧:

Date  vol
1990  12
1991  13
1992  15
1994  18
1995  20
1996  35

我试图绘制这些数据并提前4年预测如下:

plot(x$Date, x$vol, col="blue")
x.lm<-lm(x$Vol ~ x$Date)
x.pre<-predict(x.lm, n.ahead=4)
abline(x.pre, col="red")

我收到此错误:

Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : 
  invalid a=, b= specification

有谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:3)

你在x.lm<-lm(x$Vol ~ x$Date)中大写“Vol”。

尝试

x.lm<-lm(x$vol ~ x$Date)

此外,如果不进行一些额外修改,您将无法将predict()的值传递给abline。由于您没有进行任何复杂的预测,但实际上只是想绘制线性拟合,您可以使用

绘制线条。
abline(x.lm, col="red")

如果您将变量分开,然后在predict中使用newdata参数,则应该能够获得实际预测。这可能是最干净的方式。例如:

y <- x$vol
x <- x$Date
x.lm <- lm(y~x)
predict(x.lm, data.frame(x=1997:2000))

这将返回1997 - 2000年的预测。我相信data.frame(x=1997:2000)中的“x”必须与放入lm()的变量匹配为x变量。在你的情况下,它有一个美元符号访问器,这使整个事情更复杂。我只是采用上面的方法,将输入到lm()函数中的x组件重命名为有效的变量名,稍后可以引用。