如何在R包中使用predict()函数" pscl"与分类预测变量

时间:2016-01-06 18:49:49

标签: r regression prediction poisson pscl

我在R中使用零膨胀泊松模型拟合计数数据(每个领土产生的雏鸟数量),虽然模型拟合工作正常,但我在使用预测函数时遇到问题估计一个类别(年份)的多个值平均超过另一个类别(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

所以我有点困惑为什么我上面描述的第一次尝试不起作用。

如果有帮助的话,我可以构建一个可重复的例子,但我有一种预感,我不明白在处理因素时预测函数如何工作的基本内容。如果有人能帮助我理解我需要做些什么才能在一个因素的两个水平上得到估计值,并且平均超过另一个因子的水平,我会非常感激。

0 个答案:

没有答案