この記事は「【リアルタイム電力予測】需要・価格・電源最適化ダッシュボード構築記」シリーズの六日目です
Day1はこちら | 全体構成を見る
今回は、残差分析を行っていきます。
残差とは実測-予測の差を表しており、モデルが説明しきれなかった部分になります。
残差分析をする目的は以下の3点です
- モデルの苦手領域(季節・時間帯・特異日)を特定する
- 特徴量設計の見落としをみつける
- モデル選択の判断材料にする
4日目で扱ったLightGBMと5日目で扱ったGRUの予測結果を使用します。
最終結果
LightGBM
LightGBM RMSE train: 2324.676, test: 2593.769
LightGBM R^2 train: 0.878, test: 0.868
GRU
GRU RMSE train: 2449.147 test: 2558.349
GRU R^2 train: 0.865, test: 0.871
GRU は LightGBM よりもわずかに良い精度となりました。
残差プロット(実績vs予測)
45度線に一直線に並ぶかどうかを確認します。
45度線より上にあると大き目に予測しており、下にあると小さめに予測してしまっていることになります。
LightGBM
以下のような非線形なバイアスが見られます
- 中程度の需要 → 過大予測(線より上)
- ピーク需要 → 過小予測(線より下)
GRU
なんとなくLightGBMよりこじんまりした感じはあります。
特に需要が高まっているときにLightGBMより残差が小さいです。
残差の時系列プロット(誤差の発生時期)
残差を時系列で見ると、どの「日」に外しているのかが分かります。
LightGBM
特に 7月24日 の外れが非常に大きいことがわかります。

他にも1月4日や3月30日は一日の中で外すレンジが大きい日でした。
GRU

下半分の広がり、つまり実際により大きく予測する日がLightGBMより多く見えます。一方で全体的に下にずれて0の赤線の位置が異なっています。
こちらは1月13日、3月30日を同じように外しています。
残差プロット(時間帯)
RMSE(二乗平均平方根誤差)を時間帯別にplotしてみました。

LightGBM は、
- 朝(6〜9時)
- 夜(19〜22時)
で大きな誤差が見られます。
これは需要が急激に変化する時間帯です。
GRU は、
- ほぼ全時間帯で LightGBM より小さい誤差
- 特に朝夕の急上昇・急下降が得意?
という傾向が表れています。
残差ヒートマップ(月 × 時間)
月と時間を組み合わせたものを作ってみたく、ヒートマップにして残差が正に大きいものを赤、負に大きいものを青で表してみました。
LightGBM
LightGBM では、
- 夏(7〜9月)だけ強い過小予測(青)
- それ以外の季節は過大予測(赤)
という 強い季節的バイアス が見られます。
ここから、LightGBM が時間連続性・平滑性を学ぶことは苦手だということが分かります。
GRU
GRU では、
- 月ではなく 時間帯 で誤差が変化
- 昼は過大予測、朝と夜は過小予測
と、日内周期を中心とした誤差構造 を持っています。
これは ACF とも一致します(後述)。
時系列の滑らかな変動を学習して、直前の需要パターンを強く参照することが読み取れます。
ACF(自己相関)
自己相関(ACF)は、誤差が「連続して同じ方向に出ているか」、「周期的に繰り返されているか」 を測る指標です。
赤線は48ステップ(24時間周期)、96ステップ(48時間周期)を表しています。
LightGBM
ラグ48(1日周期)でも自己相関が比較的大きいです
→ 毎日同じ時間に誤差が繰り返されていることを意味します。
GRU
こちらも序盤の自己相関は高いですが、LightGBM より早く減衰しています(若干)。日にちをまたぐ誤差が LightGBM より小さいです(若干)。
特異日
ACF やヒートマップで外している日が分かったので、個別に中身を見ていきます。
7月24日(夏の猛暑 → 気温急低下)
気温が本当か?というぐらい下がっていますが、この気温の下降にLightGBMがつられています。GRUは多少下降はしていますが、LightGBMほどではないようです。つまり、GRU のほうが 気象ショックに対する耐性が強いようです(GRUはパターンを学習しているので需要の継続性を保っている)。
※ 気温の急降下は調べてみたところ本当にありました
1月13日・1月14日(気温と暖房需要のズレ)
両日とも最高気温と最低気温の差が大きい日でした。
気温の変化はほぼ一緒なのですが、電力需要の推移が異なっていて難しい日です(どちらも平日)。
夜~朝にかけての電力需要を特にGRUが過小評価しています。最高気温が上がったので需要を低めに見積もったのが続いているのでしょうか?
3月30日(寒の戻りの日)
この日はどちらのモデルも同じように外しています。
3月30日は気温が下がってますが、そこまで暖房需要がなかったのでしょうか?
https://www.
data.jma.go.jp/stats/etrn/view/daily_s1.php?prec_no=44&block_no=47662&year=2025&month=3&day=&view=p1
このサイトを見ると、29日から大幅に気温が下がっていました。もしかすると、それまでの暖かい気候を見てもう暖房を片付けた人が多かったのかもしれません。気温以外の説明変数(前日までの行動パターン)も考慮に入れるのは難しいですね。
ここからは、精度が良かったGRUの残差をもう少し詳しく分析していきます。
気温別残差
全体のカテゴリをplotしていみると全体的に残差は予測値のほうが大きくなりがちということが分かります。

夏
冬
冬は寒い日の予想のほうが難しいのか下にひろがっている感じがします。暖房需要の個人差の影響もあるのか?

暖房も冷房もいらなそうな日
下に広がっていることが分かります。
平日休日別残差
休日
休日のみにすると、休日の予測は極端に広がっているところも見受けられますが、中央に寄る傾向はありそうです。

まとめ
| 項目 | LightGBM | GRU |
|---|---|---|
| 季節の極端値(猛暑・寒波) | 影響されやすい | 影響に強い |
| 日内周期の学習 | 弱い(同じ時刻で誤差が再発) | 強い(ACF が小さい) |
| 残差ヒートマップ | 月ごとの差が大きい | 時刻ごとの差が大きい |
| ピーク需要予測 | 苦手 | 比較的得意 |
明日
ここで電力需要予測パートは終わりです。
明日から電力価格予測に入ります。
需要よりも複雑で難しくなりますが、はりきって頑張ります!![]()













