敏感性分析器Skill sensitivity-analyzer

敏感性分析器是一个用于量化金融、商业决策和模型评估的专业工具。它通过单因素分析、全局敏感性分析(如Sobol指数和Morris筛选法)等方法,系统地识别影响模型输出的关键输入参数,评估参数不确定性对结果的影响。该技能能生成龙卷风图、蛛网图等可视化图表,进行参数重要性排序和盈亏平衡分析,帮助用户理解模型行为、优化决策并管理风险。关键词:敏感性分析,模型评估,不确定性分析,Sobol指数,Morris筛选,龙卷风图,参数重要性,盈亏平衡分析,决策支持,量化金融。

风险管理 0 次安装 8 次浏览 更新于 2/25/2026

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 (二阶) 成对的交互效应

可视化类型

  1. 龙卷风图:显示影响范围的横向条形图
  2. 蛛网图:显示输出与每个输入百分比变化关系的线图
  3. 散点图:输出与单个输入的关系图,带趋势线
  4. Sobol条形图:一阶和总效应指数的比较
  5. 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": ["字符串"]
}

最佳实践

  1. 对于多参数(>10),从Morris筛选法开始
  2. 对顶级参数使用Sobol指数进行详细分析
  3. 当存在参数相关性时,将其纳入考虑
  4. 报告敏感性指数的置信区间
  5. 考虑非线性效应(总效应与一阶指数)
  6. 使用龙卷风图向管理层传达结果
  7. 记录参数范围及其合理性

解读指南

Sobol指数解读

  • 高S1,高ST:重要的直接影响
  • 低S1,高ST:通过交互作用产生重要影响
  • 高S1,低ST-S1:交互作用较少
  • 低ST:参数可固定为标称值

盈亏平衡分析

识别参数值达到以下情况的点:

  • NPV = 0
  • 利润 = 0
  • 决策改变
  • 阈值被跨越

集成点

  • 从蒙特卡洛引擎接收模型
  • 为决策可视化提供图表数据
  • 支持MCDA方法的权重敏感性分析
  • 与实物期权分析器连接,分析波动性影响