Avec l'avènement de l'ère des données, de plus en plus de données sont collectées et utilisées à des fins d'analyse et de prédiction. Les données de séries chronologiques sont un type de données courant qui contient une série de données basées sur le temps. Les méthodes utilisées pour prévoir ce type de données sont appelées techniques de prévision de séries chronologiques. Python est un langage de programmation très populaire avec une forte prise en charge de la science des données et de l'apprentissage automatique, c'est donc également un outil très approprié pour la prévision de séries chronologiques.
Cet article présentera certaines techniques de prévision de séries chronologiques couramment utilisées en Python et fournira quelques exemples de leur utilisation dans des projets réels.
Les séries chronologiques stationnaires font référence à des caractéristiques statistiques qui fluctuent dans le temps et ne changent pas avec le temps. Temps modifié série. Dans de nombreux cas, les données de séries chronologiques ne sont pas stationnaires, ce qui signifie qu'elles comportent des tendances temporelles et des composantes saisonnières. Pour convertir ces données en une série temporelle stationnaire, nous pouvons utiliser une technique de différenciation, qui calcule la différence entre deux points temporels consécutifs. La bibliothèque pandas en Python fournit des fonctions qui peuvent être utilisées pour effectuer cette opération.
Ce qui suit est un exemple d'utilisation de la technique de différenciation pour convertir une série temporelle non stationnaire en une série temporelle stationnaire :
import pandas as pd # 读取时间序列数据 data = pd.read_csv("time_series_data.csv", header=None) # 对数据进行一阶差分 data_diff = data.diff().dropna()
import pandas as pd import numpy as np # 读取时间序列数据 data = pd.read_csv("time_series_data.csv", header=None) # 使用5个数据点进行移动平均 rolling_mean = data.rolling(window=5).mean()[5:] # 预测下一个时间步的值 last_value = data.values[-1][0] prediction = np.mean(rolling_mean) + last_value print(prediction)
from statsmodels.tsa.arima_model import ARIMA # 读取时间序列数据 data = pd.read_csv("time_series_data.csv", header=None).values.flatten() # 训练ARIMA模型 model = ARIMA(data, order=(2, 1, 0)) model_fit = model.fit(disp=0) # 预测未来 n 个时间点的值 future_prediction = model_fit.predict(start=len(data), end=len(data)+n-1)
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!