Sub korellacia regressia()
Const n = 10
Dim x(1 To n) As Double, y(1 To n) As Double, i As Integer, Sxy As Double, Sx As Double, _
Sy As Double, Sx2 As Double, xsr As Double, ysr As Double, a As Double, _
b As Double, s1 As Double, s2 As Double, F As Double, aa As Variant, r As Double, s3 As Double, t As Double
For i = 1 To n
x(i) = Worksheets(1).Cells(i, 1)
y(i) = Worksheets(1).Cells(i, 2)
Sx = Sx + x(i)
Sy = Sy + y(i)
Sxy = Sxy + x(i) * y(i)
Sx2 = Sx2 + x(i) ^ 2
Next i
xsr = Sx / n
ysr = Sy / n
a = n * Sx2 - Sx ^ 2
b = (Sy * Sx2 - Sx * Sxy) / a
a = (n * Sxy - Sx * Sy) / a
For i = 1 To n
s1 = s1 + ((a * x(i)) + b - ysr) ^ 2
s2 = s2 + (y(i) - a * x(i) - b) ^ 2
Next i
F = (n - 2) * s1 / s2
With Excel.WorksheetFunction
aa = .LinEst(y, x, True, False)
s1 = 0
s2 = 0
For i = 1 To n
s1 = s1 + (x(i) - xsr) * (y(i) - ysr)
s2 = s2 + (x(i) - xsr) ^ 2
s3 = s3 + (y(i) - ysr) ^ 2
Next i
r = s1 / Sqr(s2 * s3)
r = .Correl(x, y)
t = r * Sqr(n - 2) / Sqr(1 - r ^ 2)
Debug.Print a; b; F; t; r
Debug.Print .FDist(F, 1, n - 2); .TDist(t, n - 2, 1); aa(1); aa(2)
End With
End Sub

Соседние файлы в папке Мат. методы. 2 семестр(3 модуль)