(这是一篇大二时我的课程论文,就是结课时交的,所以不像期刊论文那样要求高。概率赋值我自己赋的,因为主要在于展示思路。肯定存在【很多】不足,欢迎大家提建议。当初我的代码资源都是在CSDN里找到的,自己改动了一些,已标明出处。)
(子时已到,睡觉睡觉(¦3[▓▓] )
基于故障树和贝叶斯网络模型的疫苗生产和保存的风险研究
内 容 摘 要
故障树理论可以从系统的角度,对风险产生的原因逐层分解,从而对风险和风险间的关联进行辨识。本文以疫苗生产和运输为例,构建了故障树模型,并用matlab软件中的贝叶斯网络工具箱,进行了贝叶斯网络的构建。故障树被转化为了贝叶斯网络结构,并引入专家评估方法来确定贝叶斯网络节点之间的条件概率,用于诊断和预测系统风险。能够通过基本节点发生的概率和中间节点发生的条件概率,得出最终顶事件,即导致疫苗的生产和保存出现问题的概率。此外,还能通过已知某节点已经发生,推测各基本事件导致该节点发生的可能性。当采取合适的措施,某风险事件的概率发生变化时,只需在程序中改动其概率,就可以快速得出新的其上层风险事件概率。对于风险的系统分析有应用价值。
关键词: 故障树 贝叶斯网络 风险预测 风险诊断
ABSTRACT
Fault tree theory can decompose the causes of risk layer by layer from a system perspective, so as to identify the risk. This paper used the risk assessment of vaccine production and transportation as an example, and constructed the Bayesian network construction by using the Bayesian network toolbox in MATLAB. The fault tree is transformed into a Bayesian network structure, and the expert evaluation method is introduced to determine the conditional probability between Bayesian network nodes for diagnosing and predicting the system risk. The final top event can be obtained through the probability of the basic node, that is, the probability of problems in the production and preservation of the vaccine. In addition, you can predict the possibility that each basic event leads to a node by knowing that the node has occurred. When appropriate measures are taken to change the probability of a risk event, the probability of a new upper risk event can be quickly obtained only by changing the probability in the program. It is useful for the systematic analysis of risks.
KEY WORDS: the fault tree; the Bayesian network; risk diagnosis; risk prediction
一、构建疫苗生产和保存系统风险故障树
树状图在分类学领域影响较大,故障树是一种描述故障的逻辑图,每个节点代表一种故障事件,“与”和“或”表示逻辑关系,子节点通常是父节点的原因。故障树具有条理清晰,将定性和定量相结合、适用范围广的特点。为了分析不同分支事件发展路径上的发生概率及产生的风险,宜采用图形演绎法构建故障树。这要求建树者必须熟悉所分析的项目,并尽可能全面地识别风险的种类和风险间的关联。
(一)选择顶事件
可以筛选出最重大的,最不想发生的或最值得研究的风险问题作为顶事件。如果想分析已发生风险的原因,就将已发生的风险设为顶事件。
(二)识别中间事件与基本事件
根据因果关系分析每一层风险事件发生的原因,层层推进,直到中间事件都分解为基本事件。基本事件如自然力的作用设备的影响、人的行为的识别等。
在风险辨识时,可以发放开放的问卷,如向管理层、操作层的工人们发放等,此外,结合疫苗生产的流程、日常运营维护的工作等,聘请专家进行风险识别,在数据库足够大时,还可以借助计算机技术,自动识别拓扑结构,获取贝叶斯网络。在建故障树时,风险的发生机理、模式和效应对事件间的关系的分析影响重要。管理人员要熟悉项目,详尽地收集资料。风险的概率由专家或管理人员基于过往的数据或类似项目的管理经验、实地考察得到的信息、事件相关工作的特征,收集整理信息时借助表1。建树的过程可以加深人员对风险的因果关系的认识,基于故障树就可以进行结构重要度分析,此时不考虑基本事件的概率,仅考虑结构上的重要度。
表1 风险的模式和影响分析表
风险类别 | 风险影响 | 发生频率 | 影响度 | 风险发生的原因 | 改进意见 | 负责部门 |
(三)生成故障树
本文以疫苗生产与保存风险为例,识别出表2的基本风险和表3的顶事件和中间事件风险。为了防止与程序中的节点数弄混淆,不用N进行编号。
表2 疫苗生产与保存风险的基本事件及其定义
节点编号 | 节点名称 | 节点中文解释 |
I | 人员的无菌操作培训不到位
| 人员净化操作规程、对区域的消毒、清洁和灭菌培训未做到位 |
J | 人员精密设备操作培训不到位
| 人员操作离心、超滤、层析的培训不到位 |
K | 超滤设备未及时保养和检查
| 对超滤膜等元件的检查,超滤设备的水压等检查不到位 |
L
| 离心设备未及时保养和检查
| 离心设备的制动装置灵敏性检查,盘动转鼓碰擦现象的检查不到位 |
M
| 原材料用量控制设备不准确
| 关键衡器、量具、仪表、记录和控制设备以及仪器未及时检查并校准 |
O | 原材料质量检查不到位
| 对原材料的质量检查不够及时,检测指标不够全面 |
P | 厂房温控系统未及时保养和检查 | 温控设备的调节温度速率检查,热电偶反馈等检查和保养不到位 |
Q | 厂房除菌系统未及时保养和检查
| 换气次数、尘埃数、沉降菌等检查不到位 |
R | 管理人员责任意识淡薄
| 管理人员的检查不够全面和到位 |
S | 监测机构失职
| 监测机构未能及时监测到故障发生,或监测到故障隐患但是未能及时向有关部门汇报情况并采取措施 |
表3 疫苗生产与保存风险的中间事件及其定义
节点编号 | 节点名称 | 节点中文解释 |
A | 疫苗的生产和保存风险
| 在疫苗的生产和保存阶段产生了一直伴随着疫苗厂的对疫苗生产的安全性和稳定性有不利影响的问题 |
B | 疫苗的生产风险
| 在疫苗的生产阶段产生了影响疫苗安全的隐患,并且这些隐患没有被解决 |
C | 疫苗的保存风险
| 在疫苗的保存阶段产生了影响疫苗安全的隐患,并且这些隐患没有被解决 |
D | 操作人员导致的风险
| 由于操作人员的行为或思想疏忽产生的风险 |
E
| 设备导致的风险 | 由于设备的工作状态不佳,稳定性弱导致的风险 |
F | 原材料导致的风险
| 由于原材料的质量、用量等不当导致的风险 |
G | 厂房环境导致的风险
| 由于厂房的温度、无菌条件等导致的风险 |
H | 故障控制不当导致的风险
| 由于故障管理不当导致的风险 |
绘制出的故障树模型如图1所示,其中“⊗”表示“与”门,“与”门下的事件同时发生,对上层节点(即子事件)影响较大,“⊕”表示“或”门,“或”门下的事件有一件发生,对上层节点(即子事件)影响就已经很大。
二、故障树向贝叶斯网络转化
(一)故障树向贝叶斯网络转化的方法
故障树的风险事件转化成了贝叶斯网络中的节点,事件间的连接关系转化成了贝叶斯网络中,由父节点指向子节点的有向弧[11]。故障树中的“与”“或”可以通过贝叶斯网络中,节点的条件概率的取值表示出来。如由图1转化为图2。
图2 疫苗生产和保存贝叶斯网络模型
(二)基本节点的概率和中间节点的条件概率的获取
在历史数据量足够大,足够齐全,足够可行的情况下,能够利用数据确定风险结构和参数的情况下,可以通过结构学习等数据分析方法,计算先行项集和后续项集的支持度、置信度、提升度等,处理后得到概率。
当研究不具备此条件时,可以通过专家评议方式确定各节点的风险概率。各位专家可以参照经验、历史资料等,经过独立评议和讨论,得出结果。这些结果结果综合处理后,确定贝叶斯网络图中的概率。
四、用Matlab程序实践
(一)环境配置
本文研究用的是Matlab2022B版。在Github上下载最新更改后的贝叶斯网络工具箱[13](Bayesian Networks Toolbox,BNT)https://github.com/bayesnet/bnt,借助此工具箱可实现贝叶斯网络结构学习、参数学习、推理和构建贝叶斯分类器,在贝叶斯学习编程方面非常灵活[14]。在程序编写时先将此工具箱添加到路径中。
以上文构建的故障树为例,编写代码如下。代码需复制到命令行窗口执行。
(二)输入风险节点
图4 定义风险节点代码
(三)建立父子节点间的关系
图5 建立父子节点间关系代码
父节点在前面,子节点写在后面。如dag([K,L],E)=表示K,L某种程度上会导致E。
(四)输出贝叶斯网络图
图6 概率赋值和出图代码
tabular_CPD设置各个变量的边缘概率[15],对于I和J这类底层事件,定义顺序是False True;即不发生的概率和发生的概率。对于D、E、F、G这类,前四个值表示其父节点状态为(FF,FT,TF,TT)下,其为F的概率,后四个值表示其为T的概率。其中每组的第一个布尔值代表第一个父节点的布尔值,每组的第二个布尔值代表第二个父节点的布尔值,如对于D,它的父节点有I、J,tabular_CPD中的前四个值依次是在IJ都不发生、I不发生J发生,I发生J不发生,IJ都发生下的D不发生的概率,后四个值表示在IJ都不发生、I不发生J发生,I发生J不发生,IJ都发生下的D发生的概率。对于B这样有3个父节点的,对于父节点状态依次为FFF FFT FTF FTT TFF TFT TTF TTT。
输出网络图结果如图7所示。
1对应的A事件是故障树的顶层事件,9对应的I事件、10对应的J事件等是基本事件,故障树中父节点在子节点的下方。而程序给出贝叶斯网络图时把顶层事件画在了下方,底层事件画在了上方,父节点画在了子节点的上方,但这并不影响我们理解。
(五)贝叶斯网络的预测推理
图8 贝叶斯网络预测推理代码
图9 贝叶斯网络预测推理结果
利用贝叶斯工具箱进行贝叶斯网络的预测推理。输入m.T即可查看在基本事件和其它节点的条件概率下,顶事件的概率,输出值依次为顶风险事件为F,即不发生的概率和顶事件为F,即不发生的概率和顶事件为T,即发生的概率。如果只想知道后者,可以输入m.T(2) 。
(六)贝叶斯网络的诊断推理
在已知顶事件发生的情况下,利用贝叶斯工具箱进行贝叶斯网络的预测推理,求出某底层事件导致系统故障的可能性。
图10 贝叶斯网络诊断推理代码
图11 贝叶斯网络诊断推理结果
图11的结果表示已知A发生的情况下,E不发生的概率为0.6632,发生的概率为0.3368。
通过对各基本事件后验概率的比较,我们可以预测是哪种底层事件导致了最终故障的发生。
(七)已知任何事件发生或不发生,求其它事件的概率
图12 已知事件状态求其它事件概率代码
图13 已知事件状态求其它事件概率结果
如图代码可以求出在已知A和B发生,C不发生的条件下计算E发生和不发生的概率。也可以输入bar(m.T)把概率用柱状图展示出来,如图14。
图14概率值对应的柱状图
(八)调整后求概率
在进行一定措施,导致某风险事件发生的概率发生了变化后,只需要在赋概率值时进行调整,其它事件对应的概率相应改变,非常方便快捷。可以参照此推断改进哪些风险,对系统的改善效果最好。
五、局限性
(一)数据方面
当节点数较多时,需要修改程序,将数据存放到.mat下,进行调用。此外当一个节点对应的情况不止有“是”和“否”,如以“不发生”“轻度”“中度”“严重”来分类风险节点的状态取值时,这种算法就需要改进了。
在实践中,底层事件的概率,中间事件的条件概率的获取难度较大。当底层事件的概率,中间事件的条件概率是一个参数时,本程序需要较大改动。
(二)风险的权重方面
在实际操作中,有的风险被保守估计带来的损失惨重,如厂房除菌系统、温控系统未及时保养和检查,这类风险越早发现越好。而有的风险的治理成本较小,即使被高估也不会造成很大损失。如果把风险的承担责任和影响范围加以考虑,那么“最小风险贝叶斯决策”就比“最小错误率贝叶斯决策”更有参考意义。
(三)风险间的联系方面
故障树的构建基于每个节点与不是它后代的节点相互独立的假设,但实践中,一种基本事件可能会导致多个中间事件。由不同的人来建树,得到的结果也会不同。
对于每一个特征值都对结果的输出有独立的贡献,那么基于朴素贝叶斯的算法一般表现良好,然而,当特征间存在着复杂的相互作用,难以简单地通过父节点和子节点的关系来表示时,决策树和神经网络的算法表现更良好,因为它们正是为这些相互作用而设计的。
六、结论
本文以疫苗的生产和储存为背景,首先,基于系统视角,对风险因素进行了识别。然后基于风险事件间的归因分析,找到逻辑关联。再定义系统风险中的顶事件、中间事件、底层事件(即基本事件),构建风险因素故障树,再将它转化为贝叶斯网络模型,基于此进行由基本事件推导出顶层事件的风险预测,和由顶事件推导下层事件的风险诊断。并运用Matlab进行了实践。实现了绘出贝叶斯网络图,由底层事件的概率层层递进推出顶事件,和由顶层事件诊断是由什么底层事件引起的可能性较大,以及已知某事件发生或不发生,推测其它事件的可能性的功能。本研究是对贝叶斯网络工具箱(BNT)的初步探索,使用了连接树推理引擎,可以为后续使用BNT里的各种推理引擎,计算树的边际分布、联合分布等打下基础。
风险管理主要包括风险的识别、评估、响应和控制,本文侧重于风险的识别和评估,可以为后续的风险响应与控制提供科学的依据,本研究将计算机技术、数学知识与管理知识结合,可以提高对系统的动态监测和实时预警能力,为从系统视角进行风险管理提供了参考。这种父子层次来组织对象的方法还可以推广到决策树等算法中,为系统科学等领域的研究提供参考。
参考文献
- 王广彦,马志军,胡起伟.基于贝叶斯网络的故障树分析[J].系统工程理论与实践,2004(06):78-83.
- BAYES. AN ESSAY TOWARDS SOLVING A PROBLEM IN THE DOCTRINE OF CHANCES[J]. Biometrika, 1958(3-4):3-4.
- Fisher, R., A. Corbet, and C. Williams (1943). The relation between the number of species and the number of individuals in a random sample of an animal population. J. Anim. Ecol. 12, 42–58.
- Robbins H . An empirical Bayes approach to statistics. Proceedings of the Third Berkeley Symposium on Mathematics. 1955.
- Good, I. and G. Toulmin (1956). The number of new species, and the increase in population coverage, when a sample is increased. Biometrika 43, 45–63.
- Dechter R , Meiri I , Pearl J . Temporal constraint networks[J]. Artificial Intelligence, 1991.
- 赵振宇,刘伊生,杨华春.故障树法引入工程项目风险管理研究[J].现代电力,2002(02):95-99.DOI:10.19725/j.cnki.1007-2322.2002.02.016.
- 王文和,董传富,刘林精等.基于FTA-BN模型的页岩气井口装置失效概率分析[J].中国安全科学学报,2019,29(04):89-95.
- 李柯,唐小艳.基于FTA-BN的食品安全风险评估与控制模型[J].武汉理工大学学报(信息与管理工程版),2017,39(03):243-249.
- 张继旺,马庆春,张来斌.基于FTA-BN模型的城市燃气管道失效风险分[J].北京石油化工学院学报,2014,22(03):32-36.
- 李玉龙,侯相宇.基于故障树和贝叶斯网络集成的重大工程弃渣场风险诊断与预测[J].系统管理学报,2022,31(05):861-874.
- 陈航.贝叶斯公式应用于后验概率的计算[J].林区教学,2001(02):58-59+79.
- matlab安装贝叶斯网络工具箱遇到的一些问题[EB].CSDN,2020.03.10 .https://blog.csdn.net/weixin_43482825/article/details/104769675.
- how to use the Bayes Net Toolbox (ubc.ca) .[EB]How to use the Bayes Net Toolbox
- 构建贝叶斯网络_MATLAB学习笔记(1)[EB].CSDN.2012.10.29, https://blog.csdn.net/Jessaly/article/details/125358088