问题描述
我有一个包含数值和分类变量的数据集,我想将其包含在广义混合模型中。当我这样做时,条件模型的输出总是“忘记”一个类别。
例如,在这个模型中,我将每个视频检测到的总时间的警惕比例作为响应变量,并作为解释变量:尿液强度(数字)、治疗(0 表示无尿液,1 表示尿液)、 diel_period(黎明,黄昏,夜晚,白天),性别(男性,女性,未定义),高度(树木,数字)。而我的 50 个相机作为随机分组效果(1 到 50)。
bBI_mod8 <- glmmTMB(cbind(vigilance,total_time_behavIoUr - vigilance) ~
urine_intensity_heatmap + treatment + diel_period + sex + height + (1|camera),ziformula = ~1,data = df_behavIoUr,family = "betabinomial")
警惕比例遵循零膨胀的 beta 二项式回归。
summary(bBI_mod8)
Family: betabinomial ( logit )
Formula: cbind(vigilance,total_time_behavIoUr - vigilance) ~ urine_intensity_heatmap +
treatment + diel_period + sex + height + (1 | camera)
Zero inflation: ~1
Data: df_behavIoUr
AIC BIC logLik deviance df.resid
2973.8 3037.1 -1474.9 2949.8 1439
Random effects:
Conditional model:
Groups Name Variance Std.Dev.
camera (Intercept) 0.1583 0.3979
Number of obs: 1451,groups: camera,50
Overdispersion parameter for betabinomial family (): 1.85
Conditional model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.907429 0.471376 -1.925 0.054222 .
urine_intensity_heatmap -0.009844 0.004721 -2.085 0.037034 *
treatment1 -0.219403 0.154396 -1.421 0.155304
diel_periodDay -0.337329 0.235033 -1.435 0.151218
diel_periodDusk -0.543771 0.285322 -1.906 0.056675 .
diel_periodNight -0.553826 0.274879 -2.015 0.043925 *
sexMale -0.772731 0.168350 -4.590 4.43e-06 ***
sexUndefined -1.010425 0.271876 -3.716 0.000202 ***
height 0.001713 0.012352 0.139 0.889681
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Zero-inflation model:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.6685 0.4298 -1.556 0.12
我的问题是,如你所见,对于我的分类变量,总是有一个分类被省略:
treatment1
但不是 treatment0
diel_periodDay
、diel_periodDusk
、diel_periodNight
但不是 diel_periodDawn
sexMale
、sexUndefined
但不是 sexFemale
解决方法
在广义线性模型的输出中,显示的估计值是与参考水平比较的效果。除非指定,否则将根据字母顺序自动选择参考水平。
在上面的摘要中,以性别为例,例如您看到的 words = ['mild','other','covid','2019']
website = urllib.request.urlopen('https://en.wikipedia.org/wiki/COVID-19').read()
for word in words:
if word in website:
print(word)
else:
print(word,"not found")
估计值是男性与女性相比的影响。对于 sexMale
,这就是与 treatment
相比的效果。对于 treatment0
,同样的逻辑适用。
您可以通过手动将参考电平设置为您喜欢的值来覆盖它。照原样,您的参考水平是 diel
,完全基于字母顺序。