Varians pada penjumlahan nilai prediksi dari model efek campuran pada jangka waktu

32

Saya memiliki model efek campuran (sebenarnya model campuran aditif umum) yang memberi saya prediksi untuk jangka waktu. Untuk mengatasi autokorelasi, saya menggunakan model corCAR1, mengingat fakta saya memiliki data yang hilang. Data seharusnya memberi saya beban total, jadi saya perlu menjumlahkan seluruh interval prediksi. Tapi saya juga harus mendapatkan estimasi kesalahan standar pada beban total itu.

Jika semua prediksi akan independen, ini dapat dengan mudah diselesaikan dengan:

VSebuahr(saya=1nE[Xsaya])=saya=1nVSebuahr(E[Xsaya]) denganVSebuahr(E[Xsaya])=SE(E[Xsaya])2

Masalahnya adalah, nilai yang diprediksi berasal dari suatu model, dan data asli memiliki autokorelasi. Seluruh masalah mengarah ke pertanyaan berikut:

  1. Apakah saya benar dalam mengasumsikan bahwa SE pada prediksi yang dihitung dapat diartikan sebagai akar dari varians pada nilai yang diharapkan dari prediksi itu? Saya cenderung menafsirkan prediksi sebagai "prediksi rata-rata", dan karenanya menjumlahkan seluruh rangkaian cara.
  2. Bagaimana cara saya menggabungkan autokorelasi dalam masalah ini, atau bisakah saya berasumsi bahwa itu tidak akan terlalu mempengaruhi hasil?

Ini adalah contoh dalam R. Kumpulan data asli saya memiliki sekitar 34.000 pengukuran, sehingga skalabilitas merupakan masalah. Itulah alasan mengapa saya memodelkan autokorelasi dalam setiap bulan, jika tidak perhitungan tidak mungkin lagi. Ini bukan solusi yang paling benar, tetapi yang paling benar tidak layak.

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)

Edit:

Pelajaran yang dipelajari: pertama-tama telusuri semua sampel di semua file bantuan sebelum panik. Di file bantuan predict.gam, saya dapat menemukan:

#########################################################
## 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)

Yang sepertinya dekat dengan apa yang ingin saya lakukan. Ini masih tidak memberi tahu saya bagaimana tepatnya hal itu dilakukan. Saya bisa mendapatkan sejauh fakta bahwa itu didasarkan pada matriks prediktor linier. Wawasan apa pun masih diterima.

Joris Meys
sumber
6
vSebuahr(sayaE[Xsaya])=SebuahTvSebuahr(E[X])Sebuah
SebuahvSebuahr(E[X])E[X]=(E[X1],...,E[Xn])T
@probabilityislogic Pada dasarnya itulah yang dilakukan oleh program r. Terima kasih untuk matematika
Joris Meys
2
@probabilityislogic Jika Anda bisa memasukkannya ke dalam jawaban, Anda dapat mengambil hadiah +50 saya. ;)
e-sushi
E(Xi)=μii=1nVar(E[Xi])=0
@ user52220 Di situlah Anda salah. E (Xi) adalah nilai yang diharapkan dan karenanya merupakan variabel acak, sedangkan mu_i adalah rata-rata populasi dan karenanya merupakan angka tetap. Var (mu) = 0, tetapi hal yang sama tidak benar untuk E (Xi).
Joris Meys

Jawaban:

1

Dalam notasi matriks, model campuran dapat direpresentasikan sebagai

y = X * beta + Z * u + epsilon

di mana X dan Z dikenal matriks desain yang berkaitan dengan efek tetap dan pengamatan efek acak, masing-masing.

Saya akan menerapkan transformasi sederhana dan memadai (tetapi bukan yang terbaik) untuk mengoreksi korelasi otomatis yang melibatkan hilangnya pengamatan pertama, dan mengganti vektor kolom [y1, y2, ... yn] dengan yang lebih kecil satu per satu vektor kolom observasi, yaitu: [y2 - rho * y1, y3 - rho * y2, ..., yn - rho * y (n-1)], di mana rho adalah nilai estimasi Anda untuk korelasi otomatis serial.

Ini dapat dilakukan dengan mengalikannya dengan matriks T, membentuk T * y, di mana baris pertama dari T disusun sebagai berikut: [-rho, 1, 0, 0, ....], baris ke-2: [0, -rho, 1, 0, 0, ...], dll. Demikian pula, matriks desain lainnya diubah menjadi T * X dan T * Z. Juga, matriks varians-kovarians dari istilah kesalahan diubah juga, sekarang dengan istilah kesalahan independen.

Sekarang, hitung saja solusinya dengan matriks desain baru.

AJKOER
sumber