📄 多项式回归f2.frm
字号:
VERSION 5.00
Begin VB.Form frmCalculate
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "多项式回归"
ClientHeight = 8520
ClientLeft = 60
ClientTop = 345
ClientWidth = 8745
LinkTopic = "Form1"
ScaleHeight = 8520
ScaleWidth = 8745
Begin VB.TextBox txtN
Alignment = 2 'Center
Appearance = 0 'Flat
Height = 270
Left = 960
TabIndex = 0
Top = 840
Width = 615
End
Begin VB.CommandButton cmdContinue
Caption = "继 续"
Height = 375
Left = 2160
TabIndex = 18
Top = 0
Width = 1215
End
Begin VB.CommandButton cmdExit
Caption = "退 出"
Height = 375
Left = 1080
TabIndex = 2
Top = 0
Width = 1095
End
Begin VB.CommandButton cmdCalculate
Caption = "计 算"
Height = 375
Left = 0
TabIndex = 1
Top = 0
Width = 1095
End
Begin VB.Label lblN
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "键入最高幂次"
BeginProperty Font
Name = "宋体"
Size = 14.25
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 375
Left = 240
TabIndex = 19
Top = 480
Width = 2175
End
Begin VB.Label lblR
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
BorderStyle = 1 'Fixed Single
Caption = "结 论"
ForeColor = &H80000008&
Height = 255
Index = 0
Left = 7080
TabIndex = 17
Top = 3120
Width = 1455
End
Begin VB.Label lbl001
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
BorderStyle = 1 'Fixed Single
Caption = "t (0.01)"
ForeColor = &H80000008&
Height = 255
Index = 0
Left = 5640
TabIndex = 16
Top = 3120
Width = 1455
End
Begin VB.Label lbl005
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
BorderStyle = 1 'Fixed Single
Caption = "t (0.05)"
ForeColor = &H80000008&
Height = 255
Index = 0
Left = 4200
TabIndex = 15
Top = 3120
Width = 1455
End
Begin VB.Label lblT
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
BorderStyle = 1 'Fixed Single
Caption = "t检验值"
ForeColor = &H80000008&
Height = 255
Index = 0
Left = 2880
TabIndex = 14
Top = 3120
Width = 1335
End
Begin VB.Label lblV
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
BorderStyle = 1 'Fixed Single
ForeColor = &H80000008&
Height = 255
Index = 0
Left = 1440
TabIndex = 13
Top = 3120
Width = 1455
End
Begin VB.Label lblB
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
BorderStyle = 1 'Fixed Single
Caption = "b0"
ForeColor = &H80000008&
Height = 255
Index = 0
Left = 120
TabIndex = 12
Top = 3120
Width = 1335
End
Begin VB.Label Label9
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "回归方程系数及t检验"
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 = 120
TabIndex = 11
Top = 2520
Width = 7815
End
Begin VB.Label lblDA
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 375
Left = 2400
TabIndex = 10
Top = 2040
Width = 5415
End
Begin VB.Label Label4
Alignment = 2 'Center
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "F检验结论"
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 = 2640
TabIndex = 9
Top = 1560
Width = 5295
End
Begin VB.Label lbl001F
Appearance = 0 'Flat
BackColor = &H80000005&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 375
Left = 6360
TabIndex = 8
Top = 1080
Width = 1455
End
Begin VB.Label lbl005F
Appearance = 0 'Flat
BackColor = &H80000005&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 375
Left = 6360
TabIndex = 7
Top = 720
Width = 1455
End
Begin VB.Label lblFA
Appearance = 0 'Flat
BackColor = &H80000005&
BorderStyle = 1 'Fixed Single
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 375
Left = 6360
TabIndex = 6
Top = 360
Width = 1455
End
Begin VB.Label Label3
Alignment = 1 'Right Justify
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "显著性水平为0.01的F临界值:"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 375
Left = 2640
TabIndex = 5
Top = 1080
Width = 3735
End
Begin VB.Label Label2
Alignment = 1 'Right Justify
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "显著性水平为0.05的F临界值:"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 375
Left = 2640
TabIndex = 4
Top = 720
Width = 3735
End
Begin VB.Label Label1
Alignment = 1 'Right Justify
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "F检验值:"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
Height = 375
Left = 2640
TabIndex = 3
Top = 360
Width = 3735
End
End
Attribute VB_Name = "frmCalculate"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'多项式回归
Option Explicit
Private Sub Form_Load()
Label1.Visible = False: Label2.Visible = False: Label3.Visible = False
Label4.Visible = False: Label9.Visible = False
lblFA.Visible = False: lbl005F.Visible = False: lbl001F.Visible = False
lblB(0).Visible = False: lblV(0).Visible = False: lblT(0).Visible = False
lbl005(0).Visible = False: lbl001(0).Visible = False: lblR(0).Visible = False
cmdContinue.Visible = False
End Sub
'计算
Private Sub cmdCalculate_Click()
Dim F As Double, sngF As Single, sngH As Single
Dim F005 As Double, F001 As Double
Dim sngF005 As Single, sngF001 As Single
Dim t005 As Double, t001 As Double
Dim sngt005 As Single, sngt001 As Single
Dim UA As Integer, Ue As Integer, I As Integer, J As Integer
Label1.Visible = True: Label2.Visible = True: Label3.Visible = True
Label4.Visible = True: Label9.Visible = True
lblFA.Visible = True: lbl005F.Visible = True: lbl001F.Visible = True
lblB(0).Visible = True: lblV(0).Visible = True: lblT(0).Visible = True
lbl005(0).Visible = True: lbl001(0).Visible = True: lblR(0).Visible = True
If txtN.Text = "" Then
MsgBox "必须键入最高幂次!"
Exit Sub
End If
M = Val(txtN.Text) '多项式的最高幂次
'保存回归系数数组和工作单元
ReDim b(0 To M), a(1 To M, 1 To M)
'重新定义t检验值数组
ReDim t(1 To M)
ReDim xx(1 To N, 1 To M)
For I = 1 To N
For J = 1 To M
xx(I, J) = x(I) ^ J
Next J
Next I
Multi xx, y, a, b, F, t '建立回归方程并求F值和t值
sngF = F
lblFA.Caption = Str(sngF)
UA = M: Ue = N - M - 1
PF_DIST UA, Ue, 0.05, F005 '计算显著性为0.05的F临界值
PF_DIST UA, Ue, 0.01, F001 '计算显著性为0.01的F临界值
sngF005 = F005: sngF001 = F001
lbl005F.Caption = Str(sngF005): lbl001F.Caption = Str(sngF001)
If F <= F005 Then lblDA = "总的来看,自变量对因变量的影响不显著"
If F > F005 And F <= F001 Then lblDA = "总的来看,自变量对因变量的影响显著"
If F > F001 Then lblDA = "总的来看,自变量对因变量的影响特别显著"
PT_DIST Ue, 0.05 / 2, t005 '计算显著性为0.05的t临界值
PT_DIST Ue, 0.01 / 2, t001 '计算显著性为0.01的t临界值
sngt005 = t005: sngt001 = t001
lblB(0).Caption = "b" & " 0"
lblV(0).Caption = Str(b(0))
sngH = lblB(0).Height
'使用标签显示检验结果
For I = 1 To M
Load lblB(I): Load lblV(I): Load lblT(I)
Load lbl005(I): Load lbl001(I): Load lblR(I)
lblB(I).Move lblB(0).Left, lblB(0).Top + I * sngH
lblB(I).Caption = "b" & Str(I) & "( X^" & Str(I) & ")"
lblB(I).Visible = True
lblV(I).Move lblV(0).Left, lblV(0).Top + I * sngH
lblV(I).Caption = Str(b(I))
lblV(I).Visible = True
lblT(I).Move lblT(0).Left, lblT(0).Top + I * sngH
lblT(I).Caption = Str(t(I))
lblT(I).Visible = True
lbl005(I).Move lbl005(0).Left, lbl005(0).Top + I * sngH
lbl005(I).Visible = True
lbl001(I).Move lbl001(0).Left, lbl001(0).Top + I * sngH
lbl001(I).Visible = True
lblR(I).Move lblR(0).Left, lblR(0).Top + I * sngH
lblR(I).Visible = True
lbl005(I).Caption = sngt005
lbl001(I).Caption = sngt001
If t(I) <= t005 Then lblR(I) = "不显著"
If t(I) > t005 And t(I) <= t001 Then lblR(I) = "显著"
If t(I) > t001 Then lblR(I) = "特别显著"
Next I
cmdContinue.Visible = True
End Sub
'继续
Private Sub cmdContinue_Click()
Unload Me
frmContinue.Visible = True
End Sub
'退出
Private Sub cmdExit_Click()
Unload Me
frmFileName.Visible = True
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -