阑尾炎诊断程序.docx
- 文档编号:17612544
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:17
- 大小:106.56KB
阑尾炎诊断程序.docx
《阑尾炎诊断程序.docx》由会员分享,可在线阅读,更多相关《阑尾炎诊断程序.docx(17页珍藏版)》请在冰点文库上搜索。
阑尾炎诊断程序
1.阑尾炎诊断程序
在一个慢性、急性、穿孔性阑尾炎的诊断过程中,经病理分析,归纳,对于各“体征”会出现几种不同的情况,如表所示。
某医院根据7.2例对各体征的各种情况算出出现概率的估计值
分别表示慢性、急性和穿孔性。
又根据病历资料,得到诊断地区三种阑尾炎的发病率
(可得其定值),根据表中提供的各体征的数据,试用贝叶斯统计方法,确定所属哪一类病。
(提示:
计算
)
体征
症状、化验等
腹疼开始部位
右下腹
67%
17%
11%
下腹
2%
4%
5%
上腹
15%
29%
42%
脐周
12%
38%
23%
全腹
5%
11%
15%
恶心呕吐
恶心-,呕吐+
33%
31%
12%
恶心+,呕吐-
53%
39%
28%
呕吐+
15%
40%
60%
大便
正常便
86%
74%
53%
非正常便
11%
13%
25%
腹泻
3%
13%
22%
压疼范围
右下腹
98%
91%
61%
大于右腹
2%
9%
39%
体温
℃
70%
29%
9%
37℃—38℃
27%
54%
32%
℃
3%
17%
59%
白细胞数
70%
9%
16%
10,000—15,000
20%
11%
28%
10%
80%
56%
肌紧张和反跳疼
肌紧张+
10%
57%
92%
肌紧张-,反跳疼+
37%
32%
4%
肌紧张-,反跳疼-
52%
11%
4%
例如上腹疼,则知
程序界面如图:
七种症状各用一个单选框进行确定,默认均为第一个选择。
三个文本框用以输入本地区已知的三种阑尾炎的发病率,即公式中的
。
i=1~3,对应的
取值不同,取i中最大的一个。
程序代码如下:
Dimsum(6,2),tz1(4,2)AsSingle,tz2(2,2),tz3(2,2),tz4(1,2),tz5(2,2),tz6(2,2),tz7(2,2)AsSingle
PrivateSubCommand1_Click()
Fori=0To4
IfOption1(i).Value=TrueThen
sum(0,0)=tz1(i,0):
sum(0,1)=tz1(i,1):
sum(0,2)=tz1(i,2)
EndIf
Next
Fori=0To2
IfOption2(i).Value=TrueThen
sum(1,0)=tz2(i,0):
sum(1,1)=tz2(i,1):
sum(1,2)=tz2(i,2)
EndIf
Next
Fori=0To2
IfOption3(i).Value=TrueThen
sum(2,0)=tz3(i,0):
sum(2,1)=tz3(i,1):
sum(2,2)=tz3(i,2)
EndIf
Next
Fori=0To1
IfOption4(i).Value=TrueThen
sum(3,0)=tz4(i,0):
sum(3,1)=tz4(i,1):
sum(3,2)=tz4(i,2)
EndIf
Next
Fori=0To2
IfOption5(i).Value=TrueThen
sum(4,0)=tz5(i,0):
sum(4,1)=tz5(i,1):
sum(4,2)=tz5(i,2)
EndIf
Next
Fori=0To2
IfOption6(i).Value=TrueThen
sum(5,0)=tz6(i,0):
sum(5,1)=tz6(i,1):
sum(5,2)=tz6(i,2)
EndIf
Next
Fori=0To2
IfOption7(i).Value=TrueThen
sum(6,0)=tz7(i,0):
sum(6,1)=tz7(i,1):
sum(6,2)=tz7(i,2)
EndIf
Next
Fori=0To2
IfText1(i).Text=""Then
MsgBox"请输入已知的本地区发病率!
",16,"错误"
ExitSub
EndIf
Next
Fori=0To2
IfText1(i).Text>1OrText1(i).Text<0Then
MsgBox"请输入正确的数值!
",16,"错误"
ExitSub
EndIf
Next
DimPDX,P
(2),PD
(2),P3AsSingle
Fori=0To2
PD(i)=Text1(i).Text
Next
Fori=0To2
P(i)=PD(i)*sum(0,i)*sum(1,i)*sum(2,i)*sum(3,i)*sum(4,i)*sum(5,i)*sum(6,i)
Next
P3=P(0)+P
(1)+P
(2)
P(0)=P(0)/P3:
P
(1)=P
(1)/P3:
P
(2)=P
(2)/P3
IfP(0)>=P
(1)Then
IfP
(1)>=P
(2)Then
PDX=P(0):
Text2.Text="慢性阑尾炎"
Else:
PDX=P
(2):
Text2.Text="穿孔性阑尾炎"
EndIf
ElseIfP
(1)>=P
(2)Then
PDX=P
(1):
Text2.Text="急性阑尾炎"
Else:
PDX=P
(2):
Text2.Text="穿孔性阑尾炎"
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadForm1
LoadForm2
Form2.Show
EndSub
PrivateSubCommand3_Click()
UnloadForm1
LoadForm3
Form3.Show
EndSub
PrivateSubForm_Load()
tz1(0,0)=0.67:
tz1(0,1)=0.17:
tz1(0,2)=0.11:
tz1(1,0)=0.02:
tz1(1,1)=0.04:
tz1(1,2)=0.05
tz1(2,0)=0.15:
tz1(2,1)=0.29:
tz1(2,2)=0.42:
tz1(3,0)=0.12:
tz1(3,1)=0.38:
tz1(3,2)=0.23
tz1(4,0)=0.05:
tz1(4,1)=0.11:
tz1(4,2)=0.15
tz2(0,0)=0.33:
tz2(0,1)=0.31:
tz2(0,2)=0.12:
tz2(1,0)=0.53:
tz2(1,1)=0.39:
tz2(1,2)=0.28
tz2(2,0)=0.15:
tz2(2,1)=0.4:
tz2(2,2)=0.6
tz3(0,0)=0.86:
tz3(0,1)=0.74:
tz3(0,2)=0.53:
tz3(1,0)=0.11:
tz3(1,1)=0.13:
tz3(1,2)=0.25
tz3(2,0)=0.03:
tz3(2,1)=0.13:
tz3(2,2)=0.22
tz4(0,0)=0.98:
tz4(0,1)=0.91:
tz4(0,2)=0.61:
tz4(1,0)=0.02:
tz4(1,1)=0.09:
tz4(1,2)=0.09
tz5(0,0)=0.7:
tz5(0,1)=0.29:
tz5(0,2)=0.09:
tz5(1,0)=0.27:
tz5(1,1)=0.54:
tz5(1,2)=0.32
tz5(2,0)=0.03:
tz5(2,1)=0.17:
tz5(2,2)=0.59
tz6(0,0)=0.7:
tz6(0,1)=0.09:
tz6(0,2)=0.16:
tz6(1,0)=0.2:
tz6(1,1)=0.11:
tz6(1,2)=0.28
tz6(2,0)=0.1:
tz6(2,1)=0.8:
tz6(2,2)=0.56
tz7(0,0)=0.1:
tz7(0,1)=0.57:
tz7(0,2)=0.92:
tz7(1,0)=0.37:
tz7(1,1)=0.32:
tz7(1,2)=0.04
tz7(2,0)=0.52:
tz7(2,1)=0.11:
tz7(2,2)=0.04
EndSub
2.坦克识别程序
在图象识别中,假定有灌木丛和坦克两类型,先验概率
,
表示灌木从和坦克,判决
表示拒绝判决,先做四次试验,获得四个样本的类概率密度如下:
=0.1,0.15,0.3,0.6
=0.8,0.7,0.55,0.3
损失函数如下:
风险
0.5
2
4
1.0
1.5
1.5
(1)用贝叶斯最小错误率判决规则判断四样本各属于哪一类型;
(2)用贝叶斯最小风险判决规则判断四个样本各属于哪一类型;
(3)把
(1)和
(2)考虑的问题改用最大似然比判决规则,重新判断四样本的类别属性。
程序界面如下:
程序源代码如下:
OptionExplicit
Dimpw
(1)AsSingle,P
(1)AsSingle,L(2,1)AsSingle
DimiAsInteger
PrivateFunctiontexttest()
texttest=1
Fori=0To1
IfText1(i).Text=""Then
MsgBox"请输入类条件概率",16,"错误"
texttest=0
ExitFunction
EndIf
Next
Fori=0To1
IfText1(i).Text>1OrText1(i).Text<0Then
MsgBox"请输入正确的数值",16,"错误"
texttest=0
ExitFunction
EndIf
Next
EndFunction
PrivateSubCommand1_Click()
Iftexttest=0ThenExitSub
Fori=0To1
P(i)=CSng(Text1(i).Text)*pw(i)
Next
IfP(0)>P
(1)Then
Text2.Text="坦克"
ElseIfP(0)
(1)ThenText2.Text="灌木丛"
Else:
Text2.Text="可能是坦克,也可能是灌木丛"
EndIf
EndSub
PrivateSubCommand2_Click()
Iftexttest=0ThenExitSub
Dimpwx
(1)AsSingle,pxAsSingle,R
(2)AsSingle
Fori=0To1
P(i)=CSng(Text1(i).Text)*pw(i)
px=px+P(i)
Next
pwx(0)=P(0)/px:
pwx
(1)=P
(1)/px
Fori=0To2
R(i)=L(i,0)*pwx(0)+L(i,1)*pwx
(1)
Next
IfR(0) (1)Then IfR(0) (2)Then Text2.Text="坦克" Else: Text2.Text="拒绝判决" EndIf ElseIfR (1) IfR (1) (2)Then Text2.Text="灌木丛" Else: Text2.Text="拒绝判决" EndIf Else: Text2.Text="拒绝判决" EndIf EndSub PrivateSubCommand3_Click() Iftexttest=0ThenExitSub DimMXAsSingle,L12AsSingle MX=pw (1)/pw(0) L12=CSng(Text1(0).Text)/CSng(Text1 (1).Text) IfL12 Text2.Text="灌木丛" Else: Text2.Text="坦克" EndIf EndSub PrivateSubCommand4_Click() UnloadForm2 LoadForm1 Form1.Show EndSub PrivateSubCommand5_Click() UnloadForm2 LoadForm3 Form3.Show EndSub PrivateSubForm_Load() pw(0)=0.7: pw (1)=0.3 L(0,0)=0.5: L(0,1)=2: L(1,0)=4: L(1,1)=1: L(2,0)=1.5: L(2,1)=1.5 EndSub 3.细胞的识别 (1)在细胞的化验中要区分正常的和异常的两种类型,分别以 和 表示,各自的先验概率为 和 ,若由一次化验的观测值从类概率密度分布曲线上查得 和 ,则用最小错误率判决规则判断细胞属于哪一类型。 (2)细胞识别中的风险矩阵为: 风险 0.5 6 2 0.5 1 1 其他条件同 (1),用最小风险判决规则判断细胞属于哪一类型。 (3)在 (1)和 (2)基础上,改用最大似然比判决规则进行判决。 (4)若考虑拒绝判决,重新对 (2)进行判决。 程序界面如下: 程序源代码如下: OptionExplicit Dimpw (1)AsSingle,L(2,1)AsSingle,iAsInteger PrivateFunctiontexttest() texttest=1 Fori=0To1 IfText1(i).Text=""Then MsgBox"请输入类条件概率",16,"错误" texttest=0 ExitFunction EndIf Next Fori=0To1 IfText1(i).Text>1OrText1(i).Text<0Then MsgBox"请输入正确的数值",16,"错误" texttest=0 ExitFunction EndIf Next EndFunction PrivateSubCommand1_Click() Iftexttest=0ThenExitSub Dimpxw (1),pwx (1),px Fori=0To1 pxw(i)=Text1(i).Text Next px=pw(0)*pxw(0)+pw (1)*pxw (1) pwx(0)=pw(0)*pxw(0)/px Ifpwx(0)>0.5Then Text2.Text="正常细胞" ElseIfpwx(0)<0.5Then Text2.Text="异常细胞" Else: Text2.Text="可能是正常细胞,也可能是异常细胞" EndIf EndSub PrivateSubCommand2_Click() Iftexttest=0ThenExitSub Dimpwx (1),px,R (1),P (1) Fori=0To1 P(i)=CSng(Text1(i).Text)*pw(i) px=px+P(i) Next pwx(0)=P(0)/px: pwx (1)=P (1)/px Fori=0To1 R(i)=L(i,0)*pwx(0)+L(i,1)*pwx (1) Next IfR(0) (1)Then Text2.Text="正常细胞" ElseIfR (1) Text2.Text="异常细胞" Else: Text2.Text="可能是正常细胞,也可能是异常细胞" EndIf EndSub PrivateSubCommand3_Click() Iftexttest=0ThenExitSub DimMXAsSingle,L12AsSingle MX=pw (1)/pw(0) L12=CSng(Text1(0).Text)/CSng(Text1 (1).Text) IfL12 Text2.Text="异常细胞" Else: Text2.Text="正常细胞" EndIf EndSub PrivateSubCommand4_Click() Iftexttest=0ThenExitSub Dimpwx (1),px,R (2),P (1) Fori=0To1 P(i)=CSng(Text1(i).Text)*pw(i) px=px+P(i) Next pwx(0)=P(0)/px: pwx (1)=P (1)/px Fori=0To2 R(i)=L(i,0)*pwx(0)+L(i,1)*pwx (1) Next IfR(0) (1)Then IfR(0) (2)Then Text2.Text="正常细胞" ElseIfR(0)>R (2)Then Text2.Text="拒绝判决" Else: Text2.Text="可能是正常细胞,也可能是拒绝判决" EndIf ElseIfR (1) IfR (1) (2)Then Text2.Text="异常细胞" ElseIfR (1)>R (2)Then Text2.Text="拒绝判决" Else: Text2.Text="可能是异常细胞,也可能是拒绝判决" EndIf ElseIfR(0)=R (1)Then IfR(0) (2)Then Text2.Text="可能是正常细胞,也可能是异常细胞" ElseIfR(0)>R (2)Then Text2.Text="拒绝判决" Else: Text2.Text="可能是正常细胞,可能是异常细胞,也可能拒绝判决" EndIf EndIf EndSub PrivateSubCommand5_Click() UnloadForm3 LoadForm1 Form1.Show EndSub PrivateSubCommand6_Click() UnloadForm3 LoadForm2 Form2.Show EndSub PrivateSubForm_Load() pw(0)=0.85: pw (1)=0.15 L(0,0)=0.5: L(0,1)=6: L(1,0)=2 L(1,1)=0.5: L(2,0)=1: L(2,1)=1 EndSub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 阑尾炎 诊断 程序