scipy.statsのspearmanrを使用して奇妙な問題が発生しています。私は多項式の値を使用しています。これは少し面白いですが、手動で値を入力すると(リストとしてnumpyの配列に変換されます)、私が得たものとは異なる相関関係が得られます私は関数を使って値を計算しています。以下のコードは、私は何を意味するか示さなければならない:データの作成方法によってscipy.stats.spearmanrと異なる結果が出る
import numpy as np
from scipy.stats import spearmanr
data = np.array([ 0.4, 1.2, 1. , 0.4, 0. , 0.4, 2.2, 6. , 12.4, 22. ])
axis = np.arange(0, 10, dtype=np.float64)
print(spearmanr(axis, data))# gives a correlation of 0.693...
# Use this polynomial
poly = lambda x: 0.1*(x - 3.0)**3 + 0.1*(x - 1.0)**2 - x + 3.0
data2 = poly(axis)
print(data2) # It is the same as data
print(spearmanr(axis, data2))# gives a correlation of 0.729...
をIは、配列が微妙に異なっていることを通知する(すなわち、data - data2
が正確にすべての要素のためのゼロではない)でしたが、その差は小さいです - 1E-16の順序。
このような小さな違いが、これほどまでにスピアマンを捨てるほどですか?