Вычисление и визуализация корреляции между 2 переменными, которые находятся в неупорядоченном ряду - PullRequest
0 голосов
/ 15 марта 2019

В рамках своей последней исследовательской работы за год я пытаюсь вычислить и визуализировать корреляцию между двумя переменными, которые не входят в упорядоченный ряд. В наборе данных, таком как

DateAndTime           Demand    Temperature
2015-01-02 18:00:00    2081         41
2015-01-02 19:00:00    2370         42
2015-01-02 20:00:00    2048         42
2015-01-02 21:00:00    1806         42
2015-01-02 22:00:00    1818         41
2015-01-02 23:00:00    1918         40
2015-01-03 00:00:00    1685         40
2015-01-03 01:00:00    1263         38
2015-01-03 02:00:00     969         38
2015-01-03 03:00:00     763         37
2015-01-03 04:00:00     622         36

Расчет и визуализация корреляции между датой и спросом просты, поскольку они находятся в упорядоченном ряду, и график рассеяния можно использовать для простой визуализации их корреляции. Однако, если бы я рассчитывал соотношение между температурой и спросом, полученная диаграмма рассеяния не имеет большого смысла, поскольку она не находится в каком-либо математическом порядке. Какой подход следует использовать, чтобы визуализировать корреляцию между этими двумя переменными более осмысленным образом. Для этого я использую базовые платформы Python, такие как Matplotlib, Statsmodels и Sklearn.

1 Ответ

1 голос
/ 15 марта 2019

Хорошо, так что идея состоит в том, чтобы построить оба столбца, один по оси X, а другой по оси Y, и попытаться создать линию, имитирующую его поведение.У Numpy есть функция для вычисления линии, поэтому

import numpy as np
import matplotlib.pyplot as plt

x = [4,2,1,5]
y = [2,4,6,3]

fit = np.polyfit(x,y,1)
fit_line = np.poly1d(fit)

plt.figure()
plt.plot(x,y,'rx')
plt.plot(x,fit_line(x),'--b')
plt.show()

enter image description here

И если мы считаем линию регрессии y = a*x + b, вы можете получитькоэффициент a и b, так что

a = fit[0]
b = fit[1]

, который возвращает

a = -0.8000000000000005
b = 6.150000000000002

Просто используйте ваши x и y

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...