2016-05-23 6 views
0

にこの状況を実装:は、これら2つのアレイを考えるnumpyの

E = [[16.461, 17.015, 14.676], 
[15.775, 18.188, 14.459], 
[14.489, 18.449, 14.756], 
[14.171, 19.699, 14.406], 
[14.933, 20.644, 13.839], 
[16.233, 20.352, 13.555], 
[16.984, 21.297, 12.994], 
[16.683, 19.056, 13.875], 
[17.918, 18.439, 13.718], 
[17.734, 17.239, 14.207]] 

S = [[0.213, 0.660, 1.287], 
[0.250, 2.016, 1.509], 
[0.016, 2.995, 0.619], 
[0.142, 4.189, 1.194], 
[0.451, 4.493, 2.459], 
[0.681, 3.485, 3.329], 
[0.990, 3.787, 4.592], 
[0.579, 2.170, 2.844], 
[0.747, 0.934, 3.454], 
[0.520, 0.074, 2.491]] 

の問題は、私は、次の式を使用して、SとEとの間の3×3共分散行列(C)を得るべきであると述べている:

C = (1/(n-1))[S'E - (1/10)S'i i'E] 

ここでnは10であり、iは1だけからなるnx 1の列ベクトルである。 S 'およびi'はそれぞれ行列Sおよび列ベクトルiの転置行列である。

これまでのところ、私はi(とi ')とその式の実装の意味を理解していないので、Cを得ることができません。これまでnumpyを使用していました。

import numpy as np 

tS = numpy.array(S).T 
C = (1.0/9.0)*(np.dot(tS, E)-((1.0/10.0)*np.dot(tS, E))) #Here is where I lack the i and i' implementation. 

私は式を理解して実装することに本当に感謝しています。出力は次のようになります。

C= [[0.2782, 0.2139, -0.1601], 
    [-1.4028, 1.9619, -0.2744], 
    [1.0443, 0.9712, -0.6610]] 

答えて

2

それはあなたが欠けている部分だけのように見えるがiを作っている。その後

>>> i = np.ones((N, 1)) 
>>> i 
array([[ 1.], 
     [ 1.], 
     [ 1.], 
     [ 1.], 
     [ 1.], 
     [ 1.], 
     [ 1.], 
     [ 1.], 
     [ 1.], 
     [ 1.]]) 

を、私たちは、これが「doesnのこと

>>> C = (1.0/(N-1)) * (S.T.dot(E) - (1.0/N) * S.T.dot(i) * i.T.dot(E)) 
>>> C 
array([[ 0.27842301, 0.21388842, -0.16011839], 
     [-1.4017267 , 1.96193373, -0.27441417], 
     [ 1.04532836, 0.97120807, -0.66095656]]) 

注意を取得しますt かなりあなたが予想した配列を生成します。これは、それを丸めた方が明らかですが、データにマイナーな誤字があるかもしれません。

>>> C.round(4) 
array([[ 0.2784, 0.2139, -0.1601], 
     [-1.4017, 1.9619, -0.2744], 
     [ 1.0453, 0.9712, -0.661 ]]) 
+0

ねえ!ありがとう。 =) –

1

これはあなたが私が推測する欲しいものです:

S = numpy.array(S) 

E = numpy.array(E) 

ones = np.ones((10,1)) 

C = (1.0/9)*(np.dot(S.T, E)-((1.0/10)* (np.dot(np.dot(np.dot(S.T,ones),ones.T),E)))) 

私の出力は、次のとおりです。

array([[ 0.27842301, 0.21388842, -0.16011839], 
    [-1.4017267 , 1.96193373, -0.27441417], 
    [ 1.04532836, 0.97120807, -0.66095656]]) 
関連する問題