每当您拥有分类数据时,都会使用因子变量,您希望以一种允许这些类别的“影响”任意变化的方式来拟合您的模型。当您有两个以上本质上是序数的类别时,应使用有序因子,而当您只有两个类别或任意数量的名义类别时,应使用无序因子。当您在统计模型中对因素进行排序时,这会施加一个约束,以确保这些因素的“影响”的大小和方向遵循建议的排序。因此,类别的排序等效于模型中参数空间的约束。
充分了解因子和数值变量的使用需要您了解测量尺度的基本理论。测量理论根据各种二元关系和算术运算符,根据变量是否具有有意义的关系对变量进行分类。一种常见的类型将变量分为名义、有序、间隔和比率测量。如果您想了解更多关于这个主题的信息,那么我建议您阅读一些关于测量理论的文献。
- 变量是 A\B\C 等不同种类的字符,没有顺序,例如种族(白/黑等)和性别(女性/男性)。我知道我必须使用因子,而不是有序因子。
这是正确的 - 种族和性别都将被视为名义类别,因此它们应该被视为没有规范或排序的因素。(从技术上讲,可能有一些罕见的应用程序需要施加参数约束,根据“效果”的大小和方向对种族类别进行排序。在这种情况下,种族将被视为一个序数变量。这只会发生在有是对排序施加参数约束的良好基础,例如种族是否与证明模型中的约束合理的某些其他特征相关联。)
- 当我遇到一些记录一系列阶段的变量时,例如,肿瘤阶段 1-4,急性肾损伤阶段 1-4,我现在应该使用因子吗?看来我应该使用有序因子?或者这只是一个连续的数字变量?
这些类型的分类通常是一些基础变量的离散分类,它们提供了有关特定特征的更多细节。例如,肿瘤分期是由分期系统确定的简单分类,分期系统考虑了肿瘤的大小和扩散。这些阶段不应被视为数值变量,因为这种处理会施加隐含的约束,将阶段之间的“间隔”视为模型中的等效量级。这些变量通常应被视为有序因子。在这种情况下,排序将模型中“效果”的大小限制为指定的顺序,但不限制不同因子水平之间效果变化的大小。
在使用这些类型的序数因子变量时,还值得注意的是,它们通常根据一个或多个基础连续变量进行分类。因此,与确定类别的基础变量相比,类别变量表示信息丢失。因此,如果基础连续变量是可用数据的一部分,您通常会通过在模型中使用基础连续变量并完全删除因子变量来获得最佳结果。
- 有时将变量的分位数计算为新变量,即将 0~25% 之间的值归为 1、25%~50% 归为 2、50~75% 归为 3、75~100%归为 4。然后从建模中删除变量,只留下 1/2/3/4 代表 Q1/Q2/Q3/Q4。这似乎是上面的第二个问题,所以是一个有序的因素。或者,这只是一个连续的数值变量?
这将是一个有序因素,并且再次涉及与原始变量相关的信息丢失。如果原始变量可用,通常最好直接对其建模。
- 最后,以
glm()
logit 回归模型为例,我是否应该将已经为 0/1 的 Y 变量作为整数作为一个因素?同样的问题也适用于 X 变量。我在 StackExchange 上都看到了glm(y ~ factor(x1) + ...)
,glm(y ~ x1 + ...)
这真的让我很困惑。
当您在统计模型中使用因子变量时,该变量被视为一组表示不同类别的二元变量(具有值0
和)。1
其中一个类别被视为基线(由所有指标表示0
),其余类别被赋予一个指标变量。因此,如果您有一个分类变量k类别,即被视为k−1模型中的指标变量。
这样做的一个结果是二元分类变量被视为单个指示变量,并且这两个东西在数学上本质上是等价的。因此,当您使用只有两个可能结果(例如0
和1
)的二元数值变量时,在数学上与任何二元因子变量相同。
就将变量放入模型的实际语法而言R
,大多数建模过程将自动处理二进制数值变量和二进制因子变量。对于 logit 回归,响应变量y
是二元的,这隐含地与二元分类变量相同。在拟合模型时,通常只将其视为数值变量。如果您将二元因子变量放入glm
函数中(作为响应变量或预测变量),函数会自动分配相应的二元指标,因此这不会导致任何问题。