2015-10-04 278 views
1

你好社區我具有低於此代碼實現多回歸線性分析和顯示基於x和y值的多個統計數據:的Python numpy的statsmodels OLS迴歸特定值

import numpy as np 
import statsmodels.api as sm 

y = [1,2,3,4,3,4,5,4,5,5,4,5,4,5,4,5,6,5,4,5,4,3,4] 

x = [ 
    [4,2,3,4,5,4,5,6,7,4,8,9,8,8,6,6,5,5,5,5,5,5,5],  #<-x1 
    [4,1,2,3,4,5,6,7,5,8,7,8,7,8,7,8,7,7,7,7,7,6,5],  #<-x2 
    [4,1,2,5,6,7,8,9,7,8,7,8,7,7,7,7,7,7,6,6,4,4,4]  #<-x3 
    ] 

x = np.array(x).T 
x = sm.add_constant(x) 
results = sm.OLS(endog=y, exog=x).fit() 
print results.summary() 

它返回:

      OLS Regression Results        
============================================================================== 
Dep. Variable:      y R-squared:      0.535 
Model:       OLS Adj. R-squared:     0.461 
Method:     Least Squares F-statistic:      7.281 
Date:    Tue, 19 Feb 2013 Prob (F-statistic):   0.00191 
Time:      21:51:28 Log-Likelihood:    -26.025 
No. Observations:     23 AIC:        60.05 
Df Residuals:      19 BIC:        64.59 
Df Model:       3           
============================================================================== 
       coef std err   t  P>|t|  [95.0% Conf. Int.] 
------------------------------------------------------------------------------ 
x1    0.2424  0.139  1.739  0.098  -0.049  0.534 
x2    0.2360  0.149  1.587  0.129  -0.075  0.547 
x3   -0.0618  0.145  -0.427  0.674  -0.365  0.241 
const   1.5704  0.633  2.481  0.023   0.245  2.895 

============================================================================== 
Omnibus:      6.904 Durbin-Watson:     1.905 
Prob(Omnibus):     0.032 Jarque-Bera (JB):    4.708 
Skew:       -0.849 Prob(JB):      0.0950 
Kurtosis:      4.426 Cond. No.       38.6 

如何才能實現statsmodel api只是作爲一個整數返回/打印R^2值(0.535)?我想利用這個值進行多元迴歸分析,並在分析完成時獲得最高的R^2值。 感謝

+0

如果包含一個常量,rsquared是介於0和1之間,請參閱J Kelly關於如何訪問它的答案。更一般地說,rsquared不會懲罰包含更多變量,並且如果包含每個可用變量,則最大化。如果您只比較具有相同數量解釋變量的模型,但對於評估具有不同數量變量AIC,BIC或調整rsquared的模型會更好,那麼這不是問題。 – user333700

回答

1

打印results.rsquared

你是什麼意思 「作爲一個整數」 是什麼意思?一輪到1或535?

+0

我只是想獲得r平方值,因爲我打算將它用於進一步計算!謝謝您的幫助 – Techno04335

相關問題