2015-01-24 3 views
1

Я пытаюсь решить многомерную регрессию. Вот код, прилагаемый к регрессии. Модель строит хорошо, но когда я пытаюсь получить сводку, он дает следующее сообщение об ошибкеStatsmodel многомерная ошибка OLS "матрицы не выровнены"

ValueError: матрицы не выровнены

Вот отслеживающий:

Traceback (most recent call last): 
File "/Users/mikhilraj/Desktop/try2.py", line 23, in <module> 
    print mod.summary() 
File "/Library/Python/2.7/site-packages/statsmodels-0.7.0-py2.7-macosx-10.10-intel.egg/statsmodels/regression/linear_model.py", line 1967, in summary 
    top_right = [('R-squared:', ["%#8.3f" % self.rsquared]), 
File "/Library/Python/2.7/site-packages/statsmodels-0.7.0-py2.7-macosx-10.10-intel.egg/statsmodels/tools/decorators.py", line 97, in __get__ 
    _cachedval = self.fget(obj) 
File "/Library/Python/2.7/site-packages/statsmodels-0.7.0-py2.7-macosx-10.10-intel.egg/statsmodels/regression/linear_model.py", line 1181, in rsquared 
    return 1 - self.ssr/self.centered_tss 
File "/Library/Python/2.7/site-packages/statsmodels-0.7.0-py2.7-macosx-10.10-intel.egg/statsmodels/tools/decorators.py", line 97, in __get__ 
    _cachedval = self.fget(obj) 
File "/Library/Python/2.7/site-packages/statsmodels-0.7.0-py2.7-macosx-10.10-intel.egg/statsmodels/regression/linear_model.py", line 1153, in ssr 
    return np.dot(wresid, wresid) 
ValueError: matrices are not aligned 

Код:

import numpy as np 
import statsmodels.api as sm 


np.random.seed(12345) 

N = 30 

X = np.random.uniform(-20, 20, size=(N,10)) 
beta = np.random.randn(11) 
X = sm.add_constant(X) 


weights = np.random.uniform(1, 20, size=(N,)) 
weights = weights/weights.sum() 

y = np.dot(X, beta) + weights*np.random.uniform(-100, 100, size=(N,)) 

Y = np.c_[y,y,y] 

mod = sm.OLS(Y, X).fit() 

print mod.summary() 

ответ

1

Параметр endog должен быть 1D ve ctor зависимой переменной. Изменение параметра Y в вашей модели до y (например) позволяет запустить код без ошибок.

http://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.OLS.html

+0

Да. Но я хочу запустить регрессию с многовариантной функцией ответа, то есть Y должен быть многомерным. Есть ли выход? – Rusty

+0

http://stats.stackexchange.com/questions/95957/multivariate-regression-with-weighted-least-squares-in-python – JAB

Смежные вопросы