我已经从我的数据中生成了一系列线性混合模型,并希望使用emmeans包生成一些估计均值。我的主数据集包含夜间和白天的数据,我已经成功地获得了夜间数据来输出我想要的。然后,我使用相同的结构(稍微修改以考虑不同的因子名称等)来生成日时间数据的线性混合模型。然而,当我尝试使用单个因子生成估计均值时(在本例中,时间是3个水平因子),我得到3个水平中的1个水平的估计均值,而其他2个水平的估计均值为nonEST,我不知道为什么会发生这种情况。
我不确定如何最好地提供信息,因为用于生成线性混合模型的数据集对于dput()来说有点太大了,但我所做的基本工作如下。
我的型号:
countsleepdataon25WAKEANGLMM2<-lmer(unlist(propnssANGon)~as.factor(intonidhrtime)+Daysincedisturb/Stressor+as.factor(intonidhrtime)*Daysincedisturb/Stressor+(1|Batch)+(1|Batch_Bird_ID)+(1|fdfsrtoff)+(1|fdfsrtoff_intonidhrtimertoff),data=countsleepdataon25WAKE)
我的代码:
emmeans(countsleepdataon25WAKEANGLMM2,specs='intonidhrtime')
输出:
> emmeans(countsleepdataon25WAKEANGLMM2,specs='intonidhrtime')
NOTE: A nesting structure was detected in the fitted model:
Stressor %in% Daysincedisturb
NOTE: Results may be misleading due to involvement in interactions
intonidhrtime emmean SE df lower.CL upper.CL
12-15.5 nonEst NA NA NA NA
15.5-19 nonEst NA NA NA NA
5-8.5 65.4 2.01 8.11 60.8 70
Results are averaged over the levels of: Stressor, Daysincedisturb
Degrees-of-freedom method: kenward-roger
Results are given on the unlist (not the response) scale.
Confidence level used: 0.95
为了进行比较,以下是使用相同模型参数/代码但针对夜间数据集的输出:
> emmeans(countsleepdataoff25WAKEANGLMM2,specs='intoffidhrtime')
NOTE: A nesting structure was detected in the fitted model:
Stressor %in% Daysincedisturb
NOTE: Results may be misleading due to involvement in interactions
intoffidhrtime emmean SE df lower.CL upper.CL
1-3 27.8 2.72 7.51 21.5 34.2
19-21 30.7 2.89 9.35 24.2 37.2
21-23 25.4 2.71 7.37 19.1 31.8
23-1 29.5 2.72 7.52 23.1 35.8
3-5 38.7 2.72 7.48 32.4 45.1
Results are averaged over the levels of: Stressor, Daysincedisturb
Degrees-of-freedom method: kenward-roger
Results are given on the unlist (not the response) scale.
Confidence level used: 0.95
我不明白为什么当白天时间数据在3个时间水平中的每一个都至少有50个值时,没有生成估计的平均值,我假设这足以在这里生成某种值。
1条答案
按热度按时间kqlmhetl1#
问题是因子水平和时间间隔之间的相互作用。实际上,使用所有3个“自打扰日”水平计算5-8.5时间间隔估计平均值,但由于12-15.5和15.5-19时间间隔缺失1/3“自打扰日”水平(基于实验设计),因此不可能生成这2个时间间隔的估计平均值。将“Daysincedisturb”降低到2级因子允许生成所有必要的估计平均值。