纵向面板数据固定效应Logit:glm与clogit选择及结果差异咨询
关于固定效应Logit模型选择:glm vs clogit的分析
咱们一步步来拆解你的问题哈:
一、代码是否存在错误?
1. glm代码的问题
你用glm(chldwork~lag_aspgrade_binned+age+as.factor(childid), ...)试图通过加入个体虚拟变量实现固定效应,但这里存在严重的数值不稳定问题:
从GLM输出能看到,截距项的标准误差高达1.933e+04,且大量Deviance Residuals接近0——这是**分离问题(Separation)**的典型表现。当面板中很多个体的因变量取值完全一致(比如某个孩子始终打工/始终不打工),加入过多个体虚拟变量会导致模型无法有效识别系数,估计结果不可靠。
2. clogit代码是正确的
你用clogit(chldwork~lag_aspgrade_binned+age+strata(childid), ...)的写法完全符合条件固定效应Logit的实现逻辑:
strata(childid)就是用来控制个体固定效应的,它会在每个个体内部(strata)对比不同时间点的因变量和自变量变化。- 至于没有截距项,这是条件Logit的正常特性:因为截距项已经被每个strata的固定效应吸收了,不需要单独估计,这不是代码错误。
二、为什么两种模型系数差异显著?
两种方法的核心逻辑和利用的样本信息完全不同:
- glm+个体虚拟变量:尝试用所有样本估计,但因分离问题,很多个体的信息无法为系数估计提供有效贡献,甚至会干扰估计结果,导致系数偏误、标准误差异常。
- clogit(条件Logit):只利用观测期内因变量发生变化的个体的信息(即那些有时打工、有时不打工的孩子),自动排除了因变量完全不变的个体——这才是固定效应模型“控制个体未观测异质性”的正确打开方式,估计结果更严谨可靠。从你的clogit输出里
number of events=2358也能看出来,它只保留了有对比价值的样本。
三、哪种模型更适用?
优先选择clogit(条件固定效应Logit),理由如下:
- 理论严谨:它是面板二分类因变量固定效应模型的标准方法,完美匹配你“控制个体固定效应,用滞后学业抱负预测童工行为”的研究需求。
- 数值稳定:从根本上避免了glm方法的分离问题,系数估计的标准误差更合理,推断结果可信。
- 补充建议:如果你的面板是长面板(每个孩子观测次数较多),也可以尝试
glmmML包的feologit函数,但clogit已经能很好解决你的问题。
内容的提问来源于stack exchange,提问作者shaq1993




