時系列グラフの読み方:前年同月比・季節変動・指数化で増減を正しくつかむ
AIを使いこなすClaudeで執筆し、GPTで自動校閲・修正しています。

月次グラフで「先月より減った」と気づいても、それだけでは悪化とは言えません。毎年その時期に下がる季節の波かもしれないからです。また、指数の基準の置き方しだいで、基準からどれだけ高い水準にあるかの印象が変わります。 結論から言うと、読み方は次の3点です。 • 季節の影響を抑えて前年と比べたいときは、前年同月比を見ます。 • 月ごとの上下を季節の波と切り分けたいときは、「同じ月の前年」と比べるか、季節調整済みの系列を使います。原数値の前月比は、季節の波を含んだままです。 • 水準の異なる複数の系列を並べたいときは、基準を100にそろえる指数化を使います。ただし、基準に何を選んだかで見た目の大きさが変わります。 この記事では、架空の月次売上を使って前年同月比と基準年指数を実際に計算します。そのうえで、グラフを読む手順と、AIに計算を任せるときの依頼文を紹介します。
この記事の目次
前年同月比が季節変動の影響を抑えられる理由
前年同月比は、ある月の値を前年の同じ月と比べた変化率です。
前年同月比(%)=(今月の値 − 前年同月の値)÷ 前年同月の値 × 100
前年同月の値が0の場合、この式では計算できません。総務省統計局の消費者物価指数に関するQ&Aでは、毎年同じような動きをする季節変動と、それを除去した季節調整値を説明し、前年同月比でも季節性の影響を除けるとしています(統計局:消費者物価指数に関するQ&A)。同じ月どうしで季節の影響が同程度なら、比べるとおおむね打ち消し合います。ただし、季節の形の変化や休日・営業日数の違いなどの影響は残り得ます。
ただし前年同月比には弱点が2つあります。
- 前年の値が特別に高かった月(低かった月)は、今年の変化率が逆にぶれます。 分母が特殊だからです。
- 直近の勢いは見えにくくなります。 今月の変化も数字に反映されますが、1年前との比較なので、直近の増減が転じても前年同月比のプラス・マイナスがすぐに切り替わるとは限りません。
説明用の例:架空の月次売上で計算する
次の表は説明用の架空データです。実在の店舗や統計の数字ではありません。単位は万円で、2025年は12か月分、2026年は1〜9月分を想定しています。指数は「2025年の月平均(300万円)=100」としました。数字は手計算で、コードは実行していません。
- 1月、2025年:240、2026年:252、前年同月比:+5.0%、2026年の指数(2025年平均=100):84.0
- 2月、2025年:228、2026年:234、前年同月比:+2.6%、2026年の指数(2025年平均=100):78.0
- 3月、2025年:264、2026年:270、前年同月比:+2.3%、2026年の指数(2025年平均=100):90.0
- 4月、2025年:282、2026年:291、前年同月比:+3.2%、2026年の指数(2025年平均=100):97.0
- 5月、2025年:306、2026年:312、前年同月比:+2.0%、2026年の指数(2025年平均=100):104.0
- 6月、2025年:330、2026年:339、前年同月比:+2.7%、2026年の指数(2025年平均=100):113.0
- 7月、2025年:384、2026年:387、前年同月比:+0.8%、2026年の指数(2025年平均=100):129.0
- 8月、2025年:402、2026年:420、前年同月比:+4.5%、2026年の指数(2025年平均=100):140.0
- 9月、2025年:324、2026年:315、前年同月比:−2.8%、2026年の指数(2025年平均=100):105.0
2025年の12か月合計は3,600万円なので、月平均は300万円です。指数は「その月の値 ÷ 300 × 100」で求めます。たとえば2026年8月は 420 ÷ 300 × 100 = 140.0 です。
前月比だけを見ると何が起きるか
2026年の原数値で前月比を計算すると、次のようになります。
- 6月→7月は (387 ÷ 339 − 1) × 100 で +14.2%。
- 7月→8月は (420 ÷ 387 − 1) × 100 で +8.5%。
- 8月→9月は (315 ÷ 420 − 1) × 100 で −25.0%。
最後の−25.0%だけを見ると、急落したように見えます。しかし2025年も8月→9月は (324 ÷ 402 − 1) × 100 で −19.4% でした。両年ともこの時期に下がっています。前年同月比で見ると、9月は−2.8%と小幅のマイナスです。季節の波がある可能性は読み取れますが、この2年分だけで落ち込みの大半が季節要因だとは断定できません。
一方で、8月の+4.5%は1月の+5.0%に次ぐ大きさです。仮に2026年8月の売上が一時的な要因で押し上げられていたなら、2027年8月の前年同月比は、その高い値を分母にするため低めに出る可能性があります。数字の裏にある原因(需要の前倒し、販売日数、天候など)は、このグラフだけでは決まりません。別のデータで確認します。
指数化:基準の置き方で印象が変わる
指数化は、基準にした値を100として、他の値を比率で表す方法です。単位の違う系列や、水準が大きく違う系列を同じグラフに載せるときに役立ちます。統計局の物価指数でも、基準年の値を100とし、その基準年は5年ごとに更新されると説明されています(同じQ&Aでは、現在の基準年は2025年と記載されています)。
基準の選び方で、見え方は次のように変わります。
- 2025年の月平均=100、2026年8月の指数:140.0、見え方:平均より4割高い
- 2025年1月(240万円)=100、2026年8月の指数:175.0(420÷240×100)、見え方:7割以上伸びたように見える
- 2025年8月(402万円)=100、2026年8月の指数:104.5(420÷402×100)、見え方:ほぼ横ばいに近い
どれも計算は正しいのに、受ける印象はかなり違います。基準に月を1つ選ぶと、その月が季節の山か谷かで見え方がずれます。基準が1月なら全体が大きく見え、8月なら小さく見えます。月次の系列を指数化するときは、基準を年平均にするほうが、季節の影響を受けにくくなります。
なお、この例のように基準となる値だけを変えても、同じ系列内の前年同月比は変わりません。全体を同じ数で割り直しているだけだからです。変わるのは「水準の見た目」です。ただし、公的統計の基準改定で品目やウエイトも変わる場合は、前年同月比も変わることがあります(統計局:消費者物価指数に関するQ&A)。
時系列グラフの読み取り手順
次の順で確認します。
- 軸と単位を確認します。 縦軸がゼロから始まっているか、円・万円・指数のどれかを見ます。
- 原数値か季節調整済みかを確認します。 注記に「季節調整値」とあるかを探します。原数値なら、毎年の同じ時期に似た山谷があるかを確認します。
- 前年のグラフと重ねます。 同じ月に同じ形の山谷が出ていれば、季節変動の可能性があります。できれば複数年で確かめます。
- 前年同月比を計算します。 同じ月どうしの変化率を見て、季節の影響を抑えて比べます。
- 前年の特殊な月を確認します。 前年に異常な高さや低さがなかったかを見ます。あれば、今年の変化率はそのぶん割り引いて読みます。
- 指数の基準を確認します。 基準年・基準月はいつか、基準が山か谷かを見ます。
- %と%ポイントを区別します。 前年同月比が+5%から+2%に下がったときは、「3%ポイント低下」であり、売上が3%減ったわけではありません。
判断に迷ったときは、次の表で使う指標を選びます。
- 去年より伸びたか、使う指標:前年同月比、注意点:前年が特殊な月は、変化率が逆にぶれる
- 直近の勢いはどうか、使う指標:季節調整済みの前月比、注意点:原数値の前月比は季節の波を含む
- 年内の山と谷の位置、使う指標:複数年の月別パターンや季節指数、注意点:季節指数は傾向などを分けて推定する。1年分だけでは傾向と季節が混ざる
- 複数の系列を並べたい、使う指標:基準年平均=100の指数、注意点:基準が月1つだと印象がずれる
AIに計算を任せる依頼文と、人が確認すること
AIには、表の整形と計算の下書きを任せられます。ただし、数値の読み違いや計算ミスが起こり得ます。計算結果をそのまま採用せず、必ず人が検算してください。
渡すのは次の情報です。
- 系列の名前、単位、期間
- 原数値か季節調整済みかの区別
- 指数の基準にしたい期間
- 欠けている月の有無
社内の売上などの機密データは、そのまま貼らず、月別の相対値や架空の数字に置き換えて試します。
依頼文の例です。
以下は説明用の架空の月次売上データです(単位:万円、原数値)。
2025年1月〜12月と2026年1月〜9月があります。
1. 2026年の各月について、前年同月比(%)を小数第1位まで計算してください。
2. 2025年の月平均を100とした指数を、2025年と2026年の全月について計算してください。
3. 計算式と途中の値も表で示してください。
4. 2026年の前月比(原数値)が大きく動いた月を挙げ、前年の同じ時期に同じ動きがあったかを確認してください。
5. 原因は推測せず、「別に確認すべきデータ」の候補だけを挙げてください。
データ:
2025: 240,228,264,282,306,330,384,402,324,288,270,282
2026: 252,234,270,291,312,339,387,420,315人が確認する点は次のとおりです。
- 月の対応がずれていないか(2026年1月と2025年1月)
- 分母が「前年同月」になっているか
- 指数の基準が依頼どおりか
- 3か月ほどを電卓で再計算した結果と合っているか
- 原因の推測が、データにない断定になっていないか
表計算ソフトやPythonで計算する場合
Pythonのpandasでは、pct_changeのperiods引数で何行ずらして比べるかを指定します。月次データなら12行前との比較で前年同月比を出せます(pandas公式:DataFrame.pct_change)。結果は割合なので、%にするには100を掛けます。
次のコードは上の表と同じ計算をする例です(実行して確認したものではありません)。
import pandas as pd
values = [240, 228, 264, 282, 306, 330, 384, 402, 324, 288, 270, 282,
252, 234, 270, 291, 312, 339, 387, 420, 315]
s = pd.Series(values, index=pd.period_range("2025-01", periods=len(values), freq="M"))
base = s.loc["2025-01":"2025-12"].mean() # 2025年の月平均(300)
out = pd.DataFrame({
"売上": s,
"前月比%": (s.pct_change() * 100).round(1),
"前年同月比%": (s.pct_change(periods=12) * 100).round(1),
"指数": (s / base * 100).round(1),
})
print(out.loc["2026-01":])月が1つでも欠けた系列では、12行前が前年同月とは限りません。欠けた月を含めて並べ直したうえで使ってください。
読み取りの落とし穴
最後に、読み取りで起こりやすい誤りを挙げます。
- 前年同月比の高低だけで好不調を決めない。 前年が低すぎた月は、今年が普通でも高く出ます。
- 1年分の月別比を「季節の癖」と決めつけない。 傾向と季節が混ざっています。比べる年が増えるほど、季節の形は安定して見えてきます。
- 基準年が違う指数を、そのまま並べない。 公的統計は基準年の改定があるため、公表資料の基準年を確認します。
- %の差と%ポイントの差を混同しない。
数字を1つ見たら、「何と比べた数字か」を確認する習慣をつけると、時系列グラフの誤読を減らせます。

