У меня есть модель смешанного эффекта (фактически обобщенная аддитивная смешанная модель), которая дает мне прогнозы для временных рядов. Чтобы противодействовать автокорреляции, я использую модель 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)
Редактировать :
Урок для изучения: прежде чем паниковать, сначала просмотрите все примеры во всех файлах справки. В справочных файлах Forex.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)
Что, кажется, близко к тому, что я хочу сделать. Это все еще не говорит мне точно, как это сделано. Я мог бы добраться до того факта, что он основан на матрице линейного предиктора. Любые идеи по-прежнему приветствуются.