我正在尝试进行有序的logit回归。我正在像这样运行模型(只是一个愚蠢的小模型,它根据收入和人口指标来估算市场中的公司数量)。我的问题是关于预测。
nfirm.opr<-polr(y~pop0+inc0, Hess = TRUE)
pr_out<-predict(nfirm.opr)
当我运行预测(我试图使用它来获取预测的y)时,输出为0、3或27,这决不会反映基于我根据系数的人工预测应该看起来像是预测估计和截距。有谁知道如何为我订购的logit模型获得“准确”的预测?
编辑
为了澄清我的担忧,我的回答数据包含所有级别的观察结果
>head(table(y))
y
0 1 2 3 4 5
29 21 19 27 15 16
正如我的预测变量似乎在聚集
> head(table(pr_out))
pr_out
0 1 2 3 4 5
117 0 0 114 0 0
我不太了解你的情况。您说您正在使用序数回归模型,但是据我所知,您还说您的响应变量是市场中的公司数量。这是一个数,它是有序的,但OLR不是模型的正确方法; 您想使用泊松回归的某种变体。
—
gung-恢复莫妮卡
@gung是的,我了解计数与顺序的关系。目前,我正在尝试复制纸上的idea.repec.org/a/ucp/jpolec/v99y1991i5p977-1009.html,它们使用有序回归。我还估算了计数模型,但这对我完成这项特定任务没有帮助。另外,不,不是我只想让R执行此操作,而是试图了解行为在哪里偏离了我的期望(因为我怀疑错误是我自己而不是R造成的)。
—
prototoast 2012年
您是否
—
caracal 2012年
polr()
针对其他功能进行了验证?你可以尝试lrm()
从包rms
:lrmFit <- lrm(y ~ pop0 + inc0); predict(lrmFit, type="fitted.ind")
。另一种选择是vglm()
从包VGAM
:vglmFit <- vglm(y ~ pop0 + inc0, family=propodds); predict(vglmFit, type="response")
。两者都返回预测类别概率的矩阵。查看我的答案以从中获取预测的类别。
predict
函数返回的值与您手动生成的值有何不同?您的因变量的结构是什么?请提供一个可复制的示例。