什么时候中位数的总和=总和的中位数

机器算法验证 随机变量 中位数
2022-04-07 05:54:11

我有两个由经验概率分布定义的随机变量(比如 x1 和 x2),并且想计算它们总和的中位数。

在什么情况下(就 x1 和 x2 的分布而言)我可以假设总和的中位数等于中位数的总和,即

中位数(x1)+中位数(x2)。(1)

我使用的另一种方法是随机生成 x1 和 x2 的大样本,然后计算中位数为

中位数(x1 样本 + x2 样本)。(2)

方法(1)更快,我需要多次进行此计算。在什么情况下方法 1 大致正确?他们是我第二种方法的替代品吗?

我看过这个问答如果总和的中位数或平均值大于加数的总和,这意味着什么?

---- 阅读评论后的补充信息

如果我们有两个正态分布的随机变量,那么总和的中位数大约是中位数的总和

N1 <- rnorm(10000, mean = 1, sd = 0.1)
N2 <- rnorm(10000, mean = 0)

# We expect an answer of 1 and get close

median(N1) + median(N2) #[1] 0.9918688
median(N1 + N2) #[1] 0.9962555

这不适用于指数变量

set.seed(2002)
e1 <- rexp(100000, 1)
e2 <- rexp(100000, 1)

median(e1) + median(e2) # expect 2* log(2) = 1.386 and get 1.374
median(e1 + e2) # expect 1.678 and get 1.668

那么,看看@glen_b 的评论,对称性是允许假设总和的中位数是中位数的总和的充分条件吗?

3个回答

其实我的评论并不完全正确,请允许我澄清一下;

一系列数字的中位数是通过将所有数字从小到大排序,然后找到中间的数字来计算的。这意味着当您更改 中的数字时,您也会更改排序,因此中位数会发生变化。因此(通常)你几乎总是可以假设: 但是至少有一个例外,无论何时的顺序(在将 添加到之后)不会改变,中位数也不会改变。例如,如果中的所有数字都相同,请参见此示例(用 R 编写):XX

MED(X+Y)MED(X)+MED(Y)
XYXXY

set.seed(42)
n <- 100 
x <- rnorm(n)
c <- x
y <- rnorm(n)

median(x+y)           # 0.0767433
median(x) + median(y) # 0.02050838
median(x + c)         # 0.1795935
median(x) + median(c) # 0.1795935

对于连续变量,以下是等价的

M(X+Y)=M(X)+M(Y)P[(XM(X))>(YM(Y))]=P[(XM(X))<(YM(Y))]
您可以从 X 和 Y 的联合分布几何上想象这一点。一半的质量需要位于线的两侧x+y=median(X)+median(Y)(或离散变量的质量相等)。

这意味着对于两个随机的 x 和 y,x比 y更高于 X 的中位数的概率低于 Y 的中位数等于,x 在 X 的中位数之上的概率小于 y 的概率低于中位数Y。

评论:这与其他评论平行,但它可能为您提供一种快速的方法来检查一个变量是否在另一个变量增加时精确地增加。

x如果和之间的Spearman 相关性y1,我相信中位数的总和是总和的中位数。在 R 中:

x = rexp(100);  y = sqrt(x)
median(x+y)
[1] 1.598729
median(x)+median(y)
[1] 1.598729
cor(x,y, meth="spearman")
[1] 1

评论中讨论的另一种情况(近似)是对称性:

 u = runif(100); z = rnorm(100)
 mean(u+z);  median(u+z)
[1] 0.5401409
[1] 0.5229718
mean(u)+mean(z)
[1] 0.5401409
median(u)+median(z)
[1] 0.5866283