Polynomial Regression

Public Sub Regrese()

     Dim varr As Variant
     Dim vara As Single
     Dim varb As Single
     Dim varc As Single
     Dim MinRow As Long
     Dim MaxRow As Integer
     Dim dblAverage As Double
     Dim i As Integer
     Dim SST As Double
     Dim SSE As Double
     Dim R2 As Double

MinRow = 2
MaxRow = Application.CountA(Columns(1))

     varr = Application.LinEst(Range("B" & MinRow & ":B" & MaxRow), _
     Application.Power(Range("A" & MinRow & ":A" & MaxRow), Array(1, 2)), True, 0)
         vara = Application.Index(varr, 1)
         varb = Application.Index(varr, 2)
         varc = Application.Index(varr, 3)
             Range("E3").Value = vara
             Range("F3").Value = varb
             Range("G3").Value = varc

         dblAverage = Application.WorksheetFunction.Sum(Range("B1:B" & MaxRow)) / (MaxRow - 1)

     For i = 1 To MaxRow - 1
         SSE = SSE + ((Cells(i + 1, 1) ^ 2) * vara + Cells(i + 1, 1) * varb + varc - Cells(i + 1, 2)) ^ 2
         SST = SST + (Cells(i + 1, 2) - dblAverage) ^ 2
     Next i

     R2 = 1 - (SSE / SST)
         Range("F4").Value = R2

End Sub

Main   +       

2007