2016-08-17 51 views
2

我们正在处理一个包含两个分类变量年龄组和性别的回归模型。R中两个分类变量之间的相互作用

我们希望在两个分类变量之间包含一个交互项,但所得到的模型仅显示女性与所有年龄组之间的交互效果。

我们应该如何调整代码,使“26-30岁”男性成为参考水平,并显示所有其他群体在其输出中的效果?

调整代码

count_med_op3 <- glm(Count_OP ~ Gender * age_group + otherfactors, 
        data = med, family = 'poisson') 

结果通缉:

GenderMale:age_group"0-1" 
GenderMale:age_group"2-6" 
GenderMale:age_group"7-18" 
GenderMale:age_group"19-25" 
GenderMale:age_group"31-36" 
Genderfemale:age_group"0-1" 
Genderfemale:age_group"2-6" 
Genderfemale:age_group"7-18" 
Genderfemale:age_group"19-25" 
Genderfemale:age_group"26-30" 
other factors 

回答

2

使用relevel

# simulate some data 
df_foo = data_frame(
    age = as.factor(sample(seq(10, 90, 10), 100, replace = TRUE)), 
    y = rnorm(100), 
    gender = as.factor(sample(c("Male", "Female"), 100, replace = TRUE)) 
) 

# female as omitted level 
df_foo %>% 
    lm(y ~ age*gender, data = .) %>% 
    summary() 

# male as omitted level 
df_foo %>% 
    lm(y ~ age*relevel(gender, ref = "Male"), data = .) %>% 
    summary()