使用R

时间:2018-06-04 20:47:22

标签: r logistic-regression hierarchical-data regional

我想测试选民'卡斯蒂格背后的动机是对一个特定党派的投票' 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 ...)?

但在这种情况下,我可以添加多少个互动术语?我是否需要在“地区”重新编码零点'像0.0000000001之类的东西,因为乘以零会扭曲结果?最后,我是否必须将交互项与此交互项的两个组成部分(例如regionmotiveregion*motive)一起放入模型中,或者这只会导致多重共线性?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

请注意,R公式界面包括"主要效果"当" *"使用运算符。你会得到同样的效果:

 region_AB + motive + region_AB : motive 

将有(至少)三个系数来描述区域动机结果:一个用于区域单独(适用于区域内的人== 1和动机= 0),第二个用于单独的动机(适用于区域0中的人员) ,动机= 1)和第三(对于那些区域= 1和动机= 1的人)。所有估计值均相对于适用于所有因子均为0-(参考)水平的人的截距项。要计算region = 1和region = 1的人的投票率,可以为Intercept,region = 1和交互系数添加系数。如果有超过两个级别的&#39;区域&#39; (说n)和&#39;动机&#39; (比方说m)系数的数量为1 +(n-1) +(m-1)+(n-1)*(m-1),我认为这是n*m(包括拦截)。<​​/ p>