如何在R语言中基于概率分布计算离散随机变量的中位数
R语言计算带概率权重的离散变量中位数
你之前调用median(y)得到的是概率向量y本身的中位数,和随机变量X的中位数完全是两个概念。离散随机变量的中位数定义是满足P(X≤m)≥0.5 且 P(X≥m)≥0.5的最小取值m,你可以用以下两种方法计算:
方法1:手动计算累积分布实现
# 你的测试数据 x <- 1:5 y <- c(0.3, 0.05, 0.25, 0.25, 0.15) # 计算累积概率 cum_p <- cumsum(y) # 取第一个累积概率≥0.5对应的x值 median_x <- x[which(cum_p >= 0.5)[1]] print(median_x) # 输出为3,和你手动计算的结果一致
方法2:使用内置加权中位数函数
可以直接调用R基础包自带的weighted.median函数,传入x作为取值、y作为概率权重即可:
median_x <- weighted.median(x, w = y) print(median_x) # 同样输出3
内容的提问来源于stack exchange,提问作者yoyo
相关产品推荐
相关产品推荐

