以下のコードは意図した通りに動作しますが、私の必要とするものではありません。私はc[1]
をc[1:]
に変更したいので、ただ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つで機能します。私は第九x変数を含めるしようとすると
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()
はしかし、私は次のエラーを取得する:RuntimeWarning: divide by zero encountered in double_scalars
。どんな考え?ここでは、コード(len(a)
= 10ということに注意してください)です。
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