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

时间:2017-05-19 07:06:06

标签: r regression

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

我有一个有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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

MysticRenge写道 - 是的。

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

如果将分类变量的编码保留为整数,模型将像连续的定量变量一样处理它们,并且系数的含义将是每个单位的Y增加多少由于分类没有统一的区间(或者在第二个变量的情况下是顺序),这将是没有意义的。

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