居中和缩放虚拟变量

机器算法验证 分类数据 数据转换 定心
2022-02-08 16:17:48

我有一个包含分类变量和连续变量的数据集。有人建议我将分类变量转换为每个级别的二进制变量(即 A_level1:{0,1}、A_level2:{0,1})——我认为有些人称之为“虚拟变量”。

话虽如此,然后用新变量对整个数据集进行中心化和缩放是否会产生误导?似乎我会失去变量的“开/关”含义。

如果它具有误导性,这是否意味着我应该分别对连续变量进行居中和缩放,然后将其重新添加到我的数据集中?

TIA。

3个回答

在构建用于回归分析的虚拟变量时,分类变量中的每个类别除了一个之外都应该得到一个二元变量。所以你应该有例如 A_level2、A_level3 等。其中一个类别不应该有二进制变量,这个类别将作为参考类别。如果您不省略其中一个类别,您的回归分析将无法正常运行。

如果您使用 SPSS 或 R,我认为整个数据集的缩放和居中通常不会成为问题,因为这些软件包通常将只有两个级别的变量解释为因素,但这可能取决于使用的具体统计方法. 在任何情况下,对二元(或分类)变量进行缩放和居中是没有意义的,因此如果必须这样做,您应该只对连续变量进行居中和缩放。

如果您使用 R 并将虚拟变量或具有 0 或 1 的变量缩放到仅介于 0 和 1 之间的比例,那么这些变量的值不会有任何变化,其余列将被缩放。

maxs <- apply(data, 2, max) 
mins <- apply(data, 2, min)

data.scaled <- as.data.frame(scale(data, center = mins, scale = maxs - mins))

回归中均值居中的目的是使截距更易于解释。也就是说,如果您的意思是回归模型中的所有变量居中,那么截距(在 SPSS 输出中称为常量)等于结果变量的总体平均值。这在解释最终模型时会很方便。

至于平均居中虚拟变量,我刚刚与我的一位教授就回归模型中的平均居中虚拟变量进行了对话(在我的情况下,是一个具有 3 个级别的随机块设计多级模型),我的结论是平均居中虚拟变量实际上并没有改变回归系数的解释(除了解决方案是完全标准化的)。通常,在回归中没有必要解释实际的单位水平平均中心值 - 只有系数。这基本上不会改变 - 在大多数情况下。她说它略有变化,因为它是标准化的,对于傻瓜来说,理解起来并不直观。

警告:这是我离开教授办公室时的理解。当然,我可能弄错了。