0

私が持っているのは、Excel列Aに示されている1000以上の数値データです。50(A1:A50)と次の50データ(A51:A100)を取得し、B列とC列に貼り付けて、低いものから高いものの順に並べる必要があります。 。その後、それらを線形回帰し、Rsquareと回帰式を見つける必要があります。決定係数と式を見つけた後、同じステップを実行する次のステップに進むために、それらをどこかに保持する必要がありますが、今回はA2:A51とA52:A101です。

これをループで実行し、結果を保存する必要があります。

4

1 に答える 1

2

これでうまくいきます。

Public Sub RegressionAnalysis()
    Dim sample_count As Integer
    sample_count = 50

    Dim r As Range
    Set r = Range("A2") ' First row of data
    Dim i As Integer, N As Integer, j As Integer
    N = Range(r, r.End(xlDown)).Rows.Count ' Count rows

    Dim rx As Range, ry As Range
    i = 0: j = 0 ' data counter, output counter
    Dim slope As Double, yint As Double
    Do While i + 2 * sample_count < N
        ' Current block of data
        Set rx = r.Offset(i, 0).Resize(sample_count, 1)
        ' Next block of data
        Set ry = rx.Offset(sample_count, 0).Resize(sample_count, 1)
        ' Use built-in function for regression slope & intercept
        slope = WorksheetFunction.slope(rx, ry)
        yint = WorksheetFunction.Intercept(rx, ry)
        ' Output values to adjacent columns
        r.Offset(j, 1).Value = slope
        r.Offset(j, 2).Value = yint
        ' Increment the counters
        i = i + sample_count
        j = j + 1
    Loop
End Sub

結果:

Excel出力

于 2012-09-08T20:35:16.780 に答える