Ich habe ein gemischtes Effektmodell (in der Tat ein verallgemeinertes additives gemischtes Modell), das mir Vorhersagen für eine Zeitreihe gibt. Um der Autokorrelation entgegenzuwirken, verwende ich ein corCAR1-Modell, da mir Daten fehlen. Die Daten sollen mir eine Gesamtlast geben, daher muss ich über das gesamte Vorhersageintervall summieren. Aber ich sollte auch eine Schätzung des Standardfehlers für diese Gesamtlast erhalten.
Wenn alle Vorhersagen unabhängig wären, könnte dies leicht gelöst werden durch:
mit
Das Problem ist, dass die vorhergesagten Werte von einem Modell stammen und die ursprünglichen Daten eine Autokorrelation aufweisen. Das ganze Problem führt zu folgenden Fragen:
- Bin ich in der Annahme richtig, dass die SE auf den berechneten Vorhersagen als die Wurzel der Varianz auf dem erwarteten Wert dieser Vorhersage interpretiert werden kann? Ich neige dazu, die Vorhersagen als "mittlere Vorhersagen" zu interpretieren und daher eine ganze Reihe von Mitteln zu summieren.
- Wie beziehe ich die Autokorrelation in dieses Problem ein oder kann ich davon ausgehen, dass sie die Ergebnisse nicht zu sehr beeinflusst?
Dies ist ein Beispiel in R. Mein realer Datensatz hat ungefähr 34.000 Messungen, daher ist die Skalierbarkeit ein Problem. Das ist der Grund, warum ich die Autokorrelation innerhalb eines Monats modelliere, sonst sind die Berechnungen nicht mehr möglich. Es ist nicht die richtigste Lösung, aber die richtigste ist nicht durchführbar.
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)
Bearbeiten:
Zu lernende Lektion: Lesen Sie zunächst alle Beispiele in allen Hilfedateien durch, bevor Sie in Panik geraten. In den Hilfedateien von predict.gam finde ich:
#########################################################
## 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)
Welches scheint in der Nähe zu sein, was ich tun möchte. Das sagt mir immer noch nicht genau, wie es gemacht wird. Ich könnte soweit kommen, dass es auf der linearen Vorhersagematrix basiert. Einsichten sind weiterhin willkommen.