⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 平均数检验f2.frm

📁 <VB数理统计实用算法>书中的算法源程序
💻 FRM
📖 第 1 页 / 共 2 页
字号:
      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 + -