Як отримати стандартні помилки від регресії даних з нульовим рівнем R? [зачинено]


9

Наступний код

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

створює 3-стовпець data.frame--PredictNew, встановлені значення, стандартні помилки та залишковий масштабний термін.

Ідеально ... Однак, використовуючи модель, оснащену zeroinfl {pscl}:

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

або

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

створюють один векторний стовпець лише за встановленими значеннями. Однак я б дуже хотів мати стандартні помилки. Все, що я прочитав, говорить про те, що їх слід виробляти ..

(Код дещо спрощено. Насправді у мене є чотири змінні та зсув - жодних зчитувачів із predict.glmта se.fit = TRUEвиробляють SE.)


5
Подивіться на цю тему на R-Help: stat.ethz.ch/pipermail/r-help/2008-December/thread.html#182806 (зокрема, повідомлення від Ахіма Цейле, який надає код, щоб робити те, що я думаю, що ви намагаються зробити). Наразі не схожі на те, що стандартні помилки були введені в цю predict()функцію zeroinfl()на даний момент.
smillig

Дякую, цей код, здавалося, дав досить розумні результати. Інші повинні відзначити, що параметр predict () у новій функції zeroinfl.predict для se.fit = TRUE змінено на se = TRUE, щоб витягнути передбачувані інтервали та se
KalahariKev

Відповіді:


4

Наскільки мені відомо, predictметод отримання результатів zeroinflне включає стандартних помилок. Якщо вашою метою є побудова довірчих інтервалів, однією з привабливих альтернатив є використання завантажувальної програми. Я вважаю привабливим, тому що завантажувальний процес може бути більш надійним (при втраті ефективності, якщо всі допущення щодо ПТ виконані).

Ось приблизний код, щоб робити те, що ви хочете. Не вийде точно, але сподіваємось, ви зможете внести необхідні виправлення.

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

Я намалював цей код з двох написаних сторінок, один параметр завантаження з нульової завищеної регресії пуассона з zeroinfl нульовим завищеним пуассоном і одна, що демонструє, як отримати завантажені довірчі інтервали для прогнозованих значень з нульової усіченої негативної біноміальної моделі Нульовий усічений негативний двочлен . Комбінований, сподіваємось, що дає вам достатньо прикладів, щоб він працював із передбачуваними значеннями з нуля завищеного пуасу. Ви також можете отримати кілька графічних ідей :)


Я спробував адаптувати ваш код для нульової усіченої негативної біноміальної моделі в пакеті VGAM, але отримав помилку. Чи повинен я створити нове запитання тут на CV та посилання тут? Я дуже вдячний за вашу допомогу в цьому. В Зокрема, це помилка , я отримую: Error in X.vlm.save %*% coefstart : non-conformable arguments.
Рафаель К
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.