使用sklearn进行多元线性回归

时间:2018-03-02 21:06:52

标签: python pandas scikit-learn

我的时间序列看起来像这样:

        date       var1     var2       var3       var4       var5      var6
0 2004-09-30   6.252216  10.502101  4.965370  26.828754  3.321060  2.723686   
1 2004-10-29   6.861840   9.776618  4.719399  27.621344  2.281346  4.449510   
2 2004-11-30   8.171250  10.704045  4.949747  30.259377  2.064655  2.843745   
3 2004-12-31   9.702585  11.371383  5.422177  33.578991 -1.008974  2.768579   
4 2005-01-31  12.064022  10.628460  6.390097  35.135098 -0.385921  3.244204   

我想使用sklearn的线性回归函数来计算此时间序列的斜率,y轴截距和误差(r平方)。请注意,所有这些值都已通过我自己的函数进行了规范化,并且我无需使用sklearn的normalize参数。

到目前为止,这是我的代码,用于对一列进行回归:

reg.fit(df.date.values.reshape(-1, 1), df.var1.values.reshape(-1, 1))
alpha = reg.intercept_[0]
beta = reg.coef_[0][0]
error = reg.score(df.date.values.reshape(-1, 1), df.var1.values.reshape(-1, 1))
values = {"alpha":alpha, "beta":beta, "error": error}

我的问题是,我不知道如何一次性考虑每一列的回归。最重要的是,R ^ 2计算不起作用。

抛开R ^ 2,我的坡度&截取一些单独的列是不可思议的小:

{'beta': -3.205305722098675e-17, 'alpha': 43.05076221170246}

我如何解决这些问题?

0 个答案:

没有答案