在数学建模的评价类问题中,灵敏度分析是一个重量级的评价方法,尤其是针对规划问题,是一定要在建模后对模型进行灵敏度分析的,用来检验模型的稳定性。
通过阅读历年美赛的O奖论文可以发现,大部分文章最后都会进行灵敏度的分析,或多或少,而美赛官方评审规则第(5)条也有明确要求:是否对模型进行了稳定性测试,因此灵敏度分析对赛题评奖至关重要。
1
灵敏度是什么?
1、概念
灵敏度分析是研究与分析一个系统(或模型)的状态或输出变化对系统参数或周围条件变化的敏感程度的方法。在最优化方法中经常利用灵敏度分析来研究原始数据不准确或发生变化时最优解的稳定性。通过灵敏度分析还可以决定哪些参数对系统或模型有较大的影响。因此,灵敏度分析几乎在所有的运筹学方法以及在对各种方案进行评价时都是很重要的。
2、灵敏度的应用
投入产出法中灵敏度分析
可以用来研究采取某一项重大经济政策后将会对国民经济的各个部门产生怎样的影响。例如,美国政府曾经利用投入产出表研究了提高职工工资10%对国民经济各部门商品价格的影响。研究的结果表明,在职工工资增加10%时,建筑业产品的价格将上涨7%,农产品的价格将上涨1.3%,其余各部门产品价格将上涨1.3~7%不等,生活费用将上升3.8%,职工的实际得益为6.2%。
方案评价中灵敏度分析
可以用来确定评价条件发生变化时备选方案的价值是否会发生变化或变化多少。例如,在利用评价表进行评价时,需要确定每一个分目标的权重系数和各分目标的评分数。这中间或多或少地会存在当事人的主观意识,不同的人可能会有截然不同的价值观念。因此就必须考虑当分配的权重系数或评分数在某一个范围内变化时,评价的结果将会产生怎样的变化。
定货批量的灵敏度分析
在分析整批间隔进货模型中,经济订货批量Q可用下式计算:
式中D为单位时间需求量,K为每次订货的固定费用,h为单位时间内每单位物资的保管费。它们一般都是根据统计资料估算的,与实际情况有所出入,需要进行灵敏度分析。用D 1 ,K 1 ,h 1 和Q分别表示实际的需求量、订货量、保管费和调整后的经济订货批量。Δ D ,Δ K ,Δ h 和Δ Q 分别代表需求量、订货量、保管费和经济订货批量的相对变化值,即:
通过计算后可得
代入具体的数值后便可用上式说明 Δ D Δ K 和Δ h 对订货批量的综合影响程度。
2
经典案例
案例说明:
一头牛重200斤,每天增重5斤,饲料每天花费45元。牛的市场价是每斤65元,但目前行情不好,每天下降1元,求出这头牛的最佳销售时间。
这是一个很简单的单变量优化问题。求这头牛的最佳销售时间,就是求卖出价格最高的时间,为了求出这个时间,我们假设:
销售时间 t
牛的重量 w
牛的价格 p
饲料花费 C
卖出牛的收益 R
净收益 P
于是有, P = R − C ,其中, R = p ⋅ w , C = 45 t ,即得到净收益模型如下:
P = ( 65 − t ) ( 200 + 5 t ) − 45 t …………………………………(1)
容易得出当 t = 8 时,P 取最大值13320元。
其实,大多数情况下,问题到这里就已划上句号。但现实生活中,稍微细心一点,我们会发现,在上述模型的参数中,牛的重量,当前市场价格、每天饲料钱3个参数都是很容易测量的,即确定性较大,但牛的生长率和市场价格的下降率2个参数则不是那么好确定,例子中虽然规定了市场价格下降率r = 1 元/天,但实际中,每天的 r 都是不一样的。于是我们会有一个疑惑——是不是对于所有的市场价格下降率,这个模型都适用?
为了消除疑惑,我们分别随便选取原下降率(1元/天)周围的几个数r = 0.8 , 0.9 , 1.0 , 1.1 , 1.2 来进行研究。
根据公式(1),分别得出 [公式] ,得下图:
从图中可以看出,牛最佳卖出时间 t 随着市场价格下降率 r 的变化而变化,这时候我们称:牛的卖出最佳时间 t 对市场价格下降率 r 是敏感的!
但是究竟有多敏感,就要进行灵敏度分析(敲黑板!!!划重点!!!)。
灵敏度分析,就是将市场价格下降率 r 作为未知参数,计算最佳卖出时间 t 和 r 关系。这时候,将例子中的“每天下降1元”改成“每天下降 r 元”,净收益模型就变成:
P = ( 65 − r t ) ( 200 + 5 t ) − 45 t
P 对 t 求导,
至此,我们已经得到了一种灵敏性关系——r − t 关系,绘制 r − t 关系图如下:
公式(2)和上图的意义在于—作为牛贩子,我能确定一个r-t关系,确保我在不同r下,都能确定最佳卖牛时间 t。当0
然而,在实际使用中,我们更多地是将这种灵敏性关系表示成相对改变量或百分比改变的形式。例如, r 的10%的下降,导致了 t 的38%的增加。如果 t 的改变量为 ,则 t 的相对改变量为 ,百分比改变量为,如果 r 改变了 ,导致 t 有 的改变量,则相对改变量的比值为与 的比值,令 ,由导数定义,有业内,称极限值就是 t 对 r 的灵敏性,记为 。
3
灵敏度的作用
比如,在这个例子中,有在点 r=1 和 t=8 ,
也就是说,在点= ,若市场价格下降率 增加 1%,则最佳卖牛时间 t 下降3.5%。
本例仅分析了市场价格下降率和最佳卖牛时间的灵敏性关系,但可能还存在其他的关系,比如牛的重量增长率和最佳卖牛时间的关系等,灵敏性分析的成功需要分析者具有较好的判断力,通常我们不需要对模型中的每个参数都进行灵敏性分析,只需要选择那些有较大不确定性的参数进行灵敏性分析即可。
如何判断灵敏度分析的效果?
先摆出结果:
如果你改变了系统参数后,引起这个模型(公式)输出的变化的程度不大,则说明你的模型稳定性较强(即灵敏性较差),反之则反!
可以看出,r 改变了1%,t 仅下降3.5%,这个改变很小,这就可以说明模型较为稳定;若 r 改变了1%,t 下降了35%,那这个模型是不稳定的!
通过灵敏度分析能够验证模型的稳定性,提高论文的说服力!
4
灵敏度分析的方法
主要有两种分析灵敏度的方法:局部敏感性分析、全局敏感性分析
局部灵敏度分析是基于 (偏)导数 的分析。该方法适用于简单的成本函数,不适用于复杂模型,因为多数复杂模型目标函数不总连续。
局部敏感度分析是一项 一次性 (OAT)技术,可以一次分析一个参数对成本函数的影响,同时保持其他参数不变。
全局灵敏度分析通常使用蒙特卡洛技术实现。这种方法使用了一组全局样本来探索设计空间。
5
案例分析
下面是2020国赛C题一等奖小伙伴的论文,在第五部分进行了灵敏度分析,其在进行贷款策略的计算时,事先将银行年度贷款的额度进行了限制(因为每个银行的贷款额度往往是无法准确核算的),但年度贷款总额的变动是否会对信贷策略有影响呢?作者在灵敏度分析部分分别选择了不同的信贷总额来衡量信贷策略的效果(以银行年度利润为准),结果显示银行年度利润的变动与其年度信贷总额并无明显的关系,因此可以说明模型的灵敏度较低,稳定性较强。
在建模过程中,如果发现结果随参数的改变而改变,并且变动幅度较大则说明改参数对模型的影响程度较大,不易将其作为常数处理,如果变动较小,则意味着该参数对结果影响较小,可以不予单独考虑
那在建模中,到底哪些模型或者问题会让我们做灵敏度分析呢?其实本身来说灵敏度分析并不特定针对任何模型,它针对的是模型假设,如果在你的假设中存在某些因观测条件不足、数据获取困难等因素被限定的参数,则往往需要进行灵敏度分析,及将该参数取不同的数值判断结果的变动程度。
灵敏度分析常见于优化或预测类问题,在优化中经常会将决策变量前面的参数直接取值,如运费的价格、物料的成本等,但事实上价格成本等因素受市场波动很大,因此需要进行稳定性测试;而预测类问题由于对未来情况的不确定性,往往对相关指标进行限定,如死亡率、移民率等,则需要进行对其进行灵敏度的分析。