GLMM在R中的边际效应

时间:2017-05-31 02:10:30

标签: r marginal-effects

我正在尝试计算使用包lme4中的“glmer”估计的协变量的边际效应。我正在使用http://researchrepository.ucd.ie/bitstream/handle/10197/3404/WP11_22.pdf?sequence=1中提供的代码。代码不会为特定变量提供标准错误。可能是什么原因以及如何解决它。这是使用的代码;

glm3 <-glmer(Distance~Weather+Gender+Time+`(1|Population),data = pr,family = binomial('logit'),control = glmerControl(optimizer = "bobyqa"),nAGQ = 1)`
glmermfx<-function(x,nsims = 1000){
set.seed(70)
pdf<-mean(dlogis(-log((1-fitted(x))/fitted(x))))
pdfsd<-sd(dlogis(-log((1-fitted(x))/fitted(x))))
marginal.effects<-pdf*fixef(x)
  sim<-matrix(rep(NA,nsims*length(fixef(x))),nrow=nsims)
  for(i in 1:length(fixef(x))){
    sim[,i]<-rnorm(nsims,fixef(x)[i],diag(vcov(x)^0.5)[i])
  }
  pdfsim<-rnorm(nsims,pdf,pdfsd)
  sim.se<-pdfsim*sim
  res<-cbind(marginal.effects,sd(sim.se))
  colnames(res)[2]<-"standard.error"
  ifelse(names(fixef(x))[1]=="(Intercept)",
         return(res[2:nrow(res),]),return(res))
}

glmermfx(glm3)

输出看起来像这样

    marginal.effects standard.error
Weather                 0.03913997      0.1085925
Gender                  0.05745454      0.1085925
Time                   -0.05135142      0.1085925

0 个答案:

没有答案