I am evaluating which treatment promotes greater root length in a root growth analysis. I have five different treatments, each with four samples, evaluated over nine days across three independent experiments (N = 540). My data follows a gamma distribution; however, there are some root lengths equal to zero. Therefore, I considered a zero-inflation model using the zigamma family. Below is the glmmTMB function that I applied:
model_zi <- glmmTMB(root_length ~ treatment + (1|exp/day),
family = ziGamma(link = "log"),
ziformula = ~treatment,
data = data_roots)
The results:
Family: Gamma ( log )
Formula: root_length ~ treatment + (1 | exp/day)
Zero inflation: ~treatment
Data: data_roots
AIC BIC logLik deviance df.resid
1953.5 2009.3 -963.7 1927.5 527
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
day:exp (Intercept) 7.641e-01 0.8741496
exp (Intercept) 1.749e-07 0.0004182
Number of obs: 540, groups: day:exp, 27; exp, 3
Dispersion estimate for Gamma family (sigma^2): 0.326
Conditional model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.18322 0.17816 1.028 0.30377
treatmenttreat2 0.42944 0.08579 5.006 5.57e-07 ***
treatmenttreat3 0.26535 0.08375 3.168 0.00153 **
treatmenttreat4 0.83239 0.08415 9.892 < 2e-16 ***
treatmenttreat5 1.03670 0.08146 12.726 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Zero-inflation model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.0794 0.3062 -6.791 1.11e-11 ***
treatmenttreat2 0.7723 0.3860 2.001 0.0454 *
treatmenttreat3 0.2549 0.4137 0.616 0.5378
treatmenttreat4 0.3302 0.4088 0.808 0.4192
treatmenttreat5 -1.8909 0.7766 -2.435 0.0149 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
My issue is that one treatment (treatment 5) has only two root length equals to 0, resulting in a very broad confidence interval for this treatment (I applied plot_model from sjPlot
for this analysis) Do you have any suggestions on how to address this issue? I am particularly interested in the probability of a treatment resulting in a root length of zero, which is why I opted for a zero-inflation model for each treatment. The number of zeros in the other treatments are:
treat1 - 12;
treat2 - 22;
treat3 - 15;
treat4 - 16;
treat5 - 2.
(I also don’t understand why the intercept is so close to the coefficient for treatment 5 but far from that of treatment 3, considering the number of zeros.)
I also conducted a residual analysis using the simulateResiduals function from the DHARMa package and had problem with the K-S test.
I also attempted to rewrite the model as follows:
model_zi <- glmmTMB(root_length ~ treatment + (1|exp/day),
family = ziGamma(link = "log"),
ziformula = ~.,
data = data_roots)
However, the residuals were worse in this case.