我正在使用 R 中的零膨胀泊松模型拟合计数数据(每个领土产生的雏鸟数量),虽然模型拟合工作正常,但我在使用 predict 函数获取一个类别的多个值的估计时遇到了麻烦(年)对另一个类别(StudyArea)的值进行平均。两个变量都是虚拟编码 (0,1) 并设置为因子。发送到预测函数的数据帧如下所示:
Year_d StudyArea_d
1 0 0.5
2 1 0.5
但是,我收到错误消息:
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
相反,如果我使用数据框,例如:
Year_d StudyArea_d
1 0 0
2 0 1
3 1 0
4 1 1
我对每年的新生人数和研究地点组合进行了合理的估计。但是,我对研究地点的影响并不真正感兴趣(影响很小并且不涉及交互),而年份影响实际上是该研究旨在检查的。
我以前使用类似的代码成功地从具有一个分类和一个连续预测变量(在虚拟编码因子的水平上平均)的模型中获得估计计数,使用类似于以下的数据框:
VegHeight StudyArea_d
1 0 0.5
2 0.5 0.5
3 1 0.5
4 1.5 0.5
所以我有点困惑为什么我上面描述的第一次尝试不起作用。
如果有帮助,我可以构建一个可重现的示例,但我有一种预感,我不了解预测函数在处理因子时如何工作的基本知识。如果有人可以帮助我了解我需要做什么才能在一个因素的两个水平上获得估计值,并在另一个因素的水平上进行平均,我将非常感激。