K_DM Book
用語集
対象者 高校生
対象者別の入口 →

対象者の設定はこのブラウザの中にだけ保存されます。

言語 JA

季節成分とトレンドの分解(高校生向け)

入門高校生

04.7.2 高校生向け

季節成分とトレンドの分解(高校生向け)

最終更新 2026-11-01 読了時間 1 分
まとめ
時系列の折れ線は、トレンド(長い期間でゆっくり上がる・下がる流れ)、季節成分(毎年・毎週など決まった間隔でくり返す波)、残差(どちらでも説明できない残りのゆらぎ)の 3 つを足したものと考えられます。分解とは、1 本の折れ線をこの 3 枚のグラフに分けて描き直すことです。トレンドは「1 周期分(図では 365 日)の移動平均」で取り出し、季節成分は「同じ時期どうしの平均」で取り出すので、使うのは引き算と平均だけです。分けて見ると「本当に伸びているのか」「夏が暑かっただけなのか」を 2 段目と 3 段目で区別できます。

こんな場面を想像してみよう #

学校の近くのコンビニで、冷たい飲み物の売上を 4 年分、毎日記録したとします。折れ線は夏に高く冬に低い波を 4 回くり返しながら、全体としては少しずつ右上がりに見えます。店長が「本当に成長しているの? 去年の夏が暑かっただけ?」と聞いてきました。1 本の折れ線のままでは答えにくいはずです。

上から順に、原系列・トレンド・季節・残差の 4 段。原系列の大きな波が、ほぼ一直線のトレンドと、毎年同じ形をくり返す季節の波と、0 のまわりで細かく散る残差に分かれている

1 段目が元の折れ線(原系列)。2 段目のトレンドは波が消えてほぼ一直線に上がり、3 段目の季節は同じ形の波が 4 回くり返され、4 段目の残差は 0 を中心に細かく散るだけです。「成長している」のは 2 段目、「夏に高い」のは 3 段目の担当、と切り分けられました。

仕組み:1 本の線を 3 枚に分ける #

分解の約束は次の 1 行です(加法型)。

$$ \text{観測値} = \text{トレンド} + \text{季節} + \text{残差} $$

まず周期を決めます。図では毎年同じ形なので 365 日で、くり返しの間隔がそのまま周期になります。次にトレンドを取り出します。1 周期分(365 日)の移動平均をとると、窓にちょうど 1 年分が入るので夏の高さと冬の低さが打ち消し合い、ゆるやかな流れだけが残ります。これが 2 段目です。それから季節成分を取り出します。原系列からトレンドを引くと「季節+残差」が残り、これを「1 月 1 日どうし」「1 月 2 日どうし」と同じ日付で集めて平均すると、ゆらぎは薄まって毎年共通の形だけが浮かびます。それを 4 年分並べたのが 3 段目です。最後に残差を求めます。原系列からトレンドと季節の両方を引いた残りが 4 段目で、ここに形が残っていなければ分解はうまくいっています。

flowchart LR A["原系列"] --> B["1 周期の移動平均<br>→ トレンド"] A --> C["原系列 − トレンド"] C --> D["同じ時期どうしで平均<br>→ 季節成分"] C --> E["さらに季節を引く<br>→ 残差"]

動かして見てみよう #

下の図で「再生」を押すと、説明した手順が 1 つずつ進みます。手順ごとの説明は図の下に出ます。

気をつけたいこと #

最初の注意は、周期(period)を間違えると分解が崩れることです。365 日の波に周期 30 で分解すると、季節の段に意味のない形が出て、残差に大きな波が残ります。まず折れ線で山と山の間隔を数えましょう。二つ目は、4 段目の残差に形が残っていたら要注意ということです。「夏だけプラスに偏る」「後半だけ広がる」なら、季節の高さが年ごとに変わる構造があるので、乗法型(かけ算で考える)や STL 分解を試します。三つ目は、トレンドの端が欠けることです。1 年分の移動平均を使うので最初と最後の半年分は計算できず、図の 2 段目が両端で切れているのはそのためです。最後に、新商品の発売のような 1 回限りの出来事は、どの段にも入らず残差に飛び出します。

やってみよう #

最初の課題は、月ごとの平均気温 12 個を「季節」とし、毎月 0.1 ℃ ずつ上がる「トレンド」を足して 2 年分 24 個の表を作ることです。12 か月の平均をとるとトレンドだけが残ることを確かめましょう。二つ目は、身の回りで「くり返す波」と「長い流れ」が混ざっているものを 2 つ探すことです(図書館の利用者数、学校の電気使用量など)。それぞれの周期は 7 日か 365 日か、考えてみてください。三つ目は、「分解がうまくいかない例」を考えることです。ヒントは、ゴールデンウィークのように毎年日付がずれる行事や、周期の途中で店が拡張して波の高さが変わる場合です。

つぎに読む #

seasonal_decompose を使った実装と、加法型・乗法型の切り替えは標準版の季節成分とトレンドの分解で扱っています。分解の 1 歩目になる移動平均の仕組みは移動平均と移動標準偏差(高校生向け)で説明しています。週の周期(曜日のクセ)を棒グラフで確かめる方法は曜日別の平均をバーで確認(高校生向け)へ進んでください。