如何在R中为正态分布CCDF图添加马尔可夫不等式曲线?
在R中叠加马尔可夫不等式曲线到CCDF图
实现步骤
- 计算马尔可夫不等式上界:马尔可夫不等式要求随机变量非负,你的正态分布均值远大于标准差,样本值均为正,满足应用条件。公式为 ( P[X \geq k] \leq \frac{E[X]}{k} ),这里可直接用理论均值
27947623或样本均值mean(n01)计算上界。 - 生成不等式曲线数据:基于已有CCDF的x值,逐个计算对应的上界值 ( \frac{E[X]}{x} )。
- 叠加绘图:先绘制原CCDF曲线,再用
lines()函数添加马尔可夫不等式曲线,最后用图例区分两条线。
完整代码
# 生成正态分布样本数据 n01 <- rnorm(1000, mean = 27947623, sd = 575.839) # 计算ECDF并转换为CCDF数据框 ecdf_n01 <- ecdf(n01) ccdf <- data.frame(x = sort(n01), y = 1 - ecdf_n01(sort(n01))) # 计算马尔可夫不等式上界(这里用理论均值,也可替换为mean(n01)) markov_upper <- with(ccdf, 27947623 / x) # 绘制CCDF曲线 plot(ccdf, type = "l", col = "blue", lwd = 2, xlab = "X", ylab = "P(X ≥ x)", main = "CCDF与马尔可夫不等式上界对比") # 叠加马尔可夫不等式曲线(虚线样式) lines(ccdf$x, markov_upper, col = "red", lty = 2, lwd = 2) # 添加图例 legend("topright", legend = c("CCDF", "马尔可夫不等式上界"), col = c("blue", "red"), lty = c(1, 2), lwd = 2)
说明
红色虚线是马尔可夫不等式给出的概率上界,始终位于CCDF曲线上方,符合不等式“概率不超过该上界”的结论。
内容的提问来源于stack exchange,提问作者pnlp
相关产品推荐
相关产品推荐

