2

私は複数の線形回帰を使用します。1 つの従属変数 (var) といくつかの独立変数があり(varM1, varM2,...) 、Python でこのコードを使用します。

z=array([varM1, varM2, varM3],int32)
n=max(shape(var))
X = vstack([np.ones(n), z]).T
a = np.linalg.lstsq(X, var)[0]

python を使用してすべての変数の R 二乗変化を計算するにはどうすればよいですか? 予測変数を追加または削除すると、回帰がどのように変化するかを確認したいと思います。

4

1 に答える 1

2

ブロードキャストが途中で正しい場合、次の相関係数が得られますR

R = np.sqrt( ((var - X.dot(a))**2).sum() )

多変量回帰の完全な例:

import numpy as np

x1 = np.array([1,2,3,4,5,6])
x2 = np.array([1,1.5,2,2.5,3.5,6])
x3 = np.array([6,5,4,3,2,1])
y = np.random.random(6)

nvar = 3
one = np.ones(x1.shape)
A = np.vstack((x1,one,x2,one,x3,one)).T.reshape(nvar,x1.shape[0],2)

for i,Ai in enumerate(A):
    a = np.linalg.lstsq(Ai,y)[0]
    R = np.sqrt( ((y - Ai.dot(a))**2).sum() )
    print R
于 2013-08-04T14:24:19.717 に答える