У мене є змішана модель ефекту (насправді узагальнена добавна змішана модель), яка дає мені прогнози на час. Для протидії автокореляції я використовую модель corCAR1, враховуючи той факт, що у мене відсутні дані. Дані, як передбачається, дають мені загальне навантаження, тому мені потрібно підсумовувати весь інтервал прогнозування. Але я також повинен отримати оцінку стандартної помилки для цього загального навантаження.
Якщо всі прогнози будуть незалежними, це можна легко вирішити:
із
Проблема полягає в тому, що передбачувані значення надходять із моделі, а вихідні дані мають автокореляцію. Вся проблема призводить до наступних питань:
- Чи правильно я припускаю, що SE для обчислених прогнозів можна інтерпретувати як корінь дисперсії від очікуваного значення цього прогнозу? Я схильний тлумачити прогнози як "середні прогнози", а значить, підсумовую цілий набір засобів.
- Як я включаю автокореляцію в цю проблему чи можу з впевненістю припустити, що це не вплине на результати занадто сильно?
Це приклад у Р. Мій реальний набір даних нараховує близько 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)
Яка, здається, близька до того, що я хочу зробити. Це все ще не каже мені точно, як це робиться. Я міг би дійти до того факту, що він заснований на лінійній матриці предиктора. Будь-які уявлення все ще вітаються.