Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Python membandingkan sama ada dua siri masa adalah serupa secara grafik

Python membandingkan sama ada dua siri masa adalah serupa secara grafik

PHPz
PHPzke hadapan
2023-04-13 17:49:031414semak imbas

Untuk membandingkan sama ada dua siri masa adalah serupa secara grafik, anda boleh melakukan perkara berikut:

  1. Perbandingan visual: plot kedua-dua siri masa pada graf yang sama dan gunakan skala dan teg paksi yang sama untuk perbandingan. Ciri-ciri mereka seperti arah aliran, puncak dan lembah boleh diperhatikan dan dibandingkan.
  2. Perbandingan Puncak dan Palung: Bandingkan dengan membandingkan puncak dan lembah dalam dua siri masa. Amplitud dan kedudukan mereka boleh dibandingkan.
  3. Analisis korelasi: Kira pekali korelasi antara dua siri masa untuk menentukan sama ada mereka mempunyai hubungan linear. Jika pekali korelasi mereka hampir kepada 1, mereka mempunyai arah aliran yang sama.
  4. Kaedah tak linear: Gunakan kaedah tak linear untuk membandingkan dua siri masa, seperti ledingan masa dinamik, transformasi wavelet, dsb. Kaedah ini boleh membantu menangkap persamaan antara dua siri masa.

Perlu diambil perhatian bahawa persamaan dalam grafik tidak sepenuhnya mewakili persamaan antara dua siri masa, kerana grafik yang sama boleh sepadan dengan siri masa yang berbeza. Oleh itu, apabila membandingkan siri masa, pelbagai aspek maklumat perlu dipertimbangkan secara menyeluruh.

1. Persediaan

Sebelum anda mula, anda perlu memastikan bahawa Python dan pip telah berjaya dipasang pada komputer anda. Jika tidak, anda boleh melawati artikel ini: Panduan Pemasangan Python Terperinci untuk memasangnya.

(Pilihan 1) Jika anda menggunakan Python untuk analisis data, anda boleh memasang Anaconda secara terus: Anaconda, pembantu yang baik untuk analisis dan perlombongan data Python, mempunyai Python dan pip terbina dalam.

( Pilihan 2) Di samping itu, anda disyorkan agar menggunakan editor VSCode, yang mempunyai banyak kelebihan: Rakan kongsi terbaik untuk pengaturcaraan Python—Panduan Terperinci VSCode.

Sila pilih mana-mana kaedah berikut untuk memasukkan arahan untuk memasang dependensi: 1. Buka Cmd (Start-Run-CMD) dalam persekitaran Windows. 2. Persekitaran MacOS Open Terminal (perintah+ruang untuk memasuki Terminal). 3. Jika anda menggunakan editor VSCode atau Pycharm, anda boleh terus menggunakan Terminal di bahagian bawah antara muka.

pip install matplotlib
pip install numpy

2. Gunakan Matplotlib untuk membandingkan dua siri masa secara visual

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()

3 . Kira pekali korelasi bagi dua siri masa:

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)

4 Gunakan Python untuk melaksanakan algoritma meledingkan masa dinamik (DTW):

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)


<.>

Atas ialah kandungan terperinci Python membandingkan sama ada dua siri masa adalah serupa secara grafik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam