应用于多个数据条目的简单线性回归(不是多重线性回归)

时间:2020-12-20 13:32:39

标签: python pandas numpy scikit-learn linear-regression

我需要执行以下计算。

  1. 给定的 Nx1 熊猫数据框
  2. Numpy 矩阵中数据框的转换(它将是回归的 Y 变量)
  3. Numpy 矩阵中移位(按 1)数据帧的转换(它将是回归的 X 变量)
  4. 在 X 和 Y 之间执行简单的线性回归
  5. 使用线性回归系数(1x1 数组)计算新的 Numpy 矩阵 Nx1 作为 (1/1-coefficient)*(Y.T) - (coefficient/1-coefficient)*(X.T)
  6. 将结果转换为 Nx1 熊猫数据框

请考虑以下代码:

def function(data):

        Y = np.nan_to_num(np.asmatrix(data)).T
        X = np.nan_to_num(np.asmatrix(data.shift(1))).T
        
        M = lm.LinearRegression().fit(X, Y)
    
        result = (np.dot((1/1-M.coef_), Y.T)) - (np.dot(M.coef_ / 1-M.coef_, X.T))
        
        return pd.DataFrame(result.T, columns = data.columns, index = data.index)

当给定的 Pandas 数据帧是 NxM 时,我如何有效地执行相同的过程(最好避免 for 循环)?在这种情况下,回归系数数组将为 1xM,每列是 X 的 i 列和 Y 的 i 列之间的系数。

0 个答案:

没有答案