如何重新校准做不同的平均值

时间:2017-10-27 13:00:56

标签: r regression

我想重新调整并获得新的估计值,以便通过考虑长期平均值来重新校准最新模型拟合(本例中较短的样本50 obs)。那么如何进行拦截(斜率?)转换?

以下是一些数据:

set.seed(2017); n <- 200; price <- rep(55, n); walk <- rnorm(n)
for(i in 2:n) price[i] <- price[i-1] + walk[i]; 
data <- data.frame(price, idx=seq_along(price))

模型部分:

# mean of price on whole data set: 55.03

plot(price ~ idx, data=data)
abline(lm(price ~ 1, data=data), col="red", lwd=2)

# here the mean on reduced sample is 52.85: 
# lm(price ~ 1, data=data[((nrow(data)-50):nrow(data)), ])
abline(lm(price ~ idx, data=data[((nrow(data)-50):nrow(data)), ])); 

那么如何适应lm(price ~ idx, data=data[((nrow(data)-50):nrow(data)), ])的契合度;这样它就反映了整个数据集的long term mean。 (无需重新运行整个数据集的回归。)

示例:

fit <- lm(price ~ idx, data=data[((nrow(data)-50):nrow(data)), ])
fit

predict(fit, newdata = data.frame(idx=200)) 
# mean value 56.71, needed `long-term mean` of 55.03 (circa)

0 个答案:

没有答案