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

📄 比例检验f2.frm

📁 <VB数理统计实用算法>书中的算法源程序
💻 FRM
📖 第 1 页 / 共 2 页
字号:
         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        =   20
      Top             =   3360
      Width           =   1215
   End
   Begin VB.Label lblZ 
      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        =   19
      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        =   18
      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        =   17
      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        =   16
      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        =   15
      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        =   14
      Top             =   2160
      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        =   13
      Top             =   840
      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        =   12
      Top             =   840
      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        =   8
      ToolTipText     =   "如果原假设为p1-p2<=0.05,这时C为0.05"
      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
    lblZ.Visible = False: lblZL.Visible = False
    lblZR.Visible = False: lblD.Visible = False
    lblX.Visible = False: lblY.Visible = False
    Line1.Visible = False: cmdRenew.Visible = False
End Sub

'计算
Private Sub cmdCheck_Click()
'X1和X2是样本的特征量,p1和p2是样本比例
    Dim X1 As Single, X2 As Single, p1 As Single, p2 As Single
'p是合并的比例,n1和n2是样本数,n是自由度
    Dim p As Single, n1 As Integer, n2 As Integer, n As Integer
'Q是显著性水平,C是常数
    Dim Q As Double, C As Single
'Z是检验值,ZL是左尾临界值,ZR是右尾临界值
    Dim Z As Double, ZL As Double, ZR As Double
    Dim sngZ As Single, sngZL As Single, sngZR As Single
    Label9.Visible = True: lblZ.Visible = True: lblD.Visible = True
    Label11.Visible = True: Line1.Visible = True: cmdRenew.Visible = True
    X1 = Val(txtX1): X2 = Val(txtX2): C = Val(txtC)
    n1 = Val(txtN1): n2 = Val(txtN2): n = n1 + n2 - 2
    p1 = X1 / n1: p2 = X2 / n2: p = (X1 + X2) / (n1 + n2)
    Q = Val(txtQ)                                           '显著性水平
'检验值
    If C = 0 Then
        Z = (p1 - p2) / Sqr(p * (1 - p) * (1 / n1 + 1 / n2))
    Else
        Z = (p1 - p2 - C) / Sqr(p1 * (1 - p1) / n1 + p2 * (1 - p2) / n2)
    End If
    sngZ = Z
    lblZ = sngZ
'原假设为H0:p1=p2的情况属于双尾检测,其余两种情况都是单尾检测
'即Option1所代表的情况属于双尾检测,Option2和Option3都是单尾检测
    If Option1.Value Then                                   '双尾检测
        Q = Q / 2
        If n1 > 17 And n2 > 17 Then PNorm 1 - Q, ZL Else PT_DIST n, 1 - Q, ZL
        If n1 > 17 And n2 > 17 Then PNorm Q, ZR Else PT_DIST n, Q, ZR
        If Z > ZL And Z < ZR Then                           '接受H0
            Label10.Visible = True: Label2.Visible = True
            lblZL.Visible = True: lblZR.Visible = True
            lblX.Visible = True: lblY.Visible = True
            sngZL = ZL: lblZL = sngZL
            sngZR = ZR: lblZR = sngZR
            lblX = "<": lblY = "<"
            lblD = "接受H0,拒绝H1"
        Else                                                '拒绝H0
            lblD = "拒绝H0,接受H1"
            If Z < ZL Then
                Label10.Visible = True: Label2.Visible = False
                lblZL.Visible = True: lblZR.Visible = False
                lblX.Visible = True: lblX = ">": lblY.Visible = False
                sngZL = ZL: lblZL = sngZL
            End If
            If Z > ZR Then
                Label10.Visible = False: Label2.Visible = True
                lblZR.Visible = True: lblZL.Visible = False
                lblY.Visible = True: lblY = ">": lblX.Visible = False
                sngZR = ZR: lblZR = sngZR
            End If
        End If
    End If
    If Option2.Value Then                                   '左尾
        If n1 > 17 And n2 > 17 Then PNorm 1 - Q, ZL Else PT_DIST n, 1 - Q, ZL
        Label10.Visible = True: Label2.Visible = False
        lblZL.Visible = True: lblZR.Visible = False
        lblX.Visible = True: lblY.Visible = False
        sngZL = ZL: lblZL = sngZL
        If Z < ZL Then
            lblX = ">"
            lblD = "拒绝H0,接受H1"
        Else
            lblX = "<"
            lblD = "接受H0,拒绝H1"
        End If
    End If
    If Option3.Value Then                                   '右尾
        If n1 > 17 And n2 > 17 Then PNorm Q, ZR Else PT_DIST n, Q, ZR
        Label10.Visible = False: Label2.Visible = True
        lblZL.Visible = False: lblZR.Visible = True
        lblX.Visible = False: lblY.Visible = True
        sngZR = ZR: lblZR = sngZR
        Label10.Visible = False
        If Z > ZR 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
    lblZ.Visible = False: lblZL.Visible = False
    lblZR.Visible = False: lblD.Visible = False
    lblX.Visible = False: lblY.Visible = False
    Line1.Visible = False
    txtX1 = "": txtX2 = "": txtN1 = "": txtN2 = ""
    txtQ = "": txtC = ""
End Sub

'退出
Private Sub cmdExit_Click()
    Unload Me
    End
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -