아래 코드는 의도 한대로 작동하지만 필요한 것은 아닙니다. c[1]
을 c[1:]
으로 변경하여 모든 x 변수에 대해 회귀 분석을하고 싶습니다. 그 변경 (및 해당 x 레이블을 추가 할 때), 다음 오류가 발생합니다 : ValueError: matrices are not aligned
. 누군가 이런 일이 일어나는 이유를 설명하고 코드 수정을 제안 할 수 있습니까? 감사.Python, Numpy 및 OLS
from numpy import *
from ols import *
a = [[.001,.05,-.003,.014,.035,-.01,.032,-.0013,.0224,.005],[-.011,.012,.0013,.014,-.0015,.019,-.032,.013,-.04,-.05608],
[.0021,.02,-.023,.0024,.025,-.081,.032,-.0513,.00014,-.00015],[.001,.02,-.003,.014,.035,-.001,.032,-.003,.0224,-.005],
[.0021,-.002,-.023,.0024,.025,.01,.032,-.0513,.00014,-.00015],[-.0311,.012,.0013,.014,-.0015,.019,-.032,.013,-.014,-.008],
[.001,.02,-.0203,.014,.035,-.001,.00032,-.0013,.0224,.05],[.0021,-.022,-.0213,.0024,.025,.081,.032,.05313,.00014,-.00015],
[-.01331,.012,.0013,.014,.01015,.019,-.032,.013,-.014,-.012208],[.01021,-.022,-.023,.0024,.025,.081,.032,.0513,.00014,-.020015]]
c = column_stack(a)
y = c[0]
m = ols(y, c[1], y_varnm='y', x_varnm=['x1'])
print m.summary()
편집 : 부분적으로 해결책을 찾았지만 여전히 문제가 있습니다. 아래의 코드는 9 가지 설명 변수 중 8 가지에 적용됩니다.
c = column_stack(a)
y = c[0]
x = column_stack([c[i] for i in range(1, 9)])
m = ols(y, x, y_varnm='y', x_varnm=['x1','x2','x3','x4','x5','x6','x7','x8'])
print m.summary()
그러나 9 번째 x 변수를 포함 시키려고하면 다음 오류가 표시됩니다. RuntimeWarning: divide by zero encountered in double_scalars
. 왜 그런가?
c = column_stack(a)
y = c[0]
x = column_stack([c[i] for i in range(1, len(a))])
m = ols(y, x, y_varnm='y', x_varnm=['x1','x2','x3','x4','x5','x6','x7','x8','x9'])
print m.summary()
이 ols''무엇입니까? 나에게 그것은 "보통 최소 사각형"을 의미하지만, 별도의 라이브러리를 사용하지 않을 것입니다. –
OLS는 Numpy와 함께 작동하는 클래스입니다. 그것은 다변량 회귀 모델을 추정하고 적합 통계를 제공합니다. – johnjdc
OLS : http://www.scipy.org/Cookbook/OLS – askewchan