Làm thế nào để có được các lỗi tiêu chuẩn từ hồi quy dữ liệu đếm không phồng R? [đóng cửa]


9

Đoạn mã sau

PredictNew <- predict (glm.fit, newdata = Predict, X1 =X1, Y1= Y1, 
                       type = "response", se.fit = TRUE)

tạo ra một cột 3 data.frame--PredictNew, các giá trị được trang bị, các lỗi tiêu chuẩn và một thuật ngữ tỷ lệ còn lại.

Hoàn hảo ... Tuy nhiên, bằng cách sử dụng một mô hình được trang bị zeroinfl {pscl}:

PredictNew <- predict (zeroinfl.fit, newdata = Predict, X1 =X1, Y1= Y1, 
                       type = "response", se.fit = TRUE)

hoặc là

PredictNew <- predict (zeroinfl.fit, newdata = Predict, X1 =X1, Y1= Y1, 
                       type = "response", se.fit = TRUE, MC = 2500, conf = .95))

chỉ tạo ra một vectơ cột duy nhất của các giá trị được trang bị. Tôi sẽ, tuy nhiên, rất muốn có lỗi tiêu chuẩn. Tất cả mọi thứ tôi đã đọc nói rằng chúng nên được sản xuất ..

(Mã đã được đơn giản hóa phần nào, tôi thực sự có bốn biến và bù - không có probs với predict.glmse.fit = TRUEtạo SE.)


5
Hãy xem chủ đề này trên R-Help: stat.ethz.ch/pipermail/r-help/2008-December/thread.html#182806 (đặc biệt là tin nhắn từ Achim Zeileis, người cung cấp mã để làm những gì tôi nghĩ là bạn cố gắng làm). Có vẻ như các lỗi tiêu chuẩn đã được triển khai trong predict()chức năng zeroinfl()tại thời điểm này.
smillig

Cảm ơn, mã đó dường như tạo ra kết quả khá hợp lý. Những người khác cần lưu ý rằng tham số dự đoán () trong hàm zeroinfl.predict mới cho se.fit = TRUE đã được đổi thành se = TRUE, để trích xuất các khoảng dự đoán và se
KalahariKev

Câu trả lời:


4

Theo hiểu biết của tôi, predictphương pháp cho kết quả từ zeroinflkhông bao gồm các lỗi tiêu chuẩn. Nếu mục tiêu của bạn là xây dựng các khoảng tin cậy, một lựa chọn hấp dẫn là sử dụng bootstrapping. Tôi nói hấp dẫn bởi vì bootstrapping có tiềm năng mạnh mẽ hơn (mất hiệu quả nếu tất cả các giả định cho các SE được đáp ứng).

Đây là một số mã thô để làm những gì bạn muốn. Nó sẽ không hoạt động chính xác, nhưng hy vọng bạn có thể thực hiện các chỉnh sửa cần thiết.

## load boot package
require(boot)
## output coefficients from your original model
## these can be used as starting values for your bootstrap model
## to help speed up convergence and the bootstrap
dput(round(coef(zeroinfl.fit, "count"), 3))
dput(round(coef(zeroinfl.fit, "zero"), 3))

## function to pass to the boot function to fit your model
## needs to take data, an index (as the second argument!) and your new data
f <- function(data, i, newdata) {
  require(pscl)
  m <- zeroinfl(count ~ child + camper | persons, data = data[i, ], start = list(count = c(1.598, -1.0428, 0.834), zero = c(1.297, -0.564)))
  mparams <- as.vector(t(do.call(rbind, coef(summary(m)))[, 1:2]))
  yhat <- predict(m, newdata, type = "response")
  return(c(mparams, yhat))    
}

## set the seed and do the bootstrap, make sure to set your number of cpus
## note this requires a fairly recent version of R
set.seed(10)
res <- boot(dat, f, R = 1200, newdata = Predict, parallel = "snow", ncpus = 4)

## get the bootstrapped percentile CIs
## the 10 here is because in my initial example, there were 10 parameters before predicted values
yhat <- t(sapply(10 + (1:nrow(Predict)), function(i) {
  out <- boot.ci(res, index = i, type = c("perc"))
  with(out, c(Est = t0, pLL = percent[4], pUL = percent[5]))
}))

## merge CIs with predicted values
Predict<- cbind(Predict, yhat)

Tôi đã thu hút mã này từ hai trang tôi đã viết, một thông số bootstrapping từ hồi quy Poisson zero-thổi phồng với zeroinfl Poisson Zero-thổi phồng và một chứng minh rằng để có được bootstrapped khoảng tin cậy cho các giá trị dự đoán từ một mô hình nhị phân âm zero-cắt ngắn Zero-cắt ngắn nhị thức tiêu cực . Kết hợp lại, hy vọng rằng nó cung cấp cho bạn các ví dụ đầy đủ để làm cho nó hoạt động với các giá trị dự đoán từ một poisson không bị thổi phồng. Bạn cũng có thể nhận được một số ý tưởng đồ thị :)


Tôi đã thử điều chỉnh mã của bạn cho mô hình nhị thức âm bị cắt ngắn trong gói VGAM, nhưng đã nhận được lỗi. Tôi có nên tạo một câu hỏi mới ở đây trên CV và liên kết ở đây? Tôi thực sự sẽ đánh giá cao sự giúp đỡ của bạn với điều này. Cụ thể, đây là lỗi tôi nhận được : Error in X.vlm.save %*% coefstart : non-conformable arguments.
Raphael K
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.