细节:许多研究问题需要估算多项Logistic回归模型,其中结果变量是分类的。例如,生物学家可能有兴趣调查哪种类型的树(例如松树、枫树、橡树)最受酸雨的影响。市场研究人员可能会想知道客户年龄与在Target、Safeway或Walmart的购物频率之间是否存在关系。这些情况的共同之处在于结果变量是分类的(无序的),而多项Logistic回归是首选的估算方法。在我的情况下,我正在研究人类迁移类型的差异,结果变量(mig)编码为0=未迁移,1=内部迁移,2=国际迁移。这是我的数据集的简化版本:
migDat=data.frame(hhID=1:21,mig=rep(0:2,times=7),age=ceiling(runif(21,15,90)),stateID=rep(letters[1:3],each=7),pollution=rep(c("high","low","moderate"),each=7),stringsAsFactors=F)
hhID mig age stateID pollution
1 1 0 47 a high
2 2 1 53 a high
3 3 2 17 a high
4 4 0 73 a high
5 5 1 24 a high
6 6 2 80 a high
7 7 0 18 a high
8 8 1 33 b low
9 9 2 90 b low
10 10 0 49 b low
11 11 1 42 b low
12 12 2 44 b low
13 13 0 82 b low
14 14 1 70 b low
15 15 2 71 c moderate
16 16 0 18 c moderate
17 17 1 18 c moderate
18 18 2 39 c moderate
19 19 0 35 c moderate
20 20 1 74 c moderate
21 21 2 86 c moderate
我的目标是估计年龄(自变量)对于以下情况的概率影响:(1)内部迁移与不迁移,(2)国际迁移与不迁移,(3)内部迁移与国际迁移。另一个复杂因素在于我的数据在不同的聚合级别上运作(例如,污染在州一级运作),我也有兴趣预测空气污染(pollution)对于采取特定类型运动的概率影响。
笨拙的解决方案:一个方法是通过将每个模型的数据集减少到仅包含两种迁移类型来估计一组不同的逻辑回归模型(例如,模型1:只有编码为mig=0和mig=1的情况;模型2:只有编码为mig=0和mig=2的情况;模型3:只有编码为mig=1和mig=2的情况)。虽然可以使用lme4估计这样一个简单的多层逻辑回归模型,但这种方法并不完全理想,因为它没有适当地考虑省略的情况的影响。第二种解决方法是使用R中的R2MLwiN包通过MLWiN运行多项逻辑多层模型。但由于MLWiN不是开源的,且生成的对象难以使用,我更喜欢避免这个选项。根据全面的互联网搜索,似乎有一些对这样的模型的需求,但我不知道是否有一个好的R包。因此,如果已经运行过这样的模型的专家可以提供建议,如果有多个包,也许可以指出一些优缺点。我相信这样的信息会成为多个R用户非常有用的资源。谢谢!
最好的祝福, 拉斐尔