📄 correlation.bas
字号:
Attribute VB_Name = "Correlation"
' **************************************************
' * 计算单相关系数
' **************************************************
Function Correlation(n As Integer, n1 As Integer, X() As Single, Y() As Single) As Single
Dim i As Integer
Dim X0 As Single, Y0 As Single, XY As Single, XX As Single, YY As Single
Dim Sx As Single, Sy As Single, Sxy As Single
Dim c As Single
On Error GoTo Warning
X0 = 0: Y0 = 0
XX = 0: YY = 0: XY = 0
n1 = n
'计算除去-999的值的样本数
For i = 1 To n
If Y(i) = -999 Then n1 = n1 - 1
Next i
For i = 1 To n
'剔除-999的值
If Y(i) <> -999 Then
X0 = X0 + X(i): Y0 = Y0 + Y(i)
XY = XY + X(i) * Y(i)
XX = XX + X(i) * X(i)
YY = YY + Y(i) * Y(i)
Sx = XX - X0 * X0 / n1
Sy = YY - Y0 * Y0 / n1
Sxy = XY - X0 * Y0 / n1
End If
Next i
c = Sx * Sy
If c <= 0 Then
R = 0
Else
R = Sxy / Sqr(c)
End If
Correlation = R
Exit Function
Warning:
MsgBox Err.Description, vbCritical
Correlation = 2
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -