R语言多分类固定效应回归技术咨询(fixest包feglm函数)
关于fixest包feglm多分类固定效应回归的问题解答
问题背景
我是R语言新手,尝试用fixest包的feglm函数做固定效应回归,代码如下:
reg<-feglm(diar~c1+c2+rural+c1rural+c2rural+religion+wealthindex+extendedfamily+genderchild+agechild+birthorder+factor(ageofmotherFE)+factor(surveyyearFE)+factor(divisionFE),data=d7,family="binomial",cluster=c('rural'))
数据集是DHS重复截面数据,目标是探究母亲教育对儿童健康的影响,变量详情:
- 因变量:二分类变量「孩子过去两周是否患腹泻」
- 自变量:c1(母亲队列1虚拟变量)、c2(母亲队列2虚拟变量)、rural(城乡虚拟变量)、c1rural/c2rural(交互项)、genderchild/agechild/birthorder(数值型)
- 控制变量:religion(虚拟变量)、wealthindex(分类变量)、extendedfamily(虚拟变量)
- 固定效应:母亲年龄、调查年份、地理分区
咨询问题
- 我知道family不该设为binomial,那多分类回归对应的family参数是什么?
- 当前模型写法对吗?已经了解bife和clogit但不适用,有没有其他合适的工具?
解答
问题1:多分类回归的family参数
先澄清:你的因变量是二分类(是/否腹泻),如果是真·多分类(3个及以上类别),fixest的feglm不支持多分类逻辑回归,它只支持二分类(binomial)、泊松、负二项这类指数族模型。
如果是你误判了因变量类型,那二分类场景下family="binomial"完全正确,不用改;如果确实是多分类,feglm做不了,得换工具。
问题2:模型正确性与替代工具
模型写法修正
当前模型有几个可以优化的地方:
- 固定效应写法:fixest推荐用
|分隔自变量和固定效应,不用手动加factor(),代码更简洁高效,调整后如下:reg <- feglm( diar ~ c1 + c2 + rural + c1rural + c2rural + religion + wealthindex + extendedfamily + genderchild + agechild + birthorder | ageofmotherFE + surveyyearFE + divisionFE, data = d7, family = "binomial", cluster = "rural" ) - 聚类标准误:你用rural(城乡虚拟变量)做聚类,只有2个组的话,聚类标准误自由度极低,结果不可信,建议换成更细的地理单元(比如村庄编码)。
- 共线性检查:注意交互项
c1rural/c2rural和主效应的共线性,确保队列变量有明确的基准组(比如c1、c2是互斥队列,要留一个未纳入的队列作为基准)。
替代工具
如果确实需要多分类固定效应回归,或者对fixest不满意,可考虑这些工具:
mlogit包:支持多分类逻辑回归,但固定效应需要手动造虚拟变量,适合小数据集。glmmTMB包:支持多分类混合效应模型,能处理固定/随机效应,适配重复截面或面板数据。nnet包的multinom函数:基础多分类回归实现,同样要手动处理固定效应。
如果是二分类场景,fixest的feglm已经是高效的选择,修正写法和聚类变量即可。
内容的提问来源于stack exchange,提问作者Lamya
相关产品推荐
相关产品推荐

