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

机器算法验证 数据转换 二进制数据 分类编码 单位
2022-01-31 06:39:33

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

  • 为什么性别经常被编码为女性 0 和男性 1 是有原因的吗?
  • 为什么这种编码被认为是“标准的”?
  • 将此与女性 = 1 和男性 = 2 进行比较。这种编码有问题吗?
4个回答

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

  • 零一变量的平均值表示由值一表示的类别中的比例(例如,男性的百分比)。
  • 在一个简单的回归,其中是零一变量,常数有一个简单的解释(例如,女性y=a+bxxay
  • 两个值之差为 1(即,0-1,但也可以是 1-2)的二进制变量的任何编码都可以直接解释回归系数(例如,是从女性到男性对y)。b

关于编码二进制变量的分类要点:

  • 保留类别顺序的二进制变量的任何编码(例如,女性 = 0,男性 = 1;女性 = 1,男性 = 2;女性 = 1007,男性 = 2000 等)不会影响类别的相关性二进制变量与其他变量。
  • 任何以这种方式报告二进制变量的表都应该清楚地说明变量是如何编码的。按表示 1 值的类别来标记变量也很有用:例如,y = a + b * Male而不是y = a + b * Gender
  • 对于一些二元变量,更自然地应该将一类编码为一类。例如,在查看治疗和控制之间的差异时,控制应该为零,治疗应该是一,因为回归系数最好被认为是治疗的效果。
  • 翻转类别(例如,让女性 = 1 和男性 = 0,而不是女性 = 0 和男性 = 1)将翻转相关性和回归系数的符号。
  • 在性别的情况下,通常没有自然的理由对变量进行编码,女性 = 0,男性 = 1,而男性 = 0,女性 = 1。然而,惯例可能建议读者更熟悉一种编码;或选择使回归系数为正的编码可能会简化解释。此外,在某些情况下,可以将一种性别视为参考类别;例如,如果您正在研究在男性占主导地位的职业中成为女性对收入的影响,那么编码男性 = 0 和女性 = 1 可能是有意义的,以说明成为女性的影响。
  • 以深思熟虑的方式缩放回归系数可以对回归系数的可解释性产生强大的影响。Andrew Gelman 对此进行了很多讨论。例如,参见他 2008 年的论文Scaling regression inputs by 除以两个标准差 (PDF),在Statistics in Medicine , 27, 2865-2873 中。
  • 将男性和女性编码为 -1 和 +1 是另一种可以提供有意义系数的选项(请参阅“什么是效果编码”)。

它使解释结果更容易。假设您有一些身高数据:

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 虚拟变量,您将得到 160 的估计值,a这更难解释。

本来以为是因为常用于存储性别的字段类型是位字段,而SQL中的位字段只能有0或1的值。当你dump出数据时,它出来的是0或1,而所以这就是为什么你会得到那些特定的值。

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

我有一位教授建议我们“生物学”编码,女性为 0,男性为 1——以反映解剖学。我不认为这是在课堂上说的最敏感或 PC 的事情,但在 5 年后查看数据集时绝对容易记住。