2017-03-10 61 views
0

您是否知道如何將第一部分放入函數的其餘部分以獲得迴歸分析。使用來自csv的數據進行多元迴歸的Python函數

import numpy as np 
import matplotlib.pyplot as plt 
from numpy import * 
from matplotlib.pyplot import * #for the graph 

data = np.genfromtxt('bookingdata.csv', delimiter = ',') 

tvst = data[1:,][:,1] 
cntime = data[1:,][:,2] 
brate = data[1:,][:,3] 
ppvwst = data[1:,][:,4] 



import statsmodels.api as sm 


def reg_m(tvst, cntime,brate,ppvwst): 
ones = np.ones(len(cntime[0]) 
X = sm.add_constant(np.column_stack((x[0], ones))) 
for ele in x[1:]: 
X = sm.add_constant(np.column_stack((ele, X))) 
results = sm.OLS(y, X).fit() 
return results 

並且所有的變量都被加載爲變量tvst,cntime等。同樣所有的變量都是數字。現在

最終目標是獲得一個多變量回歸像

      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 
+0

什麼似乎並沒有工作? – DyZ

+0

我將我的csv文件加載到python中,作爲變量tvst(依賴)和centime,brate,ppvwst(獨立)。現在我想對模型進行多元迴歸測試,輸出如上所示。我完全失去了我如何才能做到這一點。 –

+0

'add_constant'與添加一列相同。任何一個都是多餘的。 – user333700

回答

0

首先,如果Y(endog)僅僅是一個變量,那麼這就是所謂的多元迴歸。多變量回歸通常是指我們同時有幾個y的情況,即y是多變量。

add_constant與添加ones列的功能相同。任何一個都是多餘的。

所以,多元迴歸只是

X = sm.add_constant(np.column_stack((cntime, brate, ppvwst))) 
results = sm.OLS(y, X).fit() 

或考慮到我們已經這樣做避免了數據的額外副本column_stack:

X = np.column_stack((ones, cntime, brate, ppvwst))) 
results = sm.OLS(y, X).fit() 
相關問題