例如,为什么通常将性别编码为0/1而不是1/2?


25

我了解数据分析编码的逻辑。我的以下问题是关于特定代码的使用。

  • 为什么性别经常被编码为女性0和男性1?
  • 为什么将此编码视为“标准”?
  • 将其与Female = 1和Male = 2进行比较。此编码是否存在问题?

15
当应用回归模型时,使用0/1编码方案本质上很有用,尽管可以使用多种编码方案,例如-1/1(但它将改变回归系数的解释)。但是,不应将其与数据输入(即,您真正放入数据库中的内容)相混淆。在这种情况下,最好存储完整标签。构建回归模型时,将它们转换为数值或构建专用的设计矩阵。否则,祝您好运,告诉您0和1在5年后的立场。
chl

我已经在数据库中看到性别编码为男性,女性和未知。
阿克萨卡(Aksakal)

2
我认为最好将此问题视为两个混淆的问题。更大的问题是,为什么对指示器或伪变量使用0-1编码而不是其他编码。较小的问题是,为什么对男性使用1,对女性使用0,对此的一个简短答案是,正在使用许多其他编码,包括与对女性使用1相对的编码,等等,以及各种复杂的编码,允许未知的性别和性别。其他性别类别。
尼克·考克斯

Answers:


38

选择二进制变量的零一编码的原因:

  • 零一变量的平均值表示由值1表示的类别中的比例(例如,男性百分比)。
  • 在简单回归其中x是零一变量)中,该常数具有简单的解释(例如,a是女性的y平均值)。ÿ=一种+bXX一种ÿ
  • 如果二进制变量的两个值之差为1(即零一,但也为二),则可以对回归系数进行直接解释(例如,是从女性到男性的影响)。 y)。b

有关编码二进制变量的各种观点:

  • 保留类别顺序(例如,女性= 0,男性= 1;女性= 1,男性= 2;女性= 1007,男性= 2000等)的二进制变量的任何编码都不会影响变量的相关性。二进制变量与其他变量。
  • 以这种方式报告二进制变量的任何表都应清楚说明变量的编码方式。用表示一个值的类别标记变量也很有用:例如,y = a + b * Male而不是y = a + b * Gender
  • 对于某些二进制变量,自然应该将一种类别编码为一种。例如,当观察治疗与对照之间的差异时,对照应为零,治疗应为1,因为最好将回归系数视为治疗的效果。
  • 翻转类别(例如,使女性= 1和男性= 0,而不是使女性= 0和男性= 1)将翻转相关性和回归系数的符号。
  • 就性别而言,通常没有自然的理由对变量女性= 0,男性= 1,男性= 0,女性= 1进行编码。或选择使回归系数为正的编码可简化解释。同样,在某些情况下,可以将一种性别视为参考类别。例如,如果您正在研究男性占主导地位的职业中女性对收入的影响,则可以说男性= 0,女性= 1,以说明女性的影响。
  • 以周到的方式缩放回归系数可以对回归系数的可解释性产生强大的影响。安德鲁·盖尔曼(Andrew Gelman)对此进行了很多讨论。例如见他2008年论文由两个标准差(PDF)将尺度回归的投入统计中医药,27,2865年至2873年。
  • 将男性和女性编码为-1和+1是可以提供有意义的系数的另一种选择(请参阅“什么是效果编码”)。

18
嗯,我一直以为编码女性= 0和男性= 1的自然原因是“解剖学” ...
Matt Parker

2
@matt好笑。我从来没有想过那样。我一直受到我艺术学位的镜头的影响,在那里您将学习一些女权主义者如何批判意识形态,如何看待女性,因为男性缺乏某种东西。通过这样一个镜头,有点幽默,性别编码成为一个政治问题:-)
Jeromy Anglim 2011年

13
作为一种习惯,我总是将性别变量名称更改为“ Female”之类的名称,以明确0/1编码方案的含义。
Fomite,2011年

Jeromy,您是否要观察stats.meta.stackexchange.com/a/4881/3277上的讨论,即是否需要单独的标签[dummy-variables]并在评论中说您的赞成/反对?
ttnphns

考虑一对性染色体X和Y,雌性具有XX,雄性具有XY染色体。取X = 0和Y = 1,我们可以发现女性= XX = 00 = 0和男性= XY = 01 = 1。
GürolCanbek

