我有一个混合效应模型(实际上是一个广义的加性混合模型),它可以为我提供时间序列的预测。为了抵消自相关,我使用了 corCAR1 模型,因为我缺少数据。数据应该给我一个总负载,所以我需要对整个预测区间求和。但我还应该估计该总负载的标准误差。
如果所有预测都是独立的,则可以通过以下方式轻松解决:
与
问题是,预测值来自模型,并且原始数据具有自相关性。整个问题导致以下问题:
- 我是否正确假设计算预测的 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)
这似乎接近我想要做的。这仍然没有告诉我它是如何完成的。我可以得到它基于线性预测矩阵的事实。仍然欢迎任何见解。