我正在使用Python庫scipy來計算兩個浮點數組的Pearson相關性。即使數組不同,係數的返回值始終爲1.0。例如:Scipy:Pearson的相關性總是返回1
[-0.65499887 2.34644428]
[-1.46049758 3.86537321]
我打電話這樣的程序:
r_row, p_value = scipy.stats.pearsonr(array1, array2)
的r_row
值始終爲1.0。我究竟做錯了什麼?
我正在使用Python庫scipy來計算兩個浮點數組的Pearson相關性。即使數組不同,係數的返回值始終爲1.0。例如:Scipy:Pearson的相關性總是返回1
[-0.65499887 2.34644428]
[-1.46049758 3.86537321]
我打電話這樣的程序:
r_row, p_value = scipy.stats.pearsonr(array1, array2)
的r_row
值始終爲1.0。我究竟做錯了什麼?
Pearson's correlation coefficient是如何以及你的數據將通過線性迴歸安裝的措施。如果你只提供兩點,那麼就有一條線正好穿過兩點,因此你的數據完全符合一條線,因此相關係數恰好爲1.
我認爲Pearson相關係數始終返回1.0
或-1.0
如果每個數組只有兩個元素,因爲你總是可以通過繪製兩個points.Try成爲一個完美的直線長度爲3的數組,它會工作:
import scipy
from scipy.stats import pearsonr
x = scipy.array([-0.65499887, 2.34644428, 3.0])
y = scipy.array([-1.46049758, 3.86537321, 21.0])
r_row, p_value = pearsonr(x, y)
結果:
>>> r_row
0.79617014831975552
>>> p_value
0.41371200873701036
爲什麼它不適用於長度爲2的數組? – user2291379
它適用於長度爲2的數組。 –