2016-05-03 6 views
0

Aufgabe:Lineare Regression mit 3 Eingangsvektoren und 4 Ausgangsvektoren?

Als Beispiel haben wir 3 Eingangsvektoren:

foo = [1, 2, 3, 4, 5, 6] 
bar = [50, 60, 70, 80, 90, 100] 
spam = [-10, -20, -30, -40, -50, -60] 

Außerdem haben wir vier Ausgangsvektoren, die lineare Abhängigkeit von Eingangsvektoren haben:

foofoo = [1, 1, 2, 2, 3, 3] 
barbar = [4, 4, 5, 5, 6, 6] 
spamspam = [7, 7, 8, 8, 9, 9] 
hamham = [10, 10, 11, 11, 12, 12] 

So verwenden Lineare Regression bei diesen Daten in Python?

+0

3 Eingangsvektoren und vier Ausgangsvektoren keinen Sinn machen. –

+1

überprüfen Sie dies: http://connor-johnson.com/2014/02/18/linear-regression-with-python/ – vcp

Antwort

1

Sie können OLS (Ordinary Least Squares model) als erledigt here verwenden:

#imports 
import numpy as np 
import statsmodels.api as sm 

#generate the input matrix 
X=[foo,bar,spam] 
#turn it into a numpy array 
X = np.array(X).T 
#add a constant column 
X=sm.add_constant(X) 

Dies gibt die Eingangsmatrix X:

array([[ 1., 1., 50., -10.], 
     [ 1., 2., 60., -20.], 
     [ 1., 3., 70., -30.], 
     [ 1., 4., 80., -40.], 
     [ 1., 5., 90., -50.], 
     [ 1., 6., 100., -60.]]) 

Und jetzt können Sie jeden gewünschten Ausgangsvektor passen:

resFoo = sm.OLS(endog=foofoo, exog=X).fit() 
resBar = sm.OLS(endog=barbar, exog=X).fit() 
resSpam = sm.OLS(endog=spamspam, exog=X).fit() 
resham = sm.OLS(endog=hamham, exog=X).fit() 

Die result gibt Ihnen das Coef ficients (für die Konstante und die drei Spalten foo, bar, und Spam):

>>> resFoo.params 
array([-0.00063323, 0.0035345 , 0.01001583, -0.035345 ]) 

Sie können nun überprüfen Sie mit dem Eingang:

>>> np.matrix(X)*np.matrix(resFoo.params).T 
matrix([[ 0.85714286], 
     [ 1.31428571], 
     [ 1.77142857], 
     [ 2.22857143], 
     [ 2.68571429], 
     [ 3.14285714]]) 

die auf die gewünschte Ausgabe von foofoo nahe .


Sehen Sie diese Frage für verschiedene Möglichkeiten, um die Regression zu tun: Multiple linear regression in Python

Verwandte Themen