Tôi có một mô hình hiệu ứng hỗn hợp (thực tế là một mô hình hỗn hợp phụ gia tổng quát) mang đến cho tôi những dự đoán cho một khoảng thời gian. Để chống lại sự tự tương quan, tôi sử dụng mô hình corCAR1, với thực tế là tôi đã thiếu dữ liệu. Dữ liệu được cho là cung cấp cho tôi tổng tải, vì vậy tôi cần tính tổng trên toàn bộ khoảng dự đoán. Nhưng tôi cũng sẽ có được ước tính về lỗi tiêu chuẩn trên tổng tải đó.
Nếu tất cả các dự đoán sẽ độc lập, điều này có thể được giải quyết dễ dàng bằng cách:
V a r ( E [ X i ] ) = S E ( E [ X i ] ) 2 với
Vấn đề là, các giá trị dự đoán đang đến từ một mô hình và dữ liệu gốc có tự động tương quan. Toàn bộ vấn đề dẫn đến các câu hỏi sau:
- Tôi có đúng không khi cho rằng SE trên các dự đoán được tính toán có thể được hiểu là gốc của phương sai trên giá trị dự kiến của dự đoán đó? Tôi có xu hướng diễn giải các dự đoán là "dự đoán trung bình", và do đó tổng hợp cả một tập hợp các phương tiện.
- Làm cách nào để kết hợp tự động tương quan trong vấn đề này, hoặc tôi có thể cho rằng nó sẽ ảnh hưởng đến kết quả quá nhiều không?
Đây là một ví dụ trong R. Bộ dữ liệu thực của tôi có khoảng 34.000 phép đo, vì vậy khả năng mở rộng là một vấn đề. Đó là lý do tại sao tôi lập mô hình tự tương quan trong mỗi tháng, nếu không thì các tính toán không thể thực hiện được nữa. Đó không phải là giải pháp đúng nhất, nhưng giải pháp đúng nhất không khả thi.
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)
Chỉnh sửa :
Bài học để tìm hiểu: trước tiên hãy xem qua tất cả các mẫu trong tất cả các tệp trợ giúp trước khi hoảng loạn. Trong các tệp trợ giúp của dự đoán.gam, tôi có thể tìm thấy:
#########################################################
## 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)
Mà dường như là gần với những gì tôi muốn làm. Điều này vẫn không cho tôi biết chính xác nó được thực hiện như thế nào. Tôi có thể hiểu được rằng nó dựa trên ma trận dự đoán tuyến tính. Bất kỳ hiểu biết vẫn được chào đón.