Python のデータ分析ライブラリを使用して時系列データを処理および予測する方法
時系列データとは、時系列に並べられたデータを指します。関連性と傾向。株式市場の予測、天気予報、売上予測など、多くの分野で時系列データ分析が重要な役割を果たしています。 Python には、NumPy、Pandas、Statsmodels など、時系列データの処理と予測に役立つ強力なデータ分析ライブラリが多数あります。この記事では、Python でこれらのライブラリを使用して時系列データを処理および予測する方法を紹介し、具体的なコード例を示します。
1. データの前処理
時系列データを処理する前に、通常、データ クリーニング、欠損値や外れ値の処理など、データの前処理が必要です。 Pandas は、時系列データの前処理プロセスを簡素化する非常に便利なライブラリです。
まず、必要なライブラリをインポートする必要があります:
import pandas as pd import numpy as np
次に、Pandas を使用して時系列データを読み取り、日付列が DatetimeIndex 型に解析されます:
data = pd.read_csv('data.csv', parse_dates=['date'], index_col='date')
データが Pandas DataFrame にロードされると、データをクリーンアップしたり、欠損値や外れ値を処理したりできます。たとえば、dropna()
メソッドを使用して欠損値を削除できます。
data = data.dropna()
fillna()
メソッドを使用して欠損値を埋めることもできます。
data = data.fillna(method='ffill')
2. データの探索
時系列データを処理した後、通常はデータを視覚化して探索する必要があります。これは、データの傾向、季節性、外れ値などの特性を理解するのに役立ちます。 Matplotlib と Seaborn は、この目標の達成に役立つ Python で一般的に使用されるデータ視覚化ライブラリです。
まず、必要なライブラリをインポートする必要があります:
import matplotlib.pyplot as plt import seaborn as sns
次に、Matplotlib を使用して時系列データの折れ線グラフを描画できます:
plt.plot(data.index, data['value']) plt.xlabel('Date') plt.ylabel('Value') plt.title('Time series data') plt.show()
Seaborn 時系列データのボックス プロットを描画します:
sns.boxplot(data=data) plt.xlabel('Variable') plt.ylabel('Value') plt.title('Boxplot of time series data') plt.show()
3. データ モデリングと予測
時系列データを調査した後、通常はデータをモデル化して予測する必要があります。 Statsmodels は、時系列モデリングと予測の実装に役立つ Python で一般的に使用される統計モデル ライブラリです。
まず、必要なライブラリをインポートする必要があります:
import statsmodels.api as sm
次に、Statsmodels の ARIMA モデルを使用して、時系列データをモデル化および予測できます。 ARIMA (自己回帰移動平均モデル) は、時系列データの自己相関関数と偏自己相関関数をフィッティングすることで将来の値を予測する、一般的に使用される時系列予測モデルです。
次は、時系列予測に ARIMA モデルを使用するコード例です:
model = sm.tsa.ARIMA(data['value'], order=(1, 0, 0)) model_fit = model.fit(disp=False) forecast = model_fit.forecast(steps=10)
上記のコードでは、ARIMA(1, 0, 0) モデルを使用して時間をモデル化します。 series data を取得し、forecast()
メソッドを使用して次の 10 時点の値を予測します。
4. 結果の評価と視覚化
時系列予測を実行した後、結果を評価して視覚化する必要があります。これは、モデルの精度と信頼性を判断するのに役立ちます。
Pandas と Matplotlib を使用して、予測結果の折れ線グラフを描画できます:
plt.plot(forecast.index, forecast.values, label='Forecast') plt.plot(data.index, data['value'], label='Actual') plt.xlabel('Date') plt.ylabel('Value') plt.title('Time series forecast') plt.legend() plt.show()
Pandas を使用して、予測結果の二乗平均平方根誤差 (RMSE) を計算することもできます:
rmse = np.sqrt(np.mean((forecast.values - data['value'].values[-10:])**2)) print('RMSE: ', rmse)
上記は、データの前処理、データの探索、データのモデリングと予測、結果の評価と視覚化を含む、Python のデータ分析ライブラリを使用して時系列データを処理および予測するための基本的なプロセスです。この記事のサンプル コードが、読者がこれらのライブラリをよりよく理解し、時系列データの処理と予測に適用するのに役立つことを願っています。
以上がPython のデータ分析ライブラリを使用して時系列データを処理および予測する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。