Table des matières
1. Préparation
2 Utilisez Matplotlib pour comparer visuellement deux séries chronologiques
3. Calculez le coefficient de corrélation de deux séries chronologiques. :
4. Utilisez Python pour implémenter l'algorithme de déformation temporelle dynamique (DTW) :
Maison développement back-end Tutoriel Python Python compare si deux séries chronologiques sont graphiquement similaires

Python compare si deux séries chronologiques sont graphiquement similaires

Apr 13, 2023 pm 05:49 PM
python 序列 图形

Pour comparer si deux séries chronologiques sont similaires graphiquement, vous pouvez procéder comme suit :

  1. Comparaison visuelle : tracez les deux séries chronologiques sur le même graphique et utilisez les mêmes étiquettes d'échelle et d'axe pour la comparaison. Leurs caractéristiques telles que les tendances, les pics et les creux peuvent être observées et comparées.
  2. Comparaison des pics et des creux : comparez en comparant les pics et les creux de deux séries chronologiques. Leurs amplitudes et positions peuvent être comparées.
  3. Analyse de corrélation : calculez le coefficient de corrélation entre deux séries chronologiques pour déterminer si elles ont une relation linéaire. Si leur coefficient de corrélation est proche de 1, ils ont des tendances similaires.
  4. Méthodes non linéaires : utilisez des méthodes non linéaires pour comparer deux séries temporelles, telles que la déformation temporelle dynamique, la transformation en ondelettes, etc. Ces méthodes peuvent aider à capturer les similitudes entre deux séries chronologiques.

Il est à noter que la similitude des graphiques ne représente pas complètement la similitude entre deux séries temporelles, car un même graphique peut correspondre à des séries temporelles différentes. Par conséquent, lors de la comparaison de séries chronologiques, plusieurs aspects de l’information doivent être pris en compte de manière globale.

1. Préparation

Avant de commencer, vous devez vous assurer que Python et pip ont été installés avec succès sur votre ordinateur. Sinon, vous pouvez consulter cet article : Guide d'installation super détaillé de Python pour l'installer.

(Facultatif 1) Si le but de l'utilisation de Python est l'analyse de données, vous pouvez installer directement Anaconda : Anaconda, une bonne aide pour l'analyse et l'exploration de données Python, a Python et pip intégrés.

(Facultatif 2) De plus , il est recommandé à tout le monde d'utiliser l'éditeur VSCode, qui présente de nombreux avantages : Le meilleur partenaire pour la programmation Python - Guide détaillé VSCode.

Veuillez choisir l'une des méthodes suivantes pour saisir les commandes permettant d'installer les dépendances : 1. Ouvrez Cmd (Démarrer-Exécuter-CMD) dans un environnement Windows. 2. Environnement MacOS Ouvrez le Terminal (commande+espace pour entrer dans le Terminal). 3. Si vous utilisez l'éditeur VSCode ou Pycharm, vous pouvez utiliser directement le terminal en bas de l'interface.

pip install matplotlib
pip install numpy
Copier après la connexion

2 Utilisez Matplotlib pour comparer visuellement deux séries chronologiques

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()
Copier après la connexion

3. Calculez le coefficient de corrélation de deux séries chronologiques. :

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)
Copier après la connexion

4. Utilisez Python pour implémenter l'algorithme de déformation temporelle dynamique (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)
Copier après la connexion


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'interprète Python peut-il être supprimé dans le système Linux? L'interprète Python peut-il être supprimé dans le système Linux? Apr 02, 2025 am 07:00 AM

En ce qui concerne le problème de la suppression de l'interpréteur Python qui est livré avec des systèmes Linux, de nombreuses distributions Linux préinstalleront l'interpréteur Python lors de l'installation, et il n'utilise pas le gestionnaire de packages ...

Comment résoudre le problème de la détection de type pylance des décorateurs personnalisés dans Python? Comment résoudre le problème de la détection de type pylance des décorateurs personnalisés dans Python? Apr 02, 2025 am 06:42 AM

Solution de problème de détection de type pylance Lorsque vous utilisez un décorateur personnalisé dans la programmation Python, le décorateur est un outil puissant qui peut être utilisé pour ajouter des lignes ...

Python 3.6 Chargement du fichier de cornichon MODULENOTFOUNDERROR: Que dois-je faire si je charge le fichier de cornichon '__builtin__'? Python 3.6 Chargement du fichier de cornichon MODULENOTFOUNDERROR: Que dois-je faire si je charge le fichier de cornichon '__builtin__'? Apr 02, 2025 am 06:27 AM

Chargement du fichier de cornichon dans Python 3.6 Erreur d'environnement: modulenotFounonError: NomoduLenamed ...

FastAPI et AIOHTTP partagent-ils la même boucle d'événements mondiaux? FastAPI et AIOHTTP partagent-ils la même boucle d'événements mondiaux? Apr 02, 2025 am 06:12 AM

Problèmes de compatibilité entre les bibliothèques asynchrones Python dans Python, la programmation asynchrone est devenue le processus de concurrence élevée et d'E / S ...

Comment s'assurer que le processus de l'enfant se termine également après avoir tué le processus parent via le signal dans Python? Comment s'assurer que le processus de l'enfant se termine également après avoir tué le processus parent via le signal dans Python? Apr 02, 2025 am 06:39 AM

Le problème et la solution du processus enfant continuent d'exécuter lors de l'utilisation de signaux pour tuer le processus parent. Dans la programmation Python, après avoir tué le processus parent à travers des signaux, le processus de l'enfant est toujours ...

Que dois-je faire si le module '__builtin__' n'est pas trouvé lors du chargement du fichier de cornichon dans Python 3.6? Que dois-je faire si le module '__builtin__' n'est pas trouvé lors du chargement du fichier de cornichon dans Python 3.6? Apr 02, 2025 am 07:12 AM

Chargement des fichiers de cornichons dans Python 3.6 Rapport de l'environnement Erreur: modulenotFoundError: NomoduLenamed ...

See all articles