name: sensitivity-analyzer description: 用于识别关键输入并理解模型在不确定性下行为的敏感性分析技能 allowed-tools:
- Read
- Write
- Glob
- Grep
- Bash
metadata:
specialization: 决策智能
domain: 商业
category: 模拟
priority: high
shared-candidate: true
tools-libraries:
- SALib
- openturns
- sensitivity
- numpy
敏感性分析器
概述
敏感性分析器技能提供了全面的能力,用于识别关键输入并理解模型输出如何响应参数变化。它支持局部(单因素)和全局敏感性分析方法,能够在不确定性下实现稳健的决策。
能力
- 单因素(OAT)敏感性分析
- 全局敏感性分析(Sobol指数, Morris筛选法)
- 龙卷风图生成
- 蛛网图创建
- 参数重要性排序
- 阈值识别
- 盈亏平衡分析
- 情景比较
使用流程
- 用于决策支持的蒙特卡洛模拟
- 多准则决策分析(MCDA)
- 规范性分析与优化
- 假设分析框架
使用方法
单因素(OAT)分析
# 定义OAT分析
oat_config = {
"base_case": {
"price": 100,
"volume": 10000,
"cost": 60,
"fixed_costs": 200000
},
"variations": {
"price": {"range": [-20, 20], "step": 5, "unit": "%"},
"volume": {"range": [-30, 30], "step": 10, "unit": "%"},
"cost": {"range": [-15, 15], "step": 5, "unit": "%"},
"fixed_costs": {"range": [-10, 10], "step": 5, "unit": "%"}
},
"output_variable": "profit"
}
全局敏感性(Sobol指数)
# 定义Sobol分析
sobol_config = {
"parameters": {
"price": {"bounds": [80, 120], "distribution": "uniform"},
"volume": {"bounds": [7000, 13000], "distribution": "uniform"},
"cost": {"bounds": [50, 70], "distribution": "uniform"}
},
"sample_size": 10000,
"calculate_second_order": True
}
Morris筛选法
针对多参数的高效筛选方法:
- 识别影响可忽略的参数
- 区分线性与非线性的影响
- 检测交互效应
敏感性指数
| 指数 | 含义 |
|---|---|
| S1 (一阶) | 参数的直接影响 |
| ST (总效应) | 直接影响 + 所有交互效应 |
| S2 (二阶) | 成对的交互效应 |
可视化类型
- 龙卷风图:显示影响范围的横向条形图
- 蛛网图:显示输出与每个输入百分比变化关系的线图
- 散点图:输出与单个输入的关系图,带趋势线
- Sobol条形图:一阶和总效应指数的比较
- Morris图:基本效应的均值与标准差
输入模式
{
"analysis_type": "OAT|sobol|morris|breakeven",
"model": "函数或表达式",
"parameters": {
"param_name": {
"base_value": "数值",
"range": ["数值", "数值"],
"distribution": "字符串"
}
},
"options": {
"sample_size": "数值",
"output_variable": "字符串",
"calculate_interactions": "布尔值",
"confidence_level": "数值"
}
}
输出模式
{
"analysis_type": "字符串",
"parameter_rankings": [
{
"parameter": "字符串",
"importance_score": "数值",
"effect_direction": "positive|negative",
"first_order_index": "数值",
"total_index": "数值"
}
],
"breakeven_points": {
"parameter": {
"breakeven_value": "数值",
"current_distance": "数值"
}
},
"interactions": [
{
"parameters": ["字符串", "字符串"],
"interaction_index": "数值"
}
],
"tornado_data": {
"parameter": {
"low_output": "数值",
"high_output": "数值",
"swing": "数值"
}
},
"visualization_paths": ["字符串"]
}
最佳实践
- 对于多参数(>10),从Morris筛选法开始
- 对顶级参数使用Sobol指数进行详细分析
- 当存在参数相关性时,将其纳入考虑
- 报告敏感性指数的置信区间
- 考虑非线性效应(总效应与一阶指数)
- 使用龙卷风图向管理层传达结果
- 记录参数范围及其合理性
解读指南
Sobol指数解读
- 高S1,高ST:重要的直接影响
- 低S1,高ST:通过交互作用产生重要影响
- 高S1,低ST-S1:交互作用较少
- 低ST:参数可固定为标称值
盈亏平衡分析
识别参数值达到以下情况的点:
- NPV = 0
- 利润 = 0
- 决策改变
- 阈值被跨越
集成点
- 从蒙特卡洛引擎接收模型
- 为决策可视化提供图表数据
- 支持MCDA方法的权重敏感性分析
- 与实物期权分析器连接,分析波动性影响