r - 嵌套随机效应和相关的固定效应
问题描述
我有跨国面板数据,我想知道对IV
二元学生水平结果的影响DV
我想包括一个嵌套随机效应,它考虑到学生所在的学校会影响结果,并且不同国家的学校存在显着差异:(1|country/school)
. 所以我开始的模型是:
model = glmer(DV ~ IV + (1|country/school), data=data, family = 'binomial')
我还想考虑时间趋势。起初我认为我应该做年度固定效应,但这些国家的政治发展随着时间的推移而有很大差异,我想抓住这一点,虽然 1991 年可能使 A 国的学校陷入动荡,但 1991 年可能是教育资金的丰收年在 B 国。因此我认为我可能应该包括一个国家年固定效应,如下所示:
model = glmer(DV ~ IV + (1|country/school) + as.factor(country_year),
data=data, family = 'binomial')
模型的随机效应是:
Random effects:
Groups Name Variance Std.Dev.
school:country (Intercept) 5.703e-02 2.388e-01
country (Intercept) 4.118e-15 6.417e-08
Number of obs: 627, groups: school:country, 51; country, 22
当模型中已经包含国家随机效应时,包括国家年份固定效应是否不正确?
问这个问题的另一种方式:我应该如何处理这样一个事实,即school
是 的子集country
,并且country_year
是 的子集country
,但两者都不是,school
或者不是country_year
彼此的子集?
解决方案
据我所知,你们有 22 个国家。目前尚不清楚它是什么country_year
,但假设它只是 的一个虚拟country:year
变量,那么将其作为一个固定效应(作为一个因素)包括在内可能不是一个好主意,因为会有太多的级别无法有效地解释。
year
由于您对时间趋势感兴趣,因此将其包含为固定效果是有意义的:
DV ~ IV + (1|country/school) + as.factor(year)
如果有很多years
,您可能会发现最好将年份包含为数字
DV ~ IV + (1|country/school) + as.numeric(year)
..因为这将估计一年的单一(线性)趋势,而如果它是一个因素,那么它将计算一个估计值,无论有多少年(减 1),当有许多级别时,这将不容易解释。但是,当编码为一个因素时,估计值可以表明是否存在非线性趋势,然后您可以切换到as.numeric
并引入非线性项。
OP的最后一段有点混乱。如果country_year
真的嵌套在 中country
,那么我们将有:
DV ~ IV + (1|country/school) + (1|country:country_year)
..这与:
DV ~ IV + (1|country) + (1/school:country) + (1|school:country_year)
...但是这不会估计任何时间趋势。如果你想估计一个趋势,那么你需要包括year
(或country_year
)作为如上所述的固定效应 - 你可以通过将其作为随机斜率包括在学校(和/或国家)之间来允许它不同,例如:
DV ~ IV + year + (1|country) + (year|school:country)