使用 R 中的层次模型测试区域交互效应

Testing for regional interaction effects using a hierarchical model in R

我想测试选民投票给特定政党的动机 'XY' 以及居住在一个地区是否会产生重大影响。问题是,A 区选民(编码为“1”)与 B 区选民(编码为“0”)的动机是否存在显着差异。

以下是我的数据结构(过度简化):

region_AB   motive   voter_attribute  vote_for_party_XY
1           1        1                1
1           0        1                1
1           1        0                0
0           0        0                0
0           0        1                0
0           1        0                0

我的猜测是 运行 R 中的二元逻辑分层模型,但我如何才能确定不同的动机和选民特征是否对 A 区和 B 区的公民产生了影响?我不想简单地测试区域效应,而是测试区域在整个模型中的差异。

或者我可以简单地将交互项放入标准逻辑回归模型中(例如 region*motive1region*motive2...)吗?

但那样的话,我可以添加多少交互项?我是否必须将 'region' 中的零重新编码为 0.0000000001 之类的内容,因为与零相乘会扭曲结果?最后,我是否必须将交互项与该交互项的两个组成部分(例如 regionmotiveregion*motive)一起放入模型中,或者这只会导致多重共线性?

谢谢!

结果是二元的,因此自然建模框架将是逻辑回归。我没有看到数据收集的层次结构,所以只推荐使用 *-运算符在区域和动机之间形成的交互项。

 glm( vote_for_party_XY ~ region_AB * motive +  voter_attribute, family = "binomial")

请注意,当使用“*”运算符时,R 公式界面包括两个 "main effect" 项。你得到同样的效果:

 region_AB + motive + region_AB : motive 

将有(至少)三个系数来描述区域-动机结果:一个是区域单独的(适用于区域==1且动机=0的人),第二个是动机单独的(适用于区域==1和动机=0的人)区域 0,动机 = 1)和第三个(对于区域 = 1 和动机 = 1 的人)。所有估计都将与适用于所有因素都处于 0-(参考)水平的人的截距项相关。要计算 region=1 和 region=1 的人的投票率,您可以添加 Intercept、region=1 和交互系数的系数。如果 'region'(比如 n)和 'motivation'(比如 m)有两个以上的级别,则系数的数量将为 1 +(n-1) +(m-1)+(n-1)*(m-1) ,我认为结果为 n*m (包括拦截)。