worstcod/decision-coach
GitHub: worstcod/decision-coach
这是一个利用蒙特卡洛模拟帮助用户在不确定条件下做出更好决策的浏览器应用。
Stars: 0 | Forks: 0
# 决策教练 – 快速概览
## 应用功能是什么?
决策教练帮助您在多个选项(例如,两份工作机会、两个投资想法)之间做出选择。它通过将**定性因素**——如薪资、风险或幸福感——转化为数字,然后运行一次**蒙特卡洛模拟**。该模拟探索数千种可能的未来场景,并告诉您哪个选项具有最高的成功概率。
## 数学原理 – 通俗易懂版
1. **定义因素**
* 对于每个因素,您决定数值**越高**是**好**(例如,薪资)还是**差**(例如,通勤时间)。
* 您还需分配一个**权重**,表示该因素与其他因素相比的重要程度。
2. **为每个因素给出三个估计值**(针对每个选项)
* **最坏情况** – 您可能看到的最低现实值。
* **最可能值(众数)** – 您最期望发生的数值。
* **最佳情况** – 最高的现实值。
* 这三个数字描述了一个**三角分布**——一种建模不确定性的简单方法。
3. **蒙特卡洛模拟**
* 引擎重复以下步骤 **2000次**(或您设置的任意次数):
1. 对于每个选项的每个因素,它从您提供的三角分布中**随机选取一个数值**。
2. 如果因素标记为*"越低越好"*,引擎会**翻转该数值**,使得低数值变为高分。
3. 采样值乘以该因素的**归一化权重**(权重 ÷ 总权重),并加到该选项的总体**得分**中。
* 每次迭代后,我们得到每个选项的一个**得分**。
* 最后,我们计算每个选项获得最高分的次数——该比率即显示给用户的**获胜概率**。
4. **风险特征(可选)**
* 模拟可根据您的风险承受能力(风险厌恶、中性、风险偏好)应用一个简单的**效用函数**。
* 这会改变得分的聚合方式——例如,风险厌恶特征会惩罚那些最坏情况采样值非常差的选项。
## 为什么这很重要
* 通过使用一个**范围**而非单个数字,您捕捉到了现实生活中固有的不确定性。
* **蒙特卡洛**方法能快速评估数千种"可能世界",为您提供有统计依据的建议,而非仅凭直觉。
* **权重**确保更重要的因素(例如,薪资)比不太重要的因素(例如,通勤时间)对结果影响更大。
## 快速参考表
| 步骤 | 您提供什么 | 如何使用 |
|------|------------|----------|
| 1️⃣ 定义因素 | 名称、权重、是否为正向、单位 | 决定得分的重要性与方向 |
| 2️⃣ 给出估计值 | 每个选项-因素的最坏/最可能/最佳值 | 构建用于随机抽样的三角分布 |
| 3️⃣ 运行 | 点击 *分析决策* | 执行2000次蒙特卡洛抽样,计算获胜概率 |
| 4️⃣ 可选项 | 选择风险特征 | 根据风险厌恶或风险偏好行为调整效用函数 |
## 技术说明(面向开发者)
* **三角分布抽样** 由 `sampleTriangular(min, mode, max)` 执行。
* **权重归一化** 每次运行执行一次:`normWeight = weight / totalWeight`。
* **负方向因素** 通过计算该因素可能的最大值,并使用 `maxValue - sample` 来翻转得分。
* 结果存储为包含 `scores`(得分)、`winProbability`(获胜概率)和获胜选项ID的对象。
欢迎深入查看 `src/math-engine/index.js` 以了解确切实现——它是一组纯 JavaScript 函数,使整个应用保持在客户端运行且快速。
标签:SEO检索词, 三角分布建模, 不确定性量化, 个人工具, 决策支持, 在线工具, 多模态安全, 定性因素量化, 投资决策, 效用理论, 数据可视化, 数据驱动决策, 概率分析, 模拟工具, 浏览器应用, 生活规划, 职业选择, 自定义脚本, 蒙特卡洛模拟, 风险调整