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

如何基于直方图中的点位计算商品整体盈利概率?

计算蒙特卡洛模拟下的商品盈利概率

问题背景

  • 变量定义:norm = 蒙特卡洛生成的估计价格,norm2 = 卖家的实际报价价格
  • 通过蒙特卡洛模拟生成了100个估计价格(注:示例代码中实际生成1000个,可按需调整数量),对应直方图的关键标注:
    • 橙色实线:实际报价价格
    • 绿色点虚线:估计价格的均值
    • 红色长虚线:均值±1标准差区间
  • 已知估计价格落在±1标准差区间的概率为68%,由于实际报价位于-1标准差线下方,可判断盈利概率(估计价格>实际报价)高于68%,需计算具体概率值。

盈利概率计算逻辑

盈利的核心判定条件是估计价格 > 实际报价,直接统计蒙特卡洛生成的所有估计价格中满足该条件的样本比例,即可得到基于模拟结果的经验盈利概率。

包含概率计算的R代码

library(ggplot2)
library(tidyverse)

# 生成蒙特卡洛模拟数据
normalDist = data.frame(
  norm = rnorm(1000, mean = 1, sd = 2),  # 生成1000个估计价格
  norm2 = rnorm(1000, mean = 0.9, sd = 2)
)

# 随机抽取1个实际报价
actual_price = sample(normalDist$norm2, 1)

# 计算估计价格的均值与标准差
est_mean = mean(normalDist$norm)
est_sd = sd(normalDist$norm)

# 计算盈利概率:统计估计价格大于实际报价的样本占比
profit_prob = mean(normalDist$norm > actual_price)
cat("商品盈利概率为:", round(profit_prob * 100, 2), "%\n", sep = "")

# 绘制带标注的直方图
normalDist %>% 
  ggplot() +
  geom_histogram(aes(x = norm), bins = 20, fill = "skyblue", color = "black") +
  geom_vline(xintercept = c(actual_price, est_mean, est_mean - est_sd, est_mean + est_sd),
             linetype = c("solid", "dotdash", "longdash", "longdash"),
             size = c(2, 1, 1, 1),
             color = c("darkorange", "darkgreen", "darkred", "darkred")) +
  # 在图中添加盈利概率标注
  annotate("text", x = Inf, y = Inf, hjust = 1.1, vjust = 1.5,
           label = paste("盈利概率:", round(profit_prob * 100, 2), "%"),
           color = "darkorange", size = 4) +
  theme_bw()

代码说明

  • mean(normalDist$norm > actual_price):利用逻辑向量的特性,直接计算满足条件的样本占比,得到的就是模拟场景下的盈利概率
  • 代码中通过cat()直接输出概率数值,同时用annotate()在直方图右上角标注结果,提升可读性
  • 变量名做了更清晰的命名,便于理解和后续修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:01:19