对中和缩放虚拟变量


13

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

话虽这么说,然后使用新变量对整个数据集进行居中和缩放会产生误导吗?似乎我将失去变量的“开/关”含义。

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

TIA。


1
对虚拟变量进行居中和/或缩放是可接受还是合理的取决于应用程序,计划的分析和特定于任务的注意事项。因此,没有一个正确的答案。在最一般的粗略表述中,通常可以使用预测变量来实现。对于响应虚拟变量或在诸如聚类或因子分析之类的多变量方法中,这样做通常是一个坏主意。
ttnphns

Answers:


13

构造用于回归分析的虚拟变量时,分类变量中的每个类别(除了一个)都应获得一个二进制变量。因此,您应该具有例如A_level2,A_level3等。类别之一不应具有二进制变量,并且该类别将用作参考类别。如果您不忽略其中一个类别,则回归分析将无法正常运行。

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


2
我的强烈感觉是,答案中唯一可以真正回答OP问题的部分是最后一句话-该部分无法解释。您说不要扩展它们,但不解释原因。同时,主题不是很容易。
ttnphns

这只是编码分类变量的一种方法。我没有时间写一个完整的答案,但是搜索“对比”可能会有所帮助。一个相关的答案是stats.stackexchange.com/questions/60817/...
user20637

3

如果使用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))

有趣的提示。谢谢你的分享。自从我问了已经有一段时间了,但是很高兴看到我仍然可以从这些旧文章中学到东西。
user2300643 '17

3

回归中均值居中的目的是使截距更易于解释。也就是说,id表示您将回归模型中所有变量居中,然后截距(SPSS输出中称为Constant)等于结果变量的总体均值。解释最终模型时,这很方便。

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.