我有一个混合效果模型(实际上是广义加性混合模型),可以为我提供时间序列的预测。考虑到我缺少数据,我使用corCAR1模型来抵消自相关。数据应该给我带来了总的负担,所以我需要对整个预测间隔求和。但我也应该估算出该总负载下的标准误差。
如果所有预测都是独立的,则可以通过以下方式轻松解决:
V a r (E [ X i ] )= S E (E [ X i ] )2 with
问题是,预测值来自模型,原始数据具有自相关。整个问题导致以下问题:
- 我是否可以假设将计算得出的预测的SE解释为该预测的期望值的方差根部,这是正确的吗?我倾向于将预测解释为“平均预测”,因此总结了一系列的均值。
- 如何在这个问题中包含自相关,或者我可以安全地假设它不会对结果产生太大影响?
这是R中的一个例子。我的真实数据集约有34.000个测量值,因此可伸缩性是一个问题。这就是为什么我在每个月内对自相关建模的原因,否则就无法进行计算了。这不是最正确的解决方案,但是最正确的解决方案却不可行。
set.seed(12)
require(mgcv)
Data <- data.frame(
dates = seq(as.Date("2011-1-1"),as.Date("2011-12-31"),by="day")
)
Data <- within(Data,{
X <- abs(rnorm(nrow(Data),3))
Y <- 2*X + X^2 + scale(Data$dates)^2
month <- as.POSIXlt(dates)$mon+1
mday <- as.POSIXlt(dates)$mday
})
model <- gamm(Y~s(X)+s(as.numeric(dates)),correlation=corCAR1(form=~mday|month),data=Data)
preds <- predict(model$gam,se=T)
Total <- sum(preds$fit)
编辑:
要学习的经验:惊慌失措之前,请先仔细阅读所有帮助文件中的所有示例。在predict.gam的帮助文件中,我可以找到:
#########################################################
## now get variance of sum of predictions using lpmatrix
#########################################################
Xp <- predict(b,newd,type="lpmatrix")
## Xp %*% coef(b) yields vector of predictions
a <- rep(1,31)
Xs <- t(a) %*% Xp ## Xs %*% coef(b) gives sum of predictions
var.sum <- Xs %*% b$Vp %*% t(Xs)
这似乎与我想做的很接近。这仍然不能完全告诉我它是如何完成的。我可以理解它基于线性预测矩阵的事实。仍然欢迎任何见解。