在应用回归技术之前是否应该将重复的整数转换为因子
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()
函数。
我是数据科学的新手,如果这个问题看起来很愚蠢,请提前道歉。
我有一个包含 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()
函数。