我了解数据分析编码的逻辑。我的以下问题是关于特定代码的使用。
- 为什么性别经常被编码为女性0和男性1?
- 为什么将此编码视为“标准”?
- 将其与Female = 1和Male = 2进行比较。此编码是否存在问题?
我了解数据分析编码的逻辑。我的以下问题是关于特定代码的使用。
Answers:
y = a + b * Male
而不是y = a + b * Gender
。这样可以更轻松地解释结果。假设您有一些高度数据:
Woman A: 165
Woman B: 170
Woman C: 175
Man D: 170
Man E: 180
Man F: 190
然后您对表格进行了回归Height = a + b * Gender + Residual
。
使用0,1虚拟变量,您将获得a
170 的估计值,即女性的平均身高,b
而10 的估计值则是男性和女性的平均身高之差。
使用1,2虚拟变量,您将获得a
160 的估计值,这很难解释。
我以为这是因为通常用于存储性别的字段类型是位字段,而SQL中的位字段只能具有值0或1。转储数据时,它的值为0或1,并且这就是为什么您获得这些特定的值。
如果要使用1和2,则必须使用更大的字段类型,这将占用更多空间,从而使整个数据库稍大。
我有一位教授建议我们以生物学方式编码,女性为0,男性为1,以反映解剖结构。我认为这不是班上最敏感的东西,也不是PC上要说的东西,但是五年后查看数据集时,绝对容易记住。
到目前为止,有许多好的理由,但也应该是反思性的。为什么要从1开始计数?它使许多数值算法变得更加复杂。标签从0开始,而不是1。如果您还不相信这一点,请访问http://madhadron.com/?p=69,我有一个很好的例子说明为什么它很重要
至于为什么女性为0而男性为1的原因,让我们记住,在统计学的大部分历史中,统计学家很可能是直男。当被要求命名性别时,首先想到的是“女人”。此后的一切可能都是历史性的事故和合理化。
在ISO / IEC 5218标准的更新,这一概念具有以下地图:
0 = not known,
1 = male,
2 = female,
9 = not applicable.
这在JavaScript中将0强制转换为错误值的语言中尤其有用:
if ( !user.gender ) {
promptForGender();
}
我个人认为它是阴茎,0通常代表女性,因为它是子宫的形状,并且被认为是女性的……在几乎所有科学界(即生物学/遗传谱系图中),或0代表女性。其中更直的边缘形状(三角形,正方形或1s)倾向于代表男性。这种简单的理解使我很容易始终记住哪个对我来说。
尽管一天结束时,如果您自己编码并分析数据,则可以输入所需的任何数字,通常,只要有关于使用哪个虚拟变量的键,它就无关紧要。