R sıfır şişirilmiş sayım veri regresyonundan standart hatalar nasıl alınır? [kapalı]


9

Aşağıdaki kod

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

3 sütunu üretir - data.frameTahminYeni, takılan değerler, standart hatalar ve artık ölçek terimi.

Mükemmel ... Ancak aşağıdakilerle donatılmış bir model kullanarak zeroinfl {pscl}:

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

veya

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

yalnızca takılı değerlerin tek bir sütun vektörünü üretir. Bununla birlikte, standart hatalara çok meraklı olurum. Okuduğum her şey onların üretilmesi gerektiğini söylüyor ..

(Kod biraz basitleştirildi, aslında dört değişkenim ve bir ofsetim var - predict.glmve se.fit = TRUESE üreten probs yok .)


5
R-Yardım'da bu konuya bir göz atın: stat.ethz.ch/pipermail/r-help/2008-December/thread.html#182806 (özellikle düşündüğünüzü yapmak için kod sağlayan Achim Zeileis'ten mesaj yapmaya çalışmak). Şu anda predict()işlevde standart hatalar uygulanmış gibi görünmüyor zeroinfl().
Haziran'da smillig

Teşekkürler, bu kod oldukça makul sonuçlar üretiyor gibiydi. Diğerleri, öngörülen aralıkları ve se
KalahariKev

Yanıtlar:


4

Bildiğim kadarıyla, predictsonuçların yöntemi zeroinflstandart hatalar içermiyor. Hedefiniz güven aralıkları oluşturmaksa, cazip bir alternatif önyükleme kullanmaktır. Çekici diyorum çünkü önyükleme daha güçlü olma potansiyeline sahip (SE'ler için tüm varsayımlar karşılanırsa verimlilik kaybında).

İşte istediğini yapmak için bazı kaba kod. Tam olarak çalışmaz, ancak umarım gerekli düzeltmeleri yapabilirsiniz.

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

Bu kodu yazdığım iki sayfadan çizdim, sıfır şişirilmiş poisson ile zeroinfl sıfır şişirilmiş bir poisson regresyonundan bir önyükleme parametresi ve bir sıfır kesilmiş negatif binom modeli Sıfır kesik negatif binomdan tahmin edilen değerler için önyükleme güven aralıklarının nasıl alınacağını gösteren . Birleştirilmiş, umarım bu sıfır şişirilmiş bir poisson tahmini değerleri ile çalışmak için yeterli örnekler sağlar. Bazı grafik fikirleri de alabilirsiniz :)


Kodunuzu VGAM paketinde sıfır kesik negatif binom modeli için uyarlamayı denedim, ancak bir hata aldım. CV ile ilgili yeni bir soru oluşturmalı ve buraya bağlantı oluşturmalı mıyım? Bu konudaki yardımınızı gerçekten takdir ediyorum. Özellikle, bu alıyorum hatadır: Error in X.vlm.save %*% coefstart : non-conformable arguments.
Raphael K
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.