Я вычисляю Pearson Correlation. В конце у меня есть результат (корреляция1), как показано ниже. Интересно, почему у меня есть 0.0 для всего второго коэффициента в результате в корреляции1. Есть ли кто-нибудь, кто мог бы объяснить? Более того, мой корреляционный код работает медленно. Как я могу сделать это быстро?Pearson Correlation Zero Values
Результат (образец):
(0.52543523179249552, 0.0), (0.52543905756911169, 0.0), (0.52544196572206603, 0.0), (0.52545010637443945, 0.0)...
from scipy.stats import pearsonr
s1_list = []
s2_list = []
s3_list = []
s4_list = []
zip_list1 = []
zip_list2 = []
correlation1 = []
for x, y in zip(speed1_list, speed2_list):
zip1 = {"s1": float(x), "s2": float(y)}
s1_list.append(zip1["s1"])
s2_list.append(zip1["s2"])
zip_list1.append(zip1)
correlation1.append(pearsonr(s1_list,s2_list))
print correlation1
Входы:
speed1_list: [113.0, 116.0, 120.0, 120.0, 117.0, 127.0, 124.0, 118.0, 124.0, 128.0, 128.0, 125.0, 112.0, 122.0, 125.0, 133.0, 128.0, 129.0, 126.0, 123.0, 120.0, 118.0, 114.0, 119.0, 129.0, 127.0, 128.0, 122.0, 120.0, 125.0, 119.0...]
speed2_list: [125.0, 123.0, 120.0, 115.0, 124.0, 120.0, 120.0, 119.0, 119.0, 122.0, 121.0, 116.0, 116.0, 119.0, 116.0, 113.0, 113.0, 115.0, 120.0, 122.0, 122.0, 113.0, 118.0, 121.0, 120.0, 119.0, 116.0...]
correlation1: (0.52543523179249552, 0.0), (0.52543905756911169, 0.0), (0.52544196572206603, 0.0), (0.52545010637443945, 0.0)...
спасибо. Затем, как я могу построить результат корреляции с данными строки? Например, я рисую данные строки с разбросом (speed1_list, speed2_list, marker = '.', Color = 'pink'). Затем я хочу добавить график корреляции на график данных строки. Вы можете мне помочь? Благодарю. @Math – serenade
Я не понимаю, что вы хотите сделать. Корреляция между -1 и 1, в то время как ваш диапазон данных в сотнях, вы не увидите изменений корреляции на графике. Что вы можете сделать, это привязка к сопоставлению с индексом, если вы хотите показать некоторую конвергенцию, но на собственном графике. – Math