You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:24:03