python - 计算和可视化无序序列中的 2 个变量之间的相关性
问题描述
作为我最后一年研究实施的一部分,我正在尝试计算和可视化两个不在有序序列中的变量之间的相关性。在如下数据集中,
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。
解决方案
好的,所以想法是绘制两列,一个在 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()
如果我们认为回归线是y = a*x + b
,你可以得到系数 a 和 b 使得
a = fit[0]
b = fit[1]
返回
a = -0.8000000000000005
b = 6.150000000000002
只需使用您的 x 和 y
推荐阅读
- python - 有没有一种方法可以限制 scipy 生成随机变量集?
- azure-devops - 如何为测试和发布环境构建 Azure Devops Pipelines?
- javascript - 如何从字符串中拆分某个数字但在该字符串中保留另一个数字仍在javascript中
- c# - 是什么导致视频播放期间“尚未为此流或其依赖的流设置有效类型”异常
- python-3.x - 计算会影响 python-3.x 中其他地方的堆栈中相同(但不同)的变量?
- react-native - TypeError:无法读取 /node_modules/galio-framework/src/Toast.js 中未定义的属性“样式”
- java - Lombok 条件 ToString.Include
- three.js - threejs - 重新定位后使用控制器在 AR 中进行光线投射
- java - 使用 java 和 jsoup 进行网页抓取
- node.js - Socket.io 在线用户数