【MATLAB第108期】基于MATLAB的带置信区间的RSA区域敏感性分析方法,无目标函数
参考第64期文章【MATLAB第64期】【保姆级教程】基于MATLAB的SOBOL全局敏感性分析模型运用(含无目标函数,考虑代理模型)
创新点:
1、采用两种方法计算待置信区间的敏感性值
(1)通过对输出值设置阈值条件,绘制不同变量X与Y之间满足和不满足条件样本的累积分布函数(CDF),检查参数变化范围,并根据CDF之间的最大垂直距离绘制敏感度值。并使用自举法重复收敛分析以得出置信区间。
2、 将输入样本拆分为与输出等距范围相对应的"n组"数据集(Wagener等人于2001年首次提出),通过CDF之间最大垂直距离的统计量(最大值或中值)来评估不同数据集中X的CDF之间的距离,计算区域敏感度值。
1、建立代理模型
(1)数据设置:常用的案例数据 ,103*8 ,前7列代表输入变量, 最后1列代表因变量。
(2)数据变量上下限
X1-X7的最小值为:[137 0 0 160 4.4 708 650]
X1-X7的最大值为:[374 193 260 240 19 1049.90 902]
(3)代理模型选择:BP
2、数据抽样
matlab
SampStrategy = 'lhs' ; % 拉丁超立方抽样
N = 400 ; % 样本数
Y = model_evaluation(myfun,X) ;
3、阈值设置
绘制输出样本(Y)与输入向量样本的一个分量(即X的一列)的关系,并对输出值设置阈值。
如阈值设置为20,如下图所示 :
X1-X7变量, 横坐标对应的是不同变量的数值范围,纵坐标代表Y的数值范围。
(1)绘制数据集X中满足给定阈值条件和不满足条件的CDF图
(2)通过平行坐标图检查行为参数化的范围
4a、绘制灵敏度指数(带阈值)
(1)参数CDF之间的最大垂直距离绘制
(2)并通过bootstrapping自举法评估鲁棒性,使用越来越多的样本重复计算,以评估收敛性,重复收敛分析以得出置信区间
4b、绘制灵敏度指数(分组法)
将数据集X中的样本拆分为与Y的'ngroup'等距值对应的'nggroups'子集。
然后,它通过CDF之间最大垂直距离的统计量(最大值或中值)来评估不同数据集中X的CDF之间的距离。
(1)将输入样本拆分为与输出等距范围相对应的"n组"数据集
(2)绘制参数CDF,自定义标签和图例:
5、代码获取
1.阅读首页置顶文章
2.关注CSDN
3.根据自动回复消息,私信回复"109期"以及相应指令,即可获取对应下载方式。