在应用回归技术之前是否应该将重复的整数转换为因子

Should repeated integers be converted into factors before applying regression technique

我是数据科学的新手,如果这个问题看起来很愚蠢,请提前道歉。

我有一个包含 1463 个观察值的数据集,其中两个变量类似于 .

OverallCond: Rates the overall condition of the house

   10   Very Excellent
   9    Excellent
   8    Very Good
   7    Good
   6    Above Average   
   5    Average
   4    Below Average   
   3    Fair
   2    Poor
   1    Very Poor

MSSubClass: Identifies the type of dwelling involved in the sale.   

    20  1-STORY 1946 & NEWER ALL STYLES
    30  1-STORY 1945 & OLDER
    40  1-STORY W/FINISHED ATTIC ALL AGES
    45  1-1/2 STORY - UNFINISHED ALL AGES
    50  1-1/2 STORY FINISHED ALL AGES
    60  2-STORY 1946 & NEWER
    70  2-STORY 1945 & OLDER
    75  2-1/2 STORY ALL AGES
    80  SPLIT OR MULTI-LEVEL
    85  SPLIT FOYER
    90  DUPLEX - ALL STYLES AND AGES
   120  1-STORY PUD (Planned Unit Development) - 1946 & NEWER
   150  1-1/2 STORY PUD - ALL AGES
   160  2-STORY PUD - 1946 & NEWER
   180  PUD - MULTILEVEL - INCL SPLIT LEV/FOYER
   190  2 FAMILY CONVERSION - ALL STYLES AND AGES

我应该在应用回归之前将这些变量转换为因子,因为它们会重复,还是应该只将它们视为整数?

这些变量应转换为因子变量。此外,变量 MSSubClass 看起来级别太多,因此您可能还需要对其进行管理。例如,您可以将关卡组合在一起组成一个关卡!

正如 MysticRenge 所写 - 是的。

但了解其背后的原因很重要: 任何回归模型都有一定的计算系数的方法,从广义上讲,在 OLS 回归中,它检查自变量的每个值(控制其他独立变量)的因变量 (Y) 的平均值,并进行加权算术那些的意思。因此,对于每增加一个单位的 X,系数是 Y 的平均线性增加(或减少)。

如果将分类变量的编码保留为整数,模型会像处理连续的定量变量一样处理它们,系数的含义就是Y增加多少对于 X 的每个单位增加。由于分类没有统一的间隔(或第二个变量的顺序),这将毫无意义。

将它们转换为虚拟变量(通过 as.factor())会将类别强制成对,遗漏一个类别。现在每个系数的新含义将是 X 的类别 i 与排除的类别之间 Y 的平均差异。如果要更改此比较类别,请使用 relevel() 函数。