18

标题说明了一切,我在生成它时订购了一个因子变量,现在我想删除排序并将其用作无序因子变量。还有一个问题,如果我在回归中使用我的因子变量作为预测变量,如果它是有序的(序数)或简单的因子变量(分类),它会对 R 产生影响吗?

4

2 回答 2

28

所有你需要的是

x <- factor( x , ordered = FALSE )

例如

x <- factor( c(1,2,"a") , ordered = TRUE )
x
#[1] 1 2 a
#Levels: 1 < 2 < a

x <- factor( x , ordered = FALSE )
x
#[1] 1 2 a
#Levels: 1 2 a
于 2013-07-11T11:51:29.977 回答
3

如果您通过 创建变量ordered,则只需将其类重置为factor.

f <- ordered(letters)
class(f) <- "factor"
identical(f, factor(letters))

在线性或加性模型(包括线性回归、逻辑回归和任何符合和的模型)中,就整体模型拟合而言lm,因子预测变量的处理方式与有序预测变量完全相同。无论您使用哪一个,您都将获得相同的预测值、残差、失配统计等。glmgam

但是,这两个类别的对比是不同的。因子使用处理对比,即通常的虚拟变量编码,将给定水平视为基线。有序因子使用基于正交多项式的多项式对比(无论这意味着什么;我从来没有理由使用有序因子)。因此,各个系数的 t-stats 和 P-value 会有所不同。

于 2013-07-11T11:53:36.933 回答