📄 方差检验f2.frm
字号:
ForeColor = &H80000008&
Height = 375
Left = 960
TabIndex = 19
Top = 3360
Width = 1215
End
Begin VB.Label lblF
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
BorderStyle = 1 'Fixed Single
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 = 3240
TabIndex = 18
Top = 3360
Width = 1335
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 = 17
Top = 4320
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 = 2400
TabIndex = 16
Top = 3840
Width = 3015
End
Begin VB.Label Label10
Alignment = 2 'Center
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 = 960
TabIndex = 15
Top = 3000
Width = 1215
End
Begin VB.Label Label9
Alignment = 2 'Center
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 = 3240
TabIndex = 14
Top = 3000
Width = 1335
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 = 13
Top = 1920
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 = 5760
TabIndex = 12
Top = 1200
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 = 11
Top = 1200
Width = 1215
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 = 360
TabIndex = 7
ToolTipText = "一般情况下C为0,如果原假设为d1-d2<=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: Label2.Visible = False
lblF.Visible = False: lblFL.Visible = False
lblFR.Visible = False: lblD.Visible = False
lblX.Visible = False: lblY.Visible = False
Line1.Visible = False: cmdRenew.Visible = False
End Sub
'计算
Private Sub cmdCheck_Click()
'd1和d2是样本方差
Dim d1 As Single, d2 As Single
'n1和n2是样本数
Dim n1 As Integer, n2 As Integer
'Q是显著性水平
Dim Q As Double
'F是检验值,FL是左尾临界值,FR是右尾临界值
Dim F As Double, FL As Double, FR As Double
Dim sngF As Single, sngFL As Single, sngFR As Single
Label9.Visible = True: lblF.Visible = True: lblD.Visible = True
Label11.Visible = True: Line1.Visible = True: cmdRenew.Visible = True
d1 = Val(txtD1): d2 = Val(txtD2)
n1 = Val(txtN1): n2 = Val(txtN2)
Q = Val(txtQ) '显著性水平
F = d1 / d2 '检验值
sngF = F
lblF = sngF
'原假设为H0:d1=d2的情况属于双尾检测,其余两种情况都是单尾检测
'即Option1所代表的情况属于双尾检测,Option2和Option3都是单尾检测
If Option1.Value Then '双尾检测
Q = Q / 2
PF_DIST n1 - 1, n2 - 1, 1 - Q, FL
PF_DIST n1 - 1, n2 - 1, Q, FR
If F > FL And F < FR Then '接受H0
Label10.Visible = True: Label2.Visible = True
lblFL.Visible = True: lblFR.Visible = True
lblX.Visible = True: lblY.Visible = True
sngFL = FL: lblFL = sngFL
sngFR = FR: lblFR = sngFR
lblX = "<": lblY = "<"
lblD = "接受H0,拒绝H1"
Else '拒绝H0
lblD = "拒绝H0,接受H1"
If F < FL Then
Label10.Visible = True: Label2.Visible = False
lblFL.Visible = True: lblFR.Visible = False
lblX.Visible = True: lblX = ">": lblY.Visible = False
sngFL = FL: lblFL = sngFL
End If
If F > FR Then
Label10.Visible = False: Label2.Visible = True
lblFR.Visible = True: lblFL.Visible = False
lblY.Visible = True: lblY = ">": lblX.Visible = False
sngFR = FR: lblFR = sngFR
End If
End If
End If
If Option2.Value Then '左尾检测
PF_DIST n1 - 1, n2 - 1, 1 - Q, FL
Label10.Visible = True: Label2.Visible = False
lblFL.Visible = True: lblFR.Visible = False
lblX.Visible = True: lblY.Visible = False
sngFL = FL: lblFL = sngFL
If F < FL Then
lblX = ">"
lblD = "拒绝H0,接受H1"
Else
lblX = "<"
lblD = "接受H0,拒绝H1"
End If
End If
If Option3.Value Then '右尾检测
PF_DIST n1 - 1, n2 - 1, Q, FR
Label10.Visible = False: Label2.Visible = True
lblFL.Visible = False: lblFR.Visible = True
lblX.Visible = False: lblY.Visible = True
sngFR = FR: lblFR = sngFR
Label10.Visible = False
If F > FR Then
lblY = ">"
lblD = "拒绝H0,接受H1"
Else
lblY = "<"
lblD = "接受H0,拒绝H1"
End If
End If
End Sub
'重作
Private Sub cmdRenew_Click()
Label9.Visible = False: Label10.Visible = False
Label11.Visible = False: Label2.Visible = False
lblF.Visible = False: lblFL.Visible = False
lblFR.Visible = False: lblD.Visible = False
lblX.Visible = False: lblY.Visible = False
Line1.Visible = False
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 + -