0

I'm running beta regressions using the betareg and glmmTMB packages in R. Coefficient values and AIC come out the same but the p values are different. Why is this the case?

Betareg: beta1 <-betareg(eagtrans ~ Interspace + cover + elevation + Basal, 
           data = rall)
    > summary(beta1)

Call:
betareg(formula = eagtrans ~ Interspace + cover + elevation + 
Basal, data = rall)

Standardized weighted residuals 2:
Min      1Q  Median      3Q     Max 
-2.8165 -0.8454  0.2053  0.5900  3.9175 

Coefficients (mean model with logit link):
              Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -2.418009   0.341760  -7.075 1.49e-12 ***
Interspace        0.012614   0.004326   2.916  0.00354 ** 
cover             0.039379   0.012271   3.209  0.00133 ** 
elevation        -0.433384   0.174386  -2.485  0.01295 *  
Basal            -0.033827   0.018478  -1.831  0.06715 .  

Phi coefficients (precision model with identity link):
  Estimate Std. Error z value Pr(>|z|)    
(phi)   5.9271     0.8248   7.186 6.65e-13 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

Type of estimator: ML (maximum likelihood)
Log-likelihood: 87.12 on 6 Df
Pseudo R-squared: 0.1687
Number of iterations: 12 (BFGS) + 2 (Fisher scoring)

glmmTMB: beta2 <-glmmTMB(eagtrans ~ Interspace + cover + elevation + Basal, 
           data = rall, family=list(family="beta",link="logit"))
> summary(beta2)
Family: beta  ( logit )
 Formula:          eagtrans ~ Interspace + cover + elevation +  
Basal
Data: rall

     AIC      BIC   logLik deviance df.resid 
  -162.2   -146.3     87.1   -174.2      100 


Overdispersion parameter for beta family (): 5.93 

Conditional model:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)      -2.41801    0.34402  -7.029 2.08e-12 ***
Interspace        0.01261    0.00444   2.841  0.00450 ** 
cover             0.03938    0.01222   3.224  0.00127 ** 
elevation        -0.43338    0.19421  -2.232  0.02565 *  
Basal            -0.03383    0.01944  -1.740  0.08178 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Do these packages calculate the p value in different ways?

  • The source of the difference in p-values is the difference in standard errors. I'm not sure though where exactly this comes from. Might be a mix of algorithm for numerically approximating the Hessian, degrees of freedom adjustment, observed vs. expected Hessians etc. – Achim Zeileis Jan 20 at 11:28

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.