Python membandingkan sama ada dua siri masa adalah serupa secara grafik

PHPz
Lepaskan: 2023-04-13 17:49:03
ke hadapan
1411 orang telah melayarinya

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
Salin selepas log masuk

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()
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk


<.>

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!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!