【发布时间】:2016-09-20 21:02:11
【问题描述】:
我对数据集应用线性回归:
## Random set
set.seed(123)
i0=0
imax = 100
x = seq(0,imax,1)
y = c(i0)
for( i in 1:imax ){
i1 = rnorm( n = 1, mean = i0, sd = 1)
y = c( y, i1 )
i0 = i1
}
plot(x,y)
## Build a data frame out of it
d0 = data.frame( x, y )
## Apply a linear regression
f0 = lm( d0$y ~ d0$x )
## Plot the fitted function
abline(f0)
现在我想用这个拟合函数来知道预测值
- 插值(例如 x=3.5)
- 外推值(例如 x=110)
我在网上只找到了这个答案:
y2=predict(f0, data.frame(x=seq(0,100,1)))
但这与我想要的不同。我当然可以使用它们的参数手动实现这些函数,但我希望它具有通用性。
欢迎任何提示!
【问题讨论】:
-
“内插”和“外插”值是什么意思?你期待什么结果(
predict使用新数据从模型返回预测 - 你还需要什么)? -
即使数据中有更多可用信息,您也仅通过其线性趋势来表示时间序列数据。这真的是您想要的吗?
-
这个例子是自制的。我尝试做的是使用 lm 在时间序列上拟合函数 f(x) = c1 * x + c2 * x + c3...,然后使用 lm 的结果来计算 f(x) x 的值我可能会喜欢。
-
线性外插或插值时间序列很少是聪明的,但要回答这个问题,只需使用
predict(f0, data.frame(x = z))和z是任何值。 R 帮助通常相当好,因此键入?predict.lm会更详细地解释它。您必须使用f0 = lm(y ~ x, data = d0)来明确变量的调用方式。 -
我查看了 predict 函数,但它在我做事的时候吐在我脸上:predict(f0,data.frame(x=20)) but got: 'newdata' has 1行,但找到的变量有 101 行
标签: r regression lm function