如何解决在 R 的回归分析中使用逻辑变量来表示虚拟变量是否有意义?
据我所知,R 在回归分析时将逻辑变量视为具有两个水平的因子变量。这在大多数情况下似乎运作良好,但在某些情况下会产生意想不到的结果(见下文)。所以我想知道:在 R 中将虚拟变量编码为逻辑变量而不是数字变量是否有益?
当逻辑变量作为主效应包括在内时,R 检测其两个因子水平的共线性并降低 FALSE
水平。但是,当仅存在交互作用时,R 无法检测共线性并估计两个系数,而我预计只有一个:
library(tidyverse)
# create dataset
dat <- mtcars %>%
as_tibble() %>%
mutate(vs = as.logical(vs))
# regression with main effects
lm(mpg ~ vs + disp + vs:disp,data = dat)
#>
#> Call:
#> lm(formula = mpg ~ vs + disp + vs:disp,data = dat)
#>
#> Coefficients:
#> (Intercept) vsTRUE disp vsTRUE:disp
#> 25.63755 8.39771 -0.02937 -0.04219
# regression without main effects
lm(mpg ~ vs:disp,data = dat)
#>
#> Call:
#> lm(formula = mpg ~ vs:disp,data = dat)
#>
#> Coefficients:
#> (Intercept) vsFALSE:disp vsTRUE:disp
#> 30.05647 -0.04228 -0.04591
由 reprex package (v2.0.0) 于 2021 年 7 月 14 日创建
有什么方法可以理解这种行为,还是应该在 R 中将虚拟变量表示为数字变量?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。