在线性模型的值范围之外

时间:2015-01-25 20:20:09

标签: r

我有12个值。每个月一个。 使用它们想要使用线性模型预测未来12个月。

我的操作不起作用

> fit <- lm(g[c(12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)]  ~ rep(1997, each = 12) + rep(1:12, 1))
> cpi2011 <- fit$coefficients[[1]] + fit$coefficients[[2]] * 1998 + fit$coefficients[[3]] * (1:12)
> plot(cpi2011)
Error in plot.window(...) : 'ylim' needs a finite value
In addition: Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf

> plot(fit) # gives nonsense

请帮助:)

1 个答案:

答案 0 :(得分:1)

由于您向线性模型添加了rep(1997, each = 12),因此您的设计矩阵将不具有完整排名。这由R通过将系数设置为'N'来处理。试着看coef(fit)

只需从线性模型中移除rep(1997, each = 12),例如:

fit <- lm(g[c(12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)]  ~ rep(1:12, 1))
cpi2011 <- fit$coefficients[1] + fit$coefficients[2] * (12+(1:12))
plot(cpi2011)