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

如何为R语言鞅策略模拟结果图添加置信区间?

解决方法

首先修正代码中的关键问题,再添加置信区间的绘图逻辑:

1. 修正置信区间计算与存储

原代码中Lo的计算公式有误,且未保存所有概率对应的置信区间值,需调整如下:

# 初始化向量,存储所有概率对应的均值、上下置信区间
x <- seq(.2, .6, .01)
m <- c()
Up <- c()
Lo <- c()
n <- 1000

for (i in x){
  a <- replicate(n, martingala(100, 10, 500, i))
  current_mean <- mean(a)
  current_se <- sd(a)/sqrt(n)
  m <- c(m, current_mean)
  # 修正置信区间计算逻辑
  Up <- c(Up, current_mean + 1.95 * current_se)
  Lo <- c(Lo, current_mean - 1.95 * current_se)
}

2. 添加置信区间到图表

以下提供三种常见的展示方式:

方式一:绘制上下置信区间线条

先绘制均值曲线,再用lines()添加置信区间线条:

plot(x, m, type = "l", main = "Martingala probabilidad variable", 
     xlab = "Probabilidad", ylab = "Ganancia media", lwd = 2)
# 添加上置信区间线条
lines(x, Up, col = "red", lty = 2)
# 添加下置信区间线条
lines(x, Lo, col = "blue", lty = 2)
# 添加图例
legend("topleft", legend = c("Ganancia media", "Intervalo de confianza superior", "Intervalo de confianza inferior"),
       col = c("black", "red", "blue"), lty = c(1, 2, 2), lwd = c(2,1,1))

方式二:填充置信区间区域(更直观)

用polygon()填充均值上下的置信区间区域:

plot(x, m, type = "l", main = "Martingala probabilidad variable", 
     xlab = "Probabilidad", ylab = "Ganancia media", lwd = 2)
# 填充置信区间半透明区域
polygon(c(x, rev(x)), c(Up, rev(Lo)), col = rgb(0.7, 0.7, 0.7, 0.3), border = NA)
# 重新绘制均值线,确保在填充区域上方
lines(x, m, lwd = 2)
# 添加图例
legend("topleft", legend = c("Ganancia media", "Intervalo de confianza 95%"),
       col = c("black", rgb(0.7,0.7,0.7)), lty = c(1, NA), pch = c(NA, 15), lwd = 2)

方式三:添加垂直误差棒

用segments()为每个概率值添加误差棒:

plot(x, m, main = "Martingala probabilidad variable", 
     xlab = "Probabilidad", ylab = "Ganancia media", pch = 16)
# 添加误差棒
segments(x, Lo, x, Up, col = "gray")
# 重新绘制均值点,确保在误差棒上方
points(x, m, pch = 16, col = "black")

额外说明

  • 1.95对应95%置信区间的临界值,与你的代码逻辑一致
  • 原martingala函数中,赢局时的betsize <- betsize可简化为不修改变量,不影响运行结果

内容的提问来源于stack exchange,提问作者BehSci

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:46:26