OLS
OLS is an abbreviation for ordinary least squares.
The class estimates a multi-variate regression model and provides a variety of fit-statistics. To see the class in action download the ols.py file and run it (python ols.py). This will estimate a multi-variate regression using simulated data and provide output. It will also provide output from R to validate the results if you have rpy installed (http://rpy.sourceforge.net/).
To import the class:
1 import ols
After importing the class you can estimate a model by passing data to it as follows
1 mymodel = ols.ols(y,x,y_varnm,x_varnm)
where y is an array with data for the dependent variable, x contains the independent variables, y_varnm, is a string with the variable label for the dependent variable, and x_varnm is a list of variable labels for the independent variables. Note: An intercept term and variable label is automatically added to the model.
Example Usage
1 >>> import ols
2 >>> from numpy.random import randn
3 >>> data = randn(100,5)
4 >>> y = data[:,0]
5 >>> x = data[:,1:]
6 >>> mymodel = ols.ols(y,x,'y',['x1','x2','x3','x4'])
7 >>> mymodel.p # return coefficient p-values
8 array([ 0.31883448, 0.7450663 , 0.95372471, 0.97437927, 0.09993078])
9 >>> mymodel.summary() # print results
10 ==============================================================================
11 Dependent Variable: y
12 Method: Least Squares
13 Date: Thu, 28 Feb 2008
14 Time: 22:32:24
15 # obs: 100
16 # variables: 5
17 ==============================================================================
18 variable coefficient std. Error t-statistic prob.
19 ==============================================================================
20 const 0.107348 0.107121 1.002113 0.318834
21 x1 -0.037116 0.113819 -0.326100 0.745066
22 x2 0.006657 0.114407 0.058183 0.953725
23 x3 0.003617 0.112318 0.032201 0.974379
24 x4 0.186022 0.111967 1.661396 0.099931
25 ==============================================================================
26 Models stats Residual stats
27 ==============================================================================
28 R-squared 0.033047 Durbin-Watson stat 2.012949
29 Adjusted R-squared -0.007667 Omnibus stat 5.664393
30 F-statistic 0.811684 Prob(Omnibus stat) 0.058883
31 Prob (F-statistic) 0.520770 JB stat 6.109005
32 Log likelihood -145.182795 Prob(JB) 0.047146
33 AIC criterion 3.003656 Skew 0.327103
34 BIC criterion 3.133914 Kurtosis 4.018910
35 ==============================================================================
Note
Library function numpy.linalg.lstsq() performs basic OLS estimation.