Отклонение от суммы прогнозируемых значений из модели со смешанным эффектом для временных рядов

32

У меня есть модель смешанного эффекта (фактически обобщенная аддитивная смешанная модель), которая дает мне прогнозы для временных рядов. Чтобы противодействовать автокорреляции, я использую модель corCAR1, учитывая тот факт, что у меня отсутствуют данные. Предполагается, что данные дают мне полную нагрузку, поэтому мне нужно суммировать за весь интервал прогнозирования. Но я также должен получить оценку стандартной ошибки для этой общей нагрузки.

Если бы все прогнозы были независимыми, это можно легко решить с помощью:

Var(i=1nE[Xi])=i=1nVar(E[Xi]) сVar(E[Xi])=SE(E[Xi])2

Проблема в том, что прогнозируемые значения поступают из модели, а исходные данные имеют автокорреляцию. Вся проблема приводит к следующим вопросам:

  1. Правильно ли я предположить, что SE на рассчитанных прогнозах можно интерпретировать как корень отклонения от ожидаемого значения этого прогноза? Я склонен интерпретировать предсказания как «средние предсказания» и, следовательно, суммировать целый набор средств.
  2. Как включить автокорреляцию в эту проблему, или я могу с уверенностью предположить, что это не повлияет на результаты слишком сильно?

Это пример в 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)

Что, кажется, близко к тому, что я хочу сделать. Это все еще не говорит мне точно, как это сделано. Я мог бы добраться до того факта, что он основан на матрице линейного предиктора. Любые идеи по-прежнему приветствуются.

Йорис Мейс
источник
6
Я не уверен, что делает программа r, но у нас есть Где - вектор-столбец единиц, а - ковариация матрица для . Это помогает?
var(iE[Xi])=aTvar(E[X])a
avar(E[X])E[X]=(E[X1],,E[Xn])T
вероятностная
@probabilityislogic Это в основном то, что делает программа r. Спасибо за математику
Йорис Мейс
2
@probabilityislogic Если вы можете заключить это в ответ, вы можете получить мою +50 награду. ;)
e-суши
Я вижу одну проблему, и, возможно, я просто неверно истолковываю вашу запись, но которая является константой, так что , где я в основном запуталсяE(Xi)=μii=1nVar(E[Xi])=0
user52220
@ user52220 Вот где ты не прав. E (Xi) - это ожидаемое значение и, следовательно, случайная величина, тогда как mu_i - это среднее число населения и, следовательно, фиксированное число. Var (mu) = 0, но то же самое не верно для E (Xi).
Йорис Мейс

Ответы:

1

В матричной записи смешанная модель может быть представлена ​​в виде

y = X * бета + Z * u + эпсилон

где X и Z - известные расчетные матрицы, относящиеся к наблюдениям с фиксированными и случайными эффектами, соответственно.

Я бы применил простое и адекватное (но не лучшее) преобразование для исправления автокорреляции, которое включает потерю первого наблюдения, и замену вектора столбца [y1, y2, ... yn] на меньшее на единицу. вектор столбца наблюдения, а именно: [y2 - rho * y1, y3 - rho * y2, ..., yn - rho * y (n-1)], где rho - ваше оценочное значение для последовательной автокорреляции.

Это может быть выполнено умножением на матрицу T, формирующую T * y, где 1-я строка T составлена ​​следующим образом: [-rho, 1, 0, 0, ....], 2-я строка: [0, -rho, 1, 0, 0, ...] и т. д. Аналогично, другие матрицы дизайна изменяются на T * X и T * Z. Кроме того, матрица дисперсии-ковариации членов ошибки также изменена, теперь с независимыми членами ошибки.

Теперь просто вычислите решение с помощью новых матриц дизайна.

AJKOER
источник