numpy.ma.corrcoefを使用して、欠落データが存在する場合の相関を計算しようとしています。
ドキュメントによると:欠落データの処理を除いて、この関数はと同じように機能しnumpy.corrcoef
ます。詳細と例については、を参照してくださいnumpy.corrcoef
。
これは2変量データセットであり、1番目と2番目のポイントのみが両方の変数のデータを持っています。
array([[ 0.00494576, -0.01331578],
[-0.00146498, -0.01349548],
[ 0.00430321, nan],
[-0.00937105, nan],
[ nan, -0.01356873],
[ nan, -0.01375538],
[ nan, -0.00277393],
[ nan, 0.0082988 ],
[ nan, 0. ],
[ nan, 0.00275103],
[ nan, 0.00547947],
[ nan, -0.01375538],
[ nan, 0.0110194 ],
[ nan, -0.00549452],
[ nan, 0.01910017],
[ nan, -0.02462505],
[ nan, -0.01676017],
[ nan, 0.0112046 ],
[ nan, 0.01108045],
[ nan, 0.01639381],
[ nan, 0.01078178],
[ nan, -0.01078178]])
これをマスクされた配列(np.ma.masked_array(t、np.isnan(t))、ここでtは上の配列)としてキャストし、np.ma.corrcoef(rowvar = False)を実行すると、変数は-86.52として与えられます(パーセンテージではなく絶対値で!)。一方、最初の2つのポイントだけでnp.corrcoefを実行すると、1の相関が生成されます(これも絶対値です)。この後者の値は、ドキュメントによると、最初の操作から期待すべきものです。
私のPythonバージョン(Mac OSX.6.8ではEnthought64ビットPyLab)の情報は以下のとおりで、Numpyバージョン1.6.1を使用しています。
Python 2.7.3 | EPD 7.3-1(64ビット)| (デフォルト、2012年4月12日、11:14:05)詳細については、「copyright」、「credits」、または「license」と入力してください。
私がここで欠けているものについてアドバイスしてください!前もって感謝します。