我想测试选民'卡斯蒂格背后的动机是对一个特定党派的投票' 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
...)?
但在这种情况下,我可以添加多少个互动术语?我是否需要在“地区”重新编码零点'像0.0000000001
之类的东西,因为乘以零会扭曲结果?最后,我是否必须将交互项与此交互项的两个组成部分(例如region
,motive
和region*motive
)一起放入模型中,或者这只会导致多重共线性?
谢谢!
答案 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和交互系数添加系数。如果有超过两个级别的'区域' (说n)和'动机' (比方说m)系数的数量为1 +(n-1) +(m-1)+(n-1)*(m-1)
,我认为这是n*m
(包括拦截)。</ p>