x=[0.3, 0.3, 0.3, ..., 0.3]
(число 0,3: 10)
y=x
Каков коэффициент линейной корреляции между x
и y
?
Для этого x
и y
все пары указывают на одну и ту же точку (0.3, 0.3)
. Можем ли мы сказать, что x
и y
имеют линейную корреляцию?
scipy.stats.pearsonr(x, y)
даст вам Да (1.0, 0.0)
. Но имеет ли это смысл?
Однако, если мы изменим все 0.3
на 3
, Сципи даст вам (NaN, 1.0)
. Почему он отличается от предыдущего (0.3)? Связано с отклонением плавающих чисел? Но если мы будем использовать 3,0 вместо 3, мы все равно получим No (NaN, 1.0)
. Кто-нибудь знает, почему разные входы генерируют разные выходы?
# When using 0.3:
# result: (1.0, 0.0)
import scipy.stats
a=[]
for i in range(10):
a.append(0.3)
b=a
scipy.stats.pearsonr(a,b)
# When using int 3:
# result: (nan, 1.0)
import scipy.stats
a=[]
for i in range(10):
a.append(3)
b=a
scipy.stats.pearsonr(a,b)
# When using 3.0:
# result: (nan, 1.0)
import scipy.stats
a=[]
for i in range(10):
a.append(3.0)
b=a
scipy.stats.pearsonr(a,b)
См. Встроенные комментарии выше.