跨国面板模型嵌套随机效应下,国家-年份固定效应合理性问询
先直接回应你的核心疑问
在你当前的模型里,同时纳入国家随机效应和国家-年份固定效应并不是严格意义上的“错误”,但会导致一个明显的问题:国家层面的变异被国家-年份固定效应完全吸收,使得国家随机效应失去解释力——你给出的随机效应结果里,country组的方差几乎为0(4.118e-15)就是最直接的证据。
为什么会出现这种情况?
国家-年份固定效应(as.factor(country_year))本质上是给每个国家的每一年都分配了一个独特的固定截距,这已经覆盖了:
- 国家层面的时间不变特征(比如A国整体的教育政策环境、文化背景)
- 国家层面的时间变化冲击(比如你提到的1991年对A国和B国的不同影响)
而你原模型里的(1|country)随机效应,本来是用来捕捉国家间未观测到的、时间不变的异质性。现在这些变异已经被国家-年份固定效应完全“吃掉”了,所以模型只能估计出趋近于0的方差,这个随机效应实际上已经没有存在的必要了。
如何处理变量间的层级关系?
针对你提到的“school是country的子集,country_year是country的子集,但school与country_year互不构成子集”的关系,最优的调整方案是:
1. 移除冗余的国家随机效应,保留嵌套学校随机效应 + 国家-年份固定效应
调整后的模型代码如下:
model = glmer(DV ~ IV + (1|school:country) + as.factor(country_year), data=data, family = 'binomial', # 可选:如果出现收敛问题,尝试调整优化器 control = glmerControl(optimizer = "bobyqa"))
这里的(1|school:country)表示同一国家内不同学校的随机截距差异,这部分变异没有被国家-年份固定效应覆盖(毕竟同一国家同一年的不同学校仍可能有差异),保留它可以正确控制学校层面的聚类误差。
2. 替代方案:用国家-时间随机效应替代固定效应(仅当样本量有限时考虑)
如果你的某些国家-年份组样本量极小,加入大量固定效应可能导致估计不稳定,这时候可以考虑用国家层面的时间随机效应来捕捉异质性,比如:
model = glmer(DV ~ IV + (1|country/school) + (1|country:year), data=data, family = 'binomial')
这种方式允许国家-年份的截距是随机分布的,而不是固定的,能在样本量不足时避免过度拟合,但缺点是无法像固定效应那样完全捕捉特定年份的异质性冲击(比如1991年的独特影响)。
额外注意事项
- 对于二元因变量的混合效应模型,加入大量固定效应可能会遇到收敛问题,你可以尝试添加
nAGQ=0参数(使用拉普拉斯近似),或者更换优化器(比如上面提到的bobyqa)。 - 如果你还想控制学生层面的协变量,可以直接在模型公式中加入,比如
DV ~ IV + student_covariate1 + student_covariate2 + ...。
内容的提问来源于stack exchange,提问作者thecomebackkid

