让我们首先让您的示例可重现:
library(glmmTMB)
data <- structure(list(
plot_number = 1:12,
treatment = c(-60L, -20L, 0L, -100L, 50L, -80L,
-40L, 0L, -20L, -60L, -100L, -40L),
beetle_count = c(4L, 13L, 23L, 2L, 10L, 3L, 5L, 14L,
9L, 7L, 1L, 2L)),
class = "data.frame", row.names = c(NA, -12L))
您使用提供的数据描述的模型如下所示:
model <- glmmTMB(beetle_count ~ treatment + (1|plot_number),
family = poisson(link = log),
data = data)
summary(model)
#> Family: poisson ( log )
#> Formula: beetle_count ~ treatment + (1 | plot_number)
#> Data: data
#>
#> AIC BIC logLik deviance df.resid
#> 68.4 69.8 -31.2 62.4 9
#>
#> Random effects:
#>
#> Conditional model:
#> Groups Name Variance Std.Dev.
#> plot_number (Intercept) 0.1703 0.4127
#> Number of obs: 12, groups: plot_number, 12
#>
#> Conditional model:
#> Estimate Std. Error z value Pr(>|z|)
#> (Intercept) 2.366465 0.201081 11.769 < 2e-16 ***
#> treatment 0.015117 0.004148 3.645 0.000268 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
这意味着如果我们希望估计beetle_count
给定值的treatment
,我们需要计算exp(2.366465 + 0.015117 * treatment)
。请注意,当处理为 0 时,这将简化为exp(2.366465)
10.65964。对于 -60 的处理值,该值为exp(2.366465 + 0.015117 * -60)
4.30357。
所以预期计数从 10.65964 下降到 4.30357,这意味着下降百分比是
100 * ((10.65964 - 4.30357) / 10.65964)
#> [1] 59.62744
这几乎是 60%
如果您想探索治疗水平之间的百分比差异(我们称它们为treatment_A
和treatment_B
),公式简化为
100 * (1 - exp(0.015117)^(treatment_A - treatment_B))