To compare whether two time series are similar graphically, you can do the following:
It should be noted that the similarity in graphics does not completely represent the similarity between two time series, because the same graphic can correspond to different time series. Therefore, when comparing time series, multiple aspects of information need to be considered comprehensively.
Before you start, you must ensure that Python and pip have been successfully installed on your computer. If not, you can visit this article: Super Detailed Python Installation Guide to install it.
(Optional 1) If you use Python for data analysis, you can install Anaconda directly: Anaconda, a good helper for Python data analysis and mining, has built-in Python and pip.
( Optional 2) In addition, it is recommended that you use the VSCode editor, which has many advantages: The best partner for Python programming—VSCode Detailed Guide.
Please choose any of the following methods to enter commands to install dependencies: 1. Windows environment Open Cmd (Start-Run-CMD). 2. MacOS environment Open Terminal (command space and enter Terminal). 3. If you are using VSCode editor or Pycharm, you can directly use the Terminal at the bottom of the interface.
pip install matplotlib pip install numpy
import matplotlib.pyplot as plt # 生成时间序列数据 x = [1, 2, 3, 4, 5] y1 = [10, 15, 13, 17, 20] y2 = [8, 12, 14, 18, 22] # 绘制两个时间序列的折线图 plt.plot(x, y1, label='y1') plt.plot(x, y2, label='y2') # 设置图形属性 plt.xlabel('Time') plt.ylabel('Value') plt.title('Comparison of two time series') plt.legend() # 显示图形 plt.show()
import numpy as np # 生成时间序列数据 x = [1, 2, 3, 4, 5] y1 = [10, 15, 13, 17, 20] y2 = [8, 12, 14, 18, 22] # 计算相关系数 corr = np.corrcoef(y1, y2)[0, 1] # 输出结果 print('Correlation coefficient:', corr)
import numpy as np # 生成时间序列数据 x = [1, 2, 3, 4, 5] y1 = [10, 15, 13, 17, 20] y2 = [8, 12, 14, 18, 22] # 动态时间规整算法 def dtw_distance(ts_a, ts_b, d=lambda x, y: abs(x - y)): DTW = {} # 初始化边界条件 for i in range(len(ts_a)): DTW[(i, -1)] = float('inf') for i in range(len(ts_b)): DTW[(-1, i)] = float('inf') DTW[(-1, -1)] = 0 # 计算DTW矩阵 for i in range(len(ts_a)): for j in range(len(ts_b)): cost = d(ts_a[i], ts_b[j]) DTW[(i, j)] = cost + min(DTW[(i-1, j)], DTW[(i, j-1)], DTW[(i-1, j-1)]) # 返回DTW距离 return DTW[len(ts_a)-1, len(ts_b)-1] # 计算两个时间序列之间的DTW距离 dtw_dist = dtw_distance(y1, y2) # 输出结果 print('DTW distance:', dtw_dist)
The above is the detailed content of Python compares two time series to see if they are graphically similar. For more information, please follow other related articles on the PHP Chinese website!