[R-sig-ME] reporting model estimates values

Juan Pablo Edwards Molina edwardsmolina at gmail.com
Tue Oct 24 21:17:56 CEST 2017


Thanks for your help prof. Bolker.
Best wishes,
Juan Edwards
Juan


On Tue, Oct 24, 2017 at 4:51 PM, Ben Bolker <bbolker at gmail.com> wrote:
>
>
>  (please keep r-sig-mixed-models in cc:)
>
>   Without investigating too closely I'm not sure what drives the
> difference.  effects could be using CIs based on t rather than Normal,
> but with 641 residual df (df.residual(m1)) that wouldn't make that big a
> difference.
>
>   Ben Bolker
>
>
> On 17-10-24 02:26 PM, Juan Pablo Edwards Molina wrote:
>> Thanks for your quick reply prof. Bolker and sorry for the misunderstanding.
>>
>>  Yes, I meant the predicted values with standard errors for each factor level.
>>
>> I tried both methods: predicted values and SE they present slight
>> differences in the CI values. I suppose it´s not a big deal...
>>
>> # Extended method
>>> pred
>>        [,1]
>> 1 2.1363277
>> 2 0.2219451
>>
>>> pse
>> [1] 0.2233638 0.1701403
>>
>>> exp(qnorm(c(0.025,0.975), mean=pred0[1],sd=pse[1]))
>> [1] 1.378924 3.309752
>>
>>> exp(qnorm(c(0.025,0.975), mean=pred0[2],sd=pse[2]))
>> [1] 0.1590091 0.3097914
>>
>> # Experimental version of effect package:
>>
>>> as.data.frame(allEffects(m1)[[1]])
>>     mined       fit             se     lower     upper
>> 1   yes 0.2219451 0.2230325 0.1433508 0.3436301
>> 2    no 2.1363277 0.1705744 1.5292366 2.9844276
>>
>> Thanks!
>>
>> Juan
>>
>>
>> On Tue, Oct 24, 2017 at 1:12 PM, Ben Bolker <bbolker at gmail.com> wrote:
>>>
>>>
>>>  Depends what you mean by estimated coefficient values.  You already
>>> have the summaries; I assume you mean you want predicted values with
>>> standard errors for each factor level?
>>>
>>>   You could do it like this: (this brute-force method will work for any
>>> model where you can extract the formula, fixed-effect parameters,
>>> variance-covariance matrix of fixed-effect parameters)
>>>
>>> ## set up prediction frame
>>> pframe <- with(Salamanders,
>>>                data.frame(mined=levels(mined)))
>>> ## get formula and keep only fixed effects
>>> fform <- lme4::nobars(formula(m1))
>>> ## drop LHS from formula
>>> fform_noresp <- fform[-2]
>>> ## model matrix for new predictions
>>> X <- model.matrix(fform_noresp,data=pframe)
>>> ## fixed-effect parameters
>>> beta <- fixef(m1)[["cond"]]
>>> ## predictions (linear predictor scale)
>>> pred0 <- X %*% beta
>>> ## predictions (back-transformed)
>>> pred <- exp(pred0)
>>> ## standard errors of predictions (log scale)
>>> pse <- sqrt(diag(X %*% crossprod(X,vcov(m1)[["cond"]])))
>>> ## back-transformed confidence intervals
>>> exp(qnorm(c(0.025,0.975),mean=pred0[1],sd=pse[1]))
>>> exp(qnorm(c(0.025,0.975),mean=pred0[2],sd=pse[2]))
>>>
>>> Alternatively, you can use an experimental version that has the glue
>>> needed for the effects package.
>>>
>>> devtools::install_github("glmmTMB/glmmTMB/glmmTMB",ref="effects")
>>> library(glmmTMB)
>>> source(system.file("other_methods","effectsglmmTMB.R",package="glmmTMB"))
>>> allEffects(m1)
>>>
>>>
>>>   Caveats:
>>>
>>>    - this will only work at present for families known to base-R
>>> (poisson, gaussian, binomial, Gamma, etc.) - not for nbinom2 etc.
>>>    - it makes lots of assumptions. In particular, for zero-inflated
>>> models it ignores the zero-inflation part completely and gives
>>> predictions etc etc only for the conditional model
>>>
>>>
>>>
>>>
>>> On 17-10-24 09:16 AM, Juan Pablo Edwards Molina wrote:
>>>> Dear glmmTMB authors & list members ,
>>>>
>>>> For glmer models I use "lsmeans" or "effects" package to report the
>>>> coefficient estimated values, but any of them works with glmmTMB
>>>> objetcs:
>>>>
>>>> lsmeans::lsmeans(mod, ~ factor, type = "response"); or
>>>>
>>>> effects::allEffects(mod)
>>>>
>>>> How would you suggest me to do that with an glmmTMB model?
>>>>
>>>> Here is a short example (with only two factor levels):
>>>>
>>>> library(glmmTMB)
>>>> m1 <- glmmTMB(count~ mined + (1|site),
>>>>                zi=~0,
>>>>                family=poisson, data=Salamanders)
>>>> summary(m1)
>>>>
>>>> m2 <- glmer(count ~ mined + (1|site), family=poisson, data=Salamanders)
>>>> summary(m2)
>>>>
>>>> library(lsmeans)
>>>> lsmeans(m2, ~ mined, type = "response")
>>>>
>>>> library(effects)
>>>> eff.m2 <- allEffects(m2); as.data.frame(eff.m2[[1]])
>>>>
>>>> lsmeans(m1, ~ mined, type = "response")
>>>> eff.m2 <- allEffects(m1); as.data.frame(eff.m1[[1]])
>>>>
>>>> Thanks in advance,
>>>>
>>>> Juan Edwards
>>>>
>>>>       [[alternative HTML version deleted]]
>>>>
>>>> _______________________________________________
>>>> R-sig-mixed-models at r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
>>>>
>>>
>>> _______________________________________________
>>> R-sig-mixed-models at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models



More information about the R-sig-mixed-models mailing list