Как получить коэффициенты с R при оценке модели нулевой инфляции - PullRequest
2 голосов
/ 19 мая 2011

Наверное, довольно просто, но я хочу знать, как получить коэффициенты при использовании команды zeroinfl?

treatment <- factor(rep(c(1, 2), c(43, 41)), 
    levels = c(1, 2),labels = c("placebo", "treated"))
improved <- factor(rep(c(1, 2, 3, 1, 2, 3), c(29, 7, 7, 13, 7, 21)),
    levels = c(1, 2, 3),labels = c("none", "some", "marked"))

numberofdrugs <- rpois(84, 2)
healthvalue <- rpois(84,0.5)
y <- data.frame(healthvalue,numberofdrugs, treatment, improved)

require(pscl)
ZIP<-zeroinfl(healthvalue~numberofdrugs+treatment+improved, y)

summary(ZIP)

Я обычно использую ZIP$coef[1], чтобы получить коэффициент, но, к сожалению, здесь вы получаете целоегроздь.Так как же я могу получить один коэффициент из модели ZIP?

Ответы [ 2 ]

5 голосов
/ 19 мая 2011

Используйте функцию извлечения coef, чтобы перечислить все коэффициенты в одном длинном векторе, а затем вы можете использовать единую индексную нотацию, чтобы выбрать их:

coef(ZIP)[1]

count_(Intercept) 
        0.1128742 

В качестве альтернативы, вам нужно выбрать модель, из которой вы хотите получить коэффициенты сначала:

ZIP$coef$count[1]

(Intercept) 
  0.1128742

ZIP$coef[[1]][1]

(Intercept) 
  0.1128742 
1 голос
/ 19 мая 2011

Если вы хотите получить фантазию, вы можете разделить коэффициенты в список:

clist <- function(m) {
  cc <- coef(m)
  ptype <- gsub("_.+$","",names(cc))
  ss <- split(cc,ptype)
  lapply(ss, function(x) names(x) <- gsub("^.*_","",names(x)))
}
> clist(ZIP)
$count
     (Intercept)    numberofdrugs treatmenttreated     improvedsome 
     -1.16112045       0.16126724      -0.07200549      -0.34807344 
  improvedmarked 
      0.23593220 

$zero
     (Intercept)    numberofdrugs treatmenttreated     improvedsome 
        7.509235       -14.449669       -58.644743        -8.060501 
  improvedmarked 
       58.034805 


c1 <- clist(ZIP)
c1$count["numberofdrugs"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...