1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【総集編】気象庁データを分析してわかった、データ分析で必ずハマる6つの罠------データ分析で誰もがハマる罠は、気候データの中にも潜んでいた。

1
Posted at

はじめに

気象庁の40年分データを分析し続けた。

すると、

  • 「東京が一番暑い」
  • 「温暖化は一直線に進む」
  • 「暖冬なのに大雪が増えた」

という当たり前だと思っていた話が、ことごとく "半分だけ正しかった"

そして振り返ってみると、間違っていたのは気候の理解だけではない。私自身も、データ分析で典型的な罠に何度もハマっていた。

この記事では、3本の記事を振り返りながら、データ分析で繰り返し現れた6つの罠を紹介する。

分析を振り返ると、私は何度も同じような落とし穴にハマっていた。

  1. 平均だけ見て安心する
  2. 一本のトレンド線を信じる
  3. 集計単位の影響を忘れる
  4. 印象的な出来事を過大評価する
  5. 統計が言える範囲を超えて解釈する
  6. 面白い結果をそのまま信じる

どれも気候分析だけの話ではない。売上分析でも、アクセス解析でも、アンケート集計でも、同じ罠が繰り返し現れる。


3本シリーズのまとめ

この半年間、気象庁の公開データをPythonで分析し、3本の記事を書いた。

記事 直感 データが示したこと
第1作:東京の猛暑日は40年で13倍。それでも全国1位ではなかった。なぜ香川が1位? 東京が猛暑日増加1位のはず 香川が1位だった
第2作:東京の猛暑日13倍の裏で起きていたこと──気温と海面水温を重ねたら「停滞期」が見つかった 温暖化は一直線に進んでいる 1998〜2010年に停滞期があった
第3作:「暖冬なのに大雪」は半分本当だった──40年分の気象庁データで検証した 暖冬なのに大雪が増えた気がする 降雪量は減少、ただし変動が拡大

3本に共通しているのは、直感が完全に外れていたのではなく、「半分は正しかった」 という点だ。

この「半分の誤差」が、データ分析で繰り返し現れるパターンを教えてくれた。


なぜ直感は「半分だけ正しい」のか

直感は経験の蓄積から生まれる。だから完全に外れることは少ない。

問題は直感が経験の特定の部分しか反映しないことだ。

人間の直感が拾うもの:
  ・記憶に強く残った出来事(ニュース・体験)
  ・目につきやすいもの(大都市・極端な事象)
  ・最近のこと(遠い過去より近い数年)

人間の直感が見落とすもの:
  ・平均的な状態(普通の日はニュースにならない)
  ・長期の変化(10年単位の変化は体感しにくい)
  ・自分が観察していない地域・指標

気象データの分析でこれが如実に現れた。


罠1: 平均だけ見ていると見落とす ── 分散も確認する

第3作の教訓

北陸の降雪量を調べると、1981〜1990年の平均(278cm)より2015〜2024年の平均(185cm)は33%も少ない。

「雪は減った」という結論は正しい。

しかし年ごとの変動係数を計算すると:

時代 平均最深積雪 変動係数(CV)
1990年代 39cm 34%(安定・少雪)
2010年代 42cm 70%(不安定・ドカ雪)

平均は似ているのに、ばらつきが2倍になっていた。

この差こそが「暖冬なのにドカ雪ニュースが増えた気がする」の正体だった。

平均が安定していた1990年代:
  30, 35, 40, 42, 38, 45, 37 cm  ← 毎年似たり寄ったり。大ニュースなし

変動が大きい2010年代:
  20, 25, 120, 15, 18, 95, 22 cm ← 普段は少ない。でも突然ドカ雪。ニュース2回

📌 教訓:平均だけでなく分散(標準偏差・変動係数)を必ず確認する。

→ 詳しい分析過程は第3作「「暖冬なのに大雪」は半分本当だった」で紹介しています。


罠2: 一本の線で説明しない ── 構造変化がないか疑う

第2作の教訓

日本の年平均気温偏差を1981〜2024年で見ると、上昇トレンドは明らか。

しかし全期間を一本の直線で引くのは粗すぎた。

期間を分けてみると:

期間 変化速度
1981〜1997年 +0.51℃/10年 *
1998〜2010年 ±0.00(停滞)
2011〜2024年 +1.12℃/10年 ***

1998〜2010年の13年間は停滞期だった。 全期間で線形回帰を引いても、この停滞は見えない。

from scipy import stats

# ❌ 全期間一本の線で引く(構造変化を見落とす)
slope_all, *_ = stats.linregress(years, temp)

# ✅ 期間を分けて比較する
for y0, y1 in [(1981,1997), (1998,2010), (2011,2024)]:
    mask = (years >= y0) & (years <= y1)
    sl, _, _, pv, _ = stats.linregress(years[mask], temp[mask])
    print(f"{y0}-{y1}: {sl*10:+.2f}℃/10年  p={pv:.3f}")

さらに「本当にブレークがあるのか」は Chow検定(特定の年を境に傾向が変化したかどうかをF検定で調べる手法)で確かめた。

日本近海SST → Chow(2010年) : **p = 0.0008 *(強く有意)

グラフで「見える」と、統計的に「言える」は別の話だ。

📌 教訓:長期データを分析するとき、期間全体で一本の線を引く前に、構造変化がないか疑う。Chow検定は手軽で強力。

→ 詳しい分析過程は第2作「気温と海面水温を重ねたら停滞期が見つかった」で紹介しています。


罠3: 集計単位を変えると違う顔が見える ── スケールを疑う

第1作の教訓

「猛暑日が増えた都道府県ランキング」を作ると、東京は全国20位だった。

東京に住んでいる人が「東京が一番暑いはず」と感じるのは自然だ。だが全国47県のデータを見ると、香川(+23.0日)が1位だった。

