使用 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*motive1
、region*motive2
...)吗?
但那样的话,我可以添加多少交互项?我是否必须将 'region' 中的零重新编码为 0.0000000001
之类的内容,因为与零相乘会扭曲结果?最后,我是否必须将交互项与该交互项的两个组成部分(例如 region
、motive
和 region*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
(包括拦截)。
我想测试选民投票给特定政党的动机 '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*motive1
、region*motive2
...)吗?
但那样的话,我可以添加多少交互项?我是否必须将 'region' 中的零重新编码为 0.0000000001
之类的内容,因为与零相乘会扭曲结果?最后,我是否必须将交互项与该交互项的两个组成部分(例如 region
、motive
和 region*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
(包括拦截)。