我是数据科学的新手,如果这个问题看起来很愚蠢,请提前抱歉。
我有一个有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
我应该在应用回归之前将这些变量转换为因子,因为它们会被重复,还是应该只将它们视为整数?
答案 0 :(得分:0)
这些变量应转换为因子变量。此外,变量MSSubClass看起来会有太多级别,因此您可能还需要管理它。例如,您可以将级别组合在一起以形成一个级别!
答案 1 :(得分:0)
MysticRenge写道 - 是的。
但重要的是你了解背后的为什么: 任何回归模型都有一定的计算系数的方法,并且广泛地说在OLS回归中,它检查自变量(控制其他独立变量)的每个值的因变量(Y)的平均值并进行加权算术那些意思。因此,系数是Y中的平均线性增加(或减少),每增加一个X单位。
如果将分类变量的编码保留为整数,模型将像连续的定量变量一样处理它们,并且系数的含义将是每个单位的Y增加多少由于分类没有统一的区间(或者在第二个变量的情况下是顺序),这将是没有意义的。
将它们转换为虚拟变量(通过as.factor()
)会将类别强制转换成对,从而省略一个类别。现在每个系数的新含义将是X的类别i和省略的类别之间的Y的平均差异。如果要更改此比较类别,请使用relevel()
函数。