在R中选择哪个级别是lm回归中的因子的基本类别的最佳方式

时间:2011-10-19 21:29:02

标签: r lm r-factor

假设我想使用lmfactor作为右侧变量运行回归。选择因子中哪个级别为基本类别(排除以避免多重共线性的级别)的最佳方法是什么。请注意,我对排除拦截不感兴趣,因为我有很多因素。

我还想要一个基于公式的解决方案,而不是直接作用于data.frame的解决方案,尽管如果你认为你有一个非常好的解决方案,请发布它。

我的解决方案是:

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 个答案:

答案 0 :(得分:6)

函数relevel正是这样做的。你传递一个无序的因子和参考水平的名称,它返回一个以该水平为第一个的因子。