首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加两组变量之间所有可能的双向交互-R。

添加两组变量之间所有可能的双向交互-R。
EN

Stack Overflow用户
提问于 2016-03-22 01:51:33
回答 2查看 1.1K关注 0票数 2

假设我有以下规范:

代码语言:javascript
复制
glm(death ~ age + black + hisp + other + rich + middle, family = binomial("probit"), data=data)

是否有一种直接的方式来增加“种族群体”(黑人、拉美裔和其他群体)和“收入群体”(富有、中等)之间的所有双向互动。因此,相互作用将是black_rich,black_middle,hisp*丰富,等等。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-22 02:44:12

公式接口允许您使用^-operator轻松地完成这一任务,您可以通过(ethnicity + incgrp)^2从两个因素变量构造所有的双向交互,但这只适用于使用R因子约定的情况。看来,您正试图通过执行SAS样式的虚拟变量创建来规避公式和因素的正确使用。对于你的处境,你可以尝试:

代码语言:javascript
复制
glm(death ~ age + (black + hisp + other)*( rich + middle), family = binomial("probit"), data=data)

formula解释使用^*来构造交互。他们失去了传统的数学意义。请参阅?formula

票数 3
EN

Stack Overflow用户

发布于 2016-03-22 03:39:33

考虑粘贴公式中的所有组合:

代码语言:javascript
复制
vars1 <-  c('black', 'hisp', 'other')
vars2 <-  c('rich', 'middle')
interactions <- outer(vars1, vars2, function(x,y){paste0(x,'*',y)})
intjoin <- paste(interactions, collapse=" + ")
#[1] "black*rich + hisp*rich + other*rich + black*middle + hisp*middle + other*middle"

model <- glm(paste0('death ~ age + black + hisp + other + rich + middle + ', intjoin), 
             family = binomial("probit"), data=data) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36144890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档