如何解决在 R 中的逻辑回归模型中将虚拟变量的组合创建为单个变量
我需要在使用 R 的逻辑回归中将 3 个虚拟变量的可能组合创建为一个分类变量。 我手动进行了组合,如下所示:
new_variable_code | 变量_1 | 变量_2 | 变量_3 |
---|---|---|---|
1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 |
3 | 0 | 1 | 1 |
4 | 1 | 0 | 0 |
5 | 1 | 1 | 0 |
6 | 1 | 1 | 1 |
我排除了其他两个选项 (0 0 1) 和 (1 0 1) 因为我不需要它们,它们不由数据表示。 然后,我将 new_variable_code 与其他预测变量一起用作逻辑回归中的一个因素。
我的问题是:是否有任何自动方式来创建相同的 new_variable_code?或者甚至是另一种计量经济学技术,将 3 个虚拟变量编码为逻辑回归模型中的 1 个分类变量?
我的目标:了解哪个变量组合对结果变量的优势比最高(以及在同一模型中解释的其他预测变量)。
谢谢
解决方法
您可以通过以下方式使用 pmap_dbl
将虚拟变量重新编码为 1-6 级:
library(tidyverse)
# Reproducing your data
df1 <- tibble(
variable_1 = c(0,1,1),variable_2 = c(0,variable_3 = c(0,1)
)
factorlevels <- c("000","010","011","100","110","111")
df1 <- df1 %>%
mutate(
new_variable_code = pmap_dbl(list(variable_1,variable_2,variable_3),~ which(paste0(..1,..2,..3) == factorlevels))
)
输出:
# A tibble: 6 x 4
variable_1 variable_2 variable_3 new_variable_code
<dbl> <dbl> <dbl> <dbl>
1 0 0 0 1
2 0 1 0 2
3 0 1 1 3
4 1 0 0 4
5 1 1 0 5
6 1 1 1 6
,
我只想使用 sep="." 创建一个带有粘贴的变量。并使其成为一个因素:
newvar <- factor( paste(variable_1,variable_3,sep="."))
我认为将其设为连续值不是一个好主意,它已经是一个带级别的整数,因为这就是创建因子的方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。