Google Trendsから取得した時系列データをPythonを使用してSTL(Seasonal and Trend decomposition using Loess)分析を行い、トレンドと季節性に分解するための基本的な手順を以下に示します。ここでは、statsmodels
ライブラリのSTL
関数を使用します。まずは必要なライブラリをインストールし、それから具体的なコードを記述します。
必要なライブラリのインストール
statsmodels
ライブラリを使用します。もしインストールされていない場合は、以下のコマンドでインストールできます。
pythonCopy code!pip install statsmodels
STL分析の実行
以下のステップに従って、STL分析を行います。
- 必要なライブラリをインポートします。
- Google Trendsから取得したデータを読み込み、時系列データを準備します。
STL
関数を使用してデータをトレンド、季節性、残差に分解します。- 分解した成分をプロットして視覚化します。
pythonCopy code# 必要なライブラリのインポート
import pandas as pd
from statsmodels.tsa.seasonal import STL
import matplotlib.pyplot as plt
# Google Trendsのデータを読み込む(ここでは例として'your_data.csv'を使用)
df = pd.read_csv('your_data.csv', index_col='date', parse_dates=True)
# 時系列データの選択(例として'your_column'を使用)
ts = df['your_column']
# STL分析の実行
stl = STL(ts, seasonal=13) # ここでのseasonalパラメータはデータに合わせて調整してください
result = stl.fit()
# 分解した成分の取得
trend = result.trend
seasonal = result.seasonal
resid = result.resid
# 分解した成分のプロット
plt.figure(figsize=(12, 8))
plt.subplot(411)
plt.plot(ts, label='Original')
plt.legend(loc='best')
plt.subplot(412)
plt.plot(trend, label='Trend')
plt.legend(loc='best')
plt.subplot(413)
plt.plot(seasonal,label='Seasonality')
plt.legend(loc='best')
plt.subplot(414)
plt.plot(resid, label='Residuals')
plt.legend(loc='best')
plt.tight_layout()
このコードは、Google Trendsのデータを読み込んでSTL分析を行い、得られたトレンド、季節性、残差をプロットする基本的なフレームワークを提供します。実際のデータや分析の目的に合わせて、パラメーター(例えばseasonal
)の調整や追加の処理が必要になる場合があります。