14

这样可以更轻松地解释结果。假设您有一些高度数据:

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虚拟变量,您将获得a170 的估计值,即女性的平均身高,b而10 的估计值则是男性和女性的平均身高之差。

使用1,2虚拟变量,您将获得a160 的估计值,这很难解释。


谢谢。我正在以“光速”学习统计信息,因为这是我新工作的要求。该编码是否仍适用于相关性分析。
Adhesh Josh 2011年

1
@Adhesh如果您是指两个定量变量之间的相关性,那么就没有编码问题:只需使用原始度量即可。如果您的问题是关于两个定性变量之间的关联,那么您可以考虑提出一个新问题,但是坦率地说,在这种情况下并没有太大的困难(除非您要为变量类别使用不均匀间隔的分数,但这已经在其他地方得到了解答现场)。
chl

4
@Adesh对二进制1/2或0/1进行编码不会影响您的相关系数。0/1还具有以下优点:变量的平均值是男性或女性的百分比,取决于哪个。其他编码方案可能对解释不同类型的分析有用。
迈克尔·毕晓普

2

我以为这是因为通常用于存储性别的字段类型是位字段,而SQL中的位字段只能具有值0或1。转储数据时,它的值为0或1,并且这就是为什么您获得这些特定的值。

如果要使用1和2,则必须使用更大的字段类型,这将占用更多空间,从而使整个数据库稍大。


作为SQL程序员,这也是我的第一个反应。我不确定使用0和1表示性别的任何纯粹的数学原因,但我知道一个事实,即某些推动力来自使用尽可能最小的数据类型的需求。行业标准是根据习惯开发的,每个人都可以使用。为此,可能值得检查ANSI标准历史记录。如今,人们开始努力使DBA使用字节或小整数列表示性别,以指示不寻常的异常,例如“公司实体”或“不确定”,但许多旧数据库仍然反映了旧标准。
SQLServerSteve

2

我有一位教授建议我们以生物学方式编码,女性为0,男性为1,以反映解剖结构。我认为这不是班上最敏感的东西,也不是PC上要说的东西,但是五年后查看数据集时,绝对容易记住。


这显然不是问题的“真实”答案(也许这更多是评论而不是答案),但是助记符显然是很多人认为有用的答案。
Silverfish

我被教导比“解剖学”更“生物学”(尽管我怀疑“原因”是在回顾中发明的,而不是原来的),因为女性使用“ 0”是因为它是“默认”性别-信念是在胚胎发育过程中,除非干预过程推动胚胎沿雄性途径分化,否则采取雌性途径。这曾经是一种普遍的观念,但现在被认为已经过时:女性的途径也需要积极地触发。
Silverfish

1
在这种情况下,不应将男人编码为“ 00”。
哈维·莫图尔斯基

1

到目前为止,有许多好的理由,但也应该是反思性的。为什么要从1开始计数?它使许多数值算法变得更加复杂。标签从0开始,而不是1。如果您还不相信这一点,请访问http://madhadron.com/?p=69,我有一个很好的例子说明为什么它很重要

至于为什么女性为0而男性为1的原因,让我们记住,在统计学的大部分历史中,统计学家很可能是直男。当被要求命名性别时,首先想到的是“女人”。此后的一切可能都是历史性的事故和合理化。


-1

ISO / IEC 5218标准的更新,这一概念具有以下地图:

0 = not known,
1 = male,
2 = female,
9 = not applicable.

这在JavaScript中将0强制转换为错误值的语言中尤其有用:

if ( !user.gender ) {
    promptForGender();
}

10
重要的是要注意,这种标准实际上是用于数据传输和/或存储的。这还不足以作为数据分析的标准而这正是问题所在。

-2

我个人认为它是阴茎,0通常代表女性,因为它是子宫的形状,并且被认为是女性的……在几乎所有科学界(即生物学/遗传谱系图中),或0代表女性。其中更直的边缘形状(三角形,正方形或1s)倾向于代表男性。这种简单的理解使我很容易始终记住哪个对我来说。

尽管一天结束时,如果您自己编码并分析数据,则可以输入所需的任何数字,通常,只要有关于使用哪个虚拟变量的键,它就无关紧要。


2
一个愚蠢的问题的奇怪答案。
Michael R. Chernick '18
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.