簡體   English   中英

使用sklearn進行多元線性回歸

[英]Using sklearn for multiple linear regression

我有一個類似的時間序列:

        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}

我將如何解決這些問題?

代替

df.var1.values.reshape(-1, 1)

剛過去

df.drop('date', axis=1)  # .values should be optional here also

代替它。

這使df具有除date之外的所有列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM