在R中,选择因子在lm回归中的基础类别的最佳方法是什么?

9
假设我想使用lm和一个factor作为右侧变量运行回归。选择哪个水平作为基础类别(被排除以避免多重共线性)的最佳方法是什么?请注意,我不想排除截距,因为我有很多因素。
我还希望有一个基于公式的解决方案,而不是直接在数据框上操作的解决方案,但如果您认为您有一个非常好的解决方案,请也发表一下。
我的解决方案是:
base_cat <- function(x) c(x,1:(x-1),(x+1):100) 
a_reg <- lm(y ~ x1 + x2 + factor(x3, levels=base_cat(30)) #suppose that x3 has draws from the integers 1 to 100.
lm没有包含的类别是因子中的第一级,所以这只是重新排列级别,以便在base_cat()中指定的级别是第一个,并将其余级别放在其后。
还有其他想法吗?
1个回答

6

relevel 函数可以帮助你实现这一点。你只需传入一个无序因子和参考级别的名称,它就会返回一个以该级别作为第一个级别的因子。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接