統計では「集計単位を変えると結果が変わる問題」(MAUP: Modifiable Areal Unit Problem)として知られている。

全国平均を見ると: 日本全体で猛暑日が増えた
東京だけ見ると: 東京は13倍になった(印象は強烈)
47県で見ると: 香川が1位、東京は20位

どの「スケール」で見るかで、見える景色が変わる

データを集計する前に「このスケールで集計して何が見えなくなるか」を考えること。

📌 教訓:全体平均・地域別・個別の3レベルで確認する習慣を持つ。集計すると消える情報がある。

→ 詳しい分析過程は第1作「東京の猛暑日は40年で13倍。それでも全国1位ではなかった」で紹介しています。


罠4: 人は派手な出来事を覚えている ── 印象を数えない

第3作の教訓

「最近の夏は異常に暑い気がする」という感覚は正しい。

しかし「2010年代から急に変わった気がする」という感覚については、もう少し精密に考える必要があった。

人間の記憶に強く残るのは平均的な日ではなく、例外的な出来事だ。

北陸の冬(1990年代):
  30, 35, 40, 42, 38, 45 cm  ← 毎年似たり寄ったり。記憶に残らない。

北陸の冬(2010年代):
  20, 25, 120, 15, 18, 95 cm ← 普段は少ない。でも120cmの年がニュースに。

2018年の福井147cm、2021年の関越道立ち往生。これらは強烈に記憶に残る。「そうでもない年」はほとんど記憶されない。

これは認知科学でいう可用性ヒューリスティック(頭に浮かびやすいもの=頻繁に起きているもの、と脳が誤解する現象)によるものだ。

平均が下がったことで、極端な年のインパクトが相対的に大きくなった。

📌 教訓:「○○が増えた気がする」という直感を検証するとき、全年の平均・中央値を必ず計算する。人の記憶は極値に偏っている。

→ 詳しい分析過程は第3作「「暖冬なのに大雪」は半分本当だった」で紹介しています。


罠5: 「言えること」と「まだ言えないこと」を混ぜない

第2作の教訓

Chow検定で2010年のブレークを検定したとき、結果は:

指標 Chow(2010年)
日本年平均気温偏差 p = 0.044 *
日本近海SST(海面水温) p = 0.0008 ***
猛暑日数 p = 0.209 n.s.

SSTは非常に有意だが、猛暑日数はChow検定で有意でなかった。

記事ではこれを正直に書いた。

✅ 言えること
「2010年前後に、気温偏差とSSTの上昇速度が統計的に変化した」

❌ まだ言えないこと
「猛暑日の増加ペースが2010年を境に変わった」
(傾向は見えるが、Chow検定で確定できない)

p=0.044は有意水準0.05をわずかに下回るものの、「強い証拠」とは言えない。本文では「2010年前後」という表現にとどめた。

📌 教訓:p値の大小で主張の強さを変える。「有意だった」だけで強い主張をしない。「言えること/まだ言えないこと」を明示する習慣が信頼性を高める。

→ 詳しい検証過程は第2作「気温と海面水温を重ねたら停滞期が見つかった」で紹介しています。


罠6: 面白い結果をそのまま信じない ── 自分で疑う

第1作の教訓

香川が猛暑日増加1位という結果が出たとき、最初に疑った。

  • 2024年が外れ値では? → 2024年を除いた2020〜2023年でも20.8日で1位
  • 観測点変更では? → 急変年(1994、2010、2024)は全国的猛暑年と一致。変更の痕跡なし
  • 集計ミスでは? → コードを再確認

3点を確認して初めて「香川1位は信頼できる」と判断した。

この「自分の面白い結果を自分で疑う」プロセスこそが、データ分析記事の信頼性を生む。

Qiita読者が反応するのは「香川が1位でした」という結論より「香川が1位だったので自分で疑った」という過程だ。

# 外れ値確認の例
# 2024年を除いた2020-2023年平均
d_ex2024 = df_agg[(df_agg["pref"]=="香川") & 
                   df_agg["year"].between(2020, 2023)]
print(d_ex2024["mosho_days"].mean())  # 出力: 20.75 → 依然として1位

📌 教訓:面白い結果が出たときこそ、外れ値・データ品質・集計ミスを疑う。「自分で疑って確認した」というプロセスの透明性が読者の信頼を得る。

→ 詳しい検証過程は第1作「東京の猛暑日は40年で13倍。それでも全国1位ではなかった」で紹介しています。


まとめ:直感とデータは敵ではない

6つの気づきをまとめると:

# 対応する分析技術
1 平均だけ見ていると見落とす 分散・変動係数を必ず確認する
2 一本の線で説明してしまう 期間を分けて比較、Chow検定
3 集計単位の影響を忘れる 複数スケールで確認(MAUP(可変面積単位問題)意識)
4 印象的な出来事を過大評価する 全年の平均・カウントで検証
5 言えることと言えないことを混ぜる p値の大小で主張の強さを調整
6 面白い結果をそのまま信じる 外れ値・データ品質・再現確認

直感は否定するものではない。長年の経験や肌感覚は「何かが変わっている」というシグナルとして機能する。

データ分析の役割はそのシグナルを精密にすることだ。

「なんとなくそう思ってた」→「データで確認すると半分正しかった」→「残り半分に意外な構造があった」

この流れが繰り返されるのが、データ分析の面白さだと思う。

気候変動は単純な「暑くなる・寒くなる」の話ではない。平均と極端現象、そして人間の記憶が重なることで、私たちはしばしば実際とは違う景色を見ている。

データはその「違い」を教えてくれる。


使用データ:気象庁 日次観測・年次統計(47都道府県 1981〜2024年)
分析言語:Python(pandas, scipy, matplotlib)

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?