Sensitivity Analysis

Sobol' Sensitivity Analysis
该分析包括以下几个步骤:
1. 确定模型输入(参数)及其样本范围。
2. 运行sample函数来生成模型输入。
3. 使用生成的输入评估模型,保存模型输出。
4. 在输出上运行analyze函数来计算灵敏度指数。
#***********************************************************
#1.使用Saltelli对Sobol序列的扩展生成模型输入。
SALib.sample.saltelli.sample(problem: Dict, N: int, calc_second_order: bool = True, skip_values: Optional[int] = None)
#2. 对模型输出执行Sobol分析。
使用 Saltelli 的采样方案返回包含模型输入的 NumPy 矩阵。 Saltelli 的方案扩展了 Sobol' 序列,以降低所得灵敏度指数计算中的错误率。 如果 calc_second_order 为 False,则生成的矩阵有 N * (D + 2) 行,其中 D 是参数的数量。 如果 calc_second_order 为 True,则生成的矩阵有 N * (2D + 2) 行。 这些模型输入旨在与 SALib.analyze.sobol.analyze() 一起使用。
Sobol' 序列的初始点有一些重复(参见 Campolongo中的表 2),可以通过设置 skip_values 参数来避免。 据报道,跳跃值提高了样品的均匀性。 然而,已经表明,天真地跳过值可能会降低准确性,增加实现收敛所需的样本数量(参见 Owen [2])。
这里采用的建议是 skip_values 和 N 都是 2 的幂,其中 N 是所需的样本数。 其中还建议 skip_values >= N。
该方法现在默认将 skip_values 设置为 >= N 的 2 次幂。如果提供了 skip_values,则该方法现在会在样本量根据上述建议可能不是最佳的情况下引发 UserWarning。
SALib.analyze.sobol.analyze(problem, Y, calc_second_order=True, num_resamples=100, conf_level=0.95, print_to_console=False, parallel=False, n_processors=None, keep_resamples=False, seed=None)
返回带有键“S1”(the first-order sensitivity indices)、“S1_conf”、“ST”(the total-order sensitivity indices)和“ST_conf”的字典,其中每个条目都是大小为 D(参数数量)的列表,其中包含与参数文件顺序相同的索引。 如果 calc_second_order 为 True,则字典还包含键“S2”和“S2_conf”。_conf 键存储相应的置信区间,通常置信度为 95% (conf_level=0.95)。

Campolongo, F., Saltelli, A., & Cariboni, J. (2011). From screening to quantitative sensitivity analysis. A unified approach. Computer Physics Communications, 182, 978-988

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值