Vba 作为程序的回归

Vba 作为程序的回归,vba,linear-regression,Vba,Linear Regression,我拥有的是excel a列中给出的1000多个数字数据。我必须获取50个(A1:A50)和另一个后续的50个数据(A51:A100),将它们粘贴到B和C列,并从最低到最高排序。然后,我必须对它们进行线性回归,找到Rsquare和回归公式。在找到r平方和公式后,我必须把它们放在某个地方,继续下一步,这一步是相同的,但这次是A2:A51和A52:A101 我必须在一个循环中执行此操作并存储结果。这将让您继续 Public Sub RegressionAnalysis() Dim sample

我拥有的是excel a列中给出的1000多个数字数据。我必须获取50个(A1:A50)和另一个后续的50个数据(A51:A100),将它们粘贴到B和C列,并从最低到最高排序。然后,我必须对它们进行线性回归,找到Rsquare和回归公式。在找到r平方和公式后,我必须把它们放在某个地方,继续下一步,这一步是相同的,但这次是A2:A51和A52:A101


我必须在一个循环中执行此操作并存储结果。

这将让您继续

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
公共次回归分析()
Dim sample_计数为整数
样本计数=50
调光范围
设置r=范围(“A2”)'第一行数据
尺寸i为整数,N为整数,j为整数
N=范围(r,r.End(xlDown)).Rows.Count“计数行”
变暗rx为量程,ry为量程
i=0:j=0'数据计数器,输出计数器
暗坡为双坡,阴坡为双坡
在i+2*样本计数
结果如下:


您遇到的问题是什么?你的问题太宽泛了。SO是一个可以帮助您解决特定问题的社区,而不是查找您的算法,除非您能够证明它与SO社区相关。感谢您的努力:)将需要一段时间来找出逻辑和语言。我的新工作:)