📄 平均数检验f2.frm
字号:
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 375
Left = 4080
TabIndex = 24
Top = 3480
Width = 1575
End
Begin VB.Label lblD
Alignment = 2 'Center
Appearance = 0 'Flat
AutoSize = -1 'True
BackColor = &H80000005&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "楷体_GB2312"
Size = 15.75
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 345
Left = 3720
TabIndex = 23
Top = 5040
Width = 225
End
Begin VB.Label Label11
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "检验结论"
BeginProperty Font
Name = "隶书"
Size = 26.25
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 615
Left = 2280
TabIndex = 22
Top = 4440
Width = 3015
End
Begin VB.Label Label10
Alignment = 1 'Right Justify
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "给定显著性水平下的临界值:"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 375
Left = 1200
TabIndex = 21
Top = 3960
Width = 2895
End
Begin VB.Label Label9
Alignment = 1 'Right Justify
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "检验值:"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 375
Left = 2280
TabIndex = 20
Top = 3600
Width = 1815
End
Begin VB.Label Label8
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "显著性水平(通常为 0.05 或 0.01)"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 255
Left = 3480
TabIndex = 19
Top = 2640
Width = 3735
End
Begin VB.Label Label7
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "第2样本数"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 255
Left = 5640
TabIndex = 18
Top = 1920
Width = 1335
End
Begin VB.Label Label6
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "第1样本数"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 255
Left = 3720
TabIndex = 17
Top = 1920
Width = 1215
End
Begin VB.Label Label3
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "第2样本平均数"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 255
Left = 5520
TabIndex = 16
Top = 720
Width = 1575
End
Begin VB.Label Label2
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "第1样本平均数"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 255
Left = 3600
TabIndex = 15
Top = 720
Width = 1455
End
Begin VB.Label Label1
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "原假设"
BeginProperty Font
Name = "隶书"
Size = 26.25
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 495
Left = 240
TabIndex = 11
ToolTipText = "一般情况下C为0,如果原假设为u1-u2<=3,这时C应理解为3"
Top = 600
Width = 2055
End
End
Attribute VB_Name = "frmTwo"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'平均数假设检验
Option Explicit
Private Sub Form_Load()
Label9.Visible = False: Label10.Visible = False
Label11.Visible = False: lblZ.Visible = False
lblZQ.Visible = False: lblD.Visible = False
Line1.Visible = False: cmdRenew.Visible = False
End Sub
'计算
Private Sub cmdCheck_Click()
'u1和u2是总体平均值,x1和x2是样本平均值
Dim u1 As Single, u2 As Single, x1 As Single, X2 As Single
'd1和d2是标准差,总体标准差都用正数
'用样本标准差代替总体标准差时,若有共同的总体标准差则填正数,否则填负数
'n1和n2是样本数
Dim d1 As Single, d2 As Single, n1 As Integer, n2 As Integer
'Q是显著性水平
Dim Q As Double, d As Single, n As Integer
'Z是检验值,ZQ是临界值
Dim Z As Double, ZQ As Double, df1 As Double, df2 As Double
Dim sngZ As Single, sngZQ As Single
Label9.Visible = True: Label10.Visible = True
Label11.Visible = True: lblZ.Visible = True
lblZQ.Visible = True: lblD.Visible = True
Line1.Visible = True: cmdRenew.Visible = True
u1 = Val(txtU1): u2 = Val(txtU2)
x1 = Val(txtX1): X2 = Val(txtX2)
d1 = Val(txtD1): d2 = Val(txtD2)
n1 = Val(txtN1): n2 = Val(txtN2)
Q = Val(txtQ)
'原假设为H0:u1=u2的情况属于双尾检测,其余两种情况都是单尾检测
'即Option1所代表的情况属于双尾检测,Option2和Option3都是单尾检测
If Option1.Value = True Then Q = Q / 2 '双尾检测
'无论有无总体标准差,当总体标准差相等时,d1 > 0 和 d2 > 0
'不等时,d1 < 0 和 d2 < 0
If n1 > 17 And n2 > 17 Then '大样本
If d1 > 0 And d2 > 0 Then '有相同的总体标准差
Z = ((x1 - X2) - (u1 - u2)) / Sqr(d2 ^ 2 / n1 + d1 ^ 2 / n2)
Else '有不同的总体标准差
Z = ((x1 - X2) - (u1 - u2)) / Sqr(d1 ^ 2 / n1 + d2 ^ 2 / n2)
End If
Else '小样本
If d1 > 0 And d2 > 0 Then
d = Sqr(((n1 - 1) * d1 ^ 2 + (n2 - 1) * d ^ 2) / (n1 + n2 - 2))
Z = ((x1 - X2) - (u1 - u2)) / (d * Sqr(1 / n1 + 1 / n2))
Else
Z = ((x1 - X2) - (u1 - u2)) / Sqr(d1 ^ 2 / n1 + d2 ^ 2 / n2)
End If
End If
sngZ = Z '检验值
lblZ = sngZ
'大样本时求正态分布的分位数,小样本时求t分布的分位数
If n1 > 17 And n2 > 17 Then
PNorm Q, ZQ
Else
If d1 > 0 And d2 > 0 Then n = n1 + n2 - 2 '相同的总体标准差
If d1 < 0 And d2 < 0 Then '不同的总体标准差
df1 = (d1 ^ 2 / (n1 - 1) + d2 ^ 2 / (n2 - 1)) ^ 2
df2 = 1 / (n1 + 1) * (d1 ^ 2 / (n1 - 1)) ^ 2 + 1 / (n2 + 1) * (d2 ^ 2 / (n2 - 1)) ^ 2
n = Int(df1 / df2 - 2 + 0.5)
End If
PT_DIST n, Q, ZQ
End If
ZQ = Sgn(Z) * ZQ '临界值
sngZQ = ZQ
lblZQ = sngZQ
If Abs(Z) > Abs(ZQ) Then
lblD = "拒绝H0,接受H1"
Else
lblD = "接受H0,拒绝H1"
End If
End Sub
'重作
Private Sub cmdRenew_Click()
Label9.Visible = False: Label10.Visible = False
Label11.Visible = False: lblZ.Visible = False
lblZQ.Visible = False: lblD.Visible = False
Line1.Visible = False
txtU1 = "": txtU2 = "": txtX1 = "": txtX2 = ""
txtD1 = "": txtD2 = "": txtN1 = "": txtN2 = ""
txtQ = ""
End Sub
'退出
Private Sub cmdExit_Click()
Unload Me
End
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -