我有一个非常偏斜的一维随机变量。为了规范这个分布,我想使用中位数而不是平均值。我的问题是:我可以使用公式中的中位数而不是平均值来计算分布的方差吗?
即我可以更换
和
我对此的推理是,由于方差是分布的集中趋势的传播量度,它不应该是一个问题,但我正在寻找验证这个逻辑。
我有一个非常偏斜的一维随机变量。为了规范这个分布,我想使用中位数而不是平均值。我的问题是:我可以使用公式中的中位数而不是平均值来计算分布的方差吗?
即我可以更换
和
我对此的推理是,由于方差是分布的集中趋势的传播量度,它不应该是一个问题,但我正在寻找验证这个逻辑。
均值最小化平方误差(或 L2 范数,请参阅此处或此处),因此自然选择方差来测量与均值的距离是使用平方误差(请参阅此处了解我们为何对其进行平方)。另一方面,中位数使绝对误差(L1 范数)最小化,即它是一个位于数据“中间”的值,因此与中位数的绝对距离(所谓的中位数绝对偏差或 MAD)似乎是更好地衡量中位数附近的变异程度。您可以在此线程中阅读有关此关系的更多信息。
简而言之,方差与 MAD 的不同之处在于它们如何定义数据的中心点,这会影响我们测量其周围数据点变化的方式。平方值使得异常值对中心点(均值)的影响更大,而在中位数的情况下,所有点对其影响相同,因此绝对距离似乎更合适。
这也可以通过简单的模拟来显示。如果您比较平均值和中位数的平方距离,那么总平方距离与平均值的距离几乎总是小于与中位数的距离。另一方面,总绝对距离离中位数更小,然后离平均值更小。用于进行模拟的 R 代码发布在下面。
sqtest <- function(x) sum((x-mean(x))^2) < sum((x-median(x))^2)
abstest <- function(x) sum(abs(x-mean(x))) > sum(abs(x-median(x)))
mean(replicate(1000, sqtest(rnorm(1000))))
mean(replicate(1000, abstest(rnorm(1000))))
mean(replicate(1000, sqtest(rexp(1000))))
mean(replicate(1000, abstest(rexp(1000))))
mean(replicate(1000, sqtest(runif(1000))))
mean(replicate(1000, abstest(runif(1000))))
在估计这种“方差”时使用中位数而不是均值的情况下,这将导致比传统上使用均值更高的估计值。
顺便说一句,L1 和 L2 范数的关系也可以在贝叶斯上下文中考虑,就像在这个线程中一样。