地震予知はなぜ無理で、余震予測はなぜできるのか — 能登の余震130件で実測
昨日2026年7月28日の16時27分、熊本でM7.1の地震が起きました(気象庁マグニチュード、深さ16km)。41分後にはM6.1。そして今朝も余震が続いています。手元のCLIで引くとこう見えます。
$ quake-lens recent --limit 4
time lat lon depth mag src place
2026-07-29T04:17:00Z 32.700 130.800 10.0 2.1 p2p 熊本県熊本地方
2026-07-29T04:13:00Z 32.500 130.600 10.0 3.5 p2p 熊本県熊本地方
2026-07-29T04:09:00Z 32.500 130.600 10.0 3.1 p2p 熊本県熊本地方
2026-07-29T03:52:00Z 32.500 130.600 10.0 2.9 p2p 熊本県熊本地方
この列を見ながら「次に大きいのが来るか」は、誰にも分かりません。地震学の公式見解がそうです。USGSは「地震の予知に成功した科学者はいない。近い将来できるようになる見込みもない」とFAQに書いていますし、日本でも2017年に南海トラフの防災体制が「確度の高い予知は困難」という前提へ切り替わりました。
ところが同じ地震学が、大きい地震のあとには「今後1週間程度、同程度の地震に注意してください」と言い切ります。予知は無理だと言った口で、なぜ1週間の見通しは語れるのか。
矛盾ではありません。「予知」と「予測」が別の言葉だからです。この記事では2つの違いを整理したうえで、能登半島地震(2024年)の余震130件を使って「予測」側を実際に計算し、8日目の余震数を予測して答え合わせまでやります。使うのはPython標準ライブラリだけです。
「予知」と「予測」は別の言葉である
予知(prediction)は、個別の地震について「いつ・どこで・どの規模」を事前に言い当てることです。決定論の世界で、これは科学的に確立していません。ラドン濃度、動物の異常行動、電磁気ノイズ。前兆候補は何十年も研究されましたが、再現性のある予知手法は1つも残りませんでした。
予測(forecasting)は、地震の集団について統計的な性質を言うことです。「明日M6が来るか」は答えられませんが、「この余震活動のレートが1週間でどれくらい下がるか」「M5以上はM4以上のおよそ何分の1か」は答えられます。確率とレートの世界です。
エンジニアには、こう言い換えるのが一番早いと思います。Webサーバに次のリクエストが何時何分何秒に来るかは誰にも予測できませんが、明日のピークタイムのリクエストレートは容量計画に使えるくらいの精度で予測できますよね。あれと同じです。実際、余震の発生は数学的には非同次ポアソン過程としてモデル化されます。アクセス解析と同じ土俵の数学です。
個々のイベントは読めない。集団のレートは読める。地震学が言い切れるのは、大数の法則が味方につく側だけです。
道具は100年物の経験則2本
余震予測の中身は、意外なほど短い式2本です。
1本目はGutenberg-Richter則。マグニチュードM以上の地震の数Nは
log10 N = a − bM
に従います。傾きbは世界平均でほぼ1.0。つまりMが1下がるごとに地震は約10倍あります。M5が10回起きる場所ではM6が約1回、という換算表です。
2本目は大森・宇津則。本震からt日後の余震レートn(t)は
n(t) = K / (t + c)^p
でべき乗減衰します。大森房吉が1894年に原型を発表した式で、このとき材料にした余震記録のひとつが1889年の熊本地震でした。昨日M7.1が起きた熊本の余震列を眺める道具が、130年前の熊本から生まれているわけです。宇津徳治の修正(1961年)を経て、現在も気象庁の余震確率評価の土台に使われています。
どちらも「この地震がいつ来るか」には一切触れていないことに注目してください。触れているのは頻度とレート、つまり集団の性質だけです。
能登半島地震の余震130件で実測する

式を眺めるだけでは面白くないので、実データで推定します。USGSの公開カタログから能登半島地震(2024-01-01 16
JST、M7.5)後の10日間・M4以上を引くと131件、本震を除いた余震は130件です。まずb値。Aki(1965)の最尤推定は閉形式で、平均マグニチュードだけから求まります。
$ quake-lens catalog --start 2024-01-01 --end 2024-01-11 --min-mag 4.0 \
--format json > noto.json
$ quake-lens bvalue noto.json --mc 4.5
b = 1.0449
se = 0.1306
n_used = 64
mc = 4.50
b = 1.04 ± 0.13。世界平均の1.0ときれいに整合します。
このbが何の役に立つのか。換算表として使えます。推定に使ったM4.5以上は64件でした。b = 1.045をGutenberg-Richter則に入れると、M5.0以上は64 × 10^(−1.045×0.5) ≒ 19.2件、M5.5以上は5.8件と予測されます。実測はそれぞれ16件と7件。±数件の誤差で、マグニチュード別の頻度構造を2パラメータで言い当てています。「M4級がこれだけ観測されたなら、M5.5級はこのくらい混ざっているはず」という見積もりが、式1本でできるわけです。
b値そのものも地震学では監視対象です。bが低い地域は「小さい地震に対して大きい地震の比率が高い」ことを意味するので、応力が集中しているシグナルとして読まれます。もっとも、これも集団の統計であって、「この断層で次にいつ来るか」には翻訳できません。
実際にやると必ず踏む落とし穴がひとつあります。完全性マグニチュードMc(これ以上なら漏れなく記録されているとみなす下限)を4.5ではなく3.0に下げると、同じデータでb = 0.27という異常値が出ます。世界平均から4倍近く外れた値です。原因はデータではなく設定で、USGSのグローバルカタログは日本のM3級を拾いきれていません。存在するのに記録されていない小地震のぶん平均マグニチュードが不当に持ち上がり、推定が壊れます。「データを増やす(Mcを下げる)ほど結果が壊れる」という、検定の前提を疑う練習問題みたいな現象です。
次に減衰。大森・宇津則のフィットはOgata(1983)の最尤法で、(c, p)の2次元最適化に落ちます。
$ quake-lens omori noto.json --mainshock 2024-01-01T07:10:00Z
K = 23.3856
c = 0.0224
p = 0.8861
n_used = 130
window = [0.0000, 8.8356] days
p = 0.89。減衰の速さを表す指数で、典型値は1.0前後です。フィットしたモデルでレートを引くと、本震1時間後には1日あたり267件ペースだった余震(M4以上)が、1日後には23件/日、8日後には3.7件/日。最初の1日で全体の半分が起きる計算で、実測も130件中67件が初日でした。
モデルはどこまで当たって、どこから外れるのか
日ごとの実測とモデル期待値を並べます。
| 経過日 | 実測 | モデル期待 |
|---|---|---|
| 0–1日 | 67件 | 72.6件 |
| 1–2日 | 16件 | 16.6件 |
| 2–3日 | 15件 | 10.4件 |
| 3–4日 | 13件 | 7.7件 |
| 4–5日 | 8件 | 6.2件 |
| 5–6日 | 4件 | 5.2件 |
| 6–7日 | 3件 | 4.4件 |
最初の2日はほぼぴったり、その後も週のスケールでは形をよく追っています。2〜4日目に実測が上振れしているのは、大きめの余震が自分の余震(二次余震)を連れてくるためで、単純な大森則はこれを1本の減衰に均してしまいます。
では未来は当たるのか。前半7日分だけでフィットし直して(K=24.0, c=0.019, p=0.85)、8日目の余震数を予測してから答え合わせをしました。
予測: 4.3件。実測: 0件。
外れました。しかも翌日の0.84日間には4件まとめて起きています。これが統計予測の正直な姿です。期待値4.3のポアソン分布で0件を引く確率は約1.4%なので、モデルの想定内ではあるものの端の方。余震は素直に減らず、バースト的に固まって来ます(だから現代の実務では、二次余震を明示的に扱うETASモデルへ拡張されています)。
この外れ方には意味があります。統計予測は「8日目は4.3件です」という点の宣言ではなく、「期待値4.3の分布から引かれます」という宣言です。1週間スケールのレートの見通しには使えて、特定の日の件数を言い当てる道具ではない。気象庁が「今後1週間程度は注意」と幅のある言い方をするのは、逃げではなくて、この数学が言えることの正確な範囲です。
2本を合成すると「余震確率」になる
ここまでG-R則(マグニチュード方向の分布)と大森・宇津則(時間方向の減衰)を別々に検証しましたが、実務ではこの2本を掛け合わせます。大森則で「今後3日間の余震の総数」を見積もり、G-R則で「そのうちM5以上は何割か」を配分すると、「今後3日以内にM5以上の余震が発生する確率は○%」という文が作れます。Reasenberg-Jonesモデルと呼ばれる枠組みで、ニュースで見る余震確率の中身はおおむねこれです。
能登の実測値でやってみます。フィット済みのモデルから3〜6日目の余震(M4以上)の期待数は19.0件。b = 1.045でM5以上に配分すると1.7件。ポアソン分布で「1件以上来る確率」に直すと82%です。つまり本震から3日目の時点で「今後3日以内にM5クラスの余震が発生する確率は約80%」と発表できます。答え合わせをすると、この3日間の実測はM4以上が25件、M5以上は1件でした。M5が来るという見通しは当たり、件数の期待値としても妥当な範囲です。
材料は本震後数時間の余震データだけ。そこから式2本と確率分布1つで、防災情報として放送できる文章まで届く。これが「予測」側の全行程です。
で、なぜ予知は無理なのか
余震のレートがこれだけ式に乗るなら、本震も読めそうな気がしてきます。読めない理由は大きく3つです。
第一に、入力が観測できない。地震の発生を決めるのは地下数km〜数十kmの断層面の応力状態ですが、そこにセンサーは置けません。掘削で届くのはせいぜい数kmです。状態が見えない系の個別イベントは予測のしようがありません。
第二に、破壊の成長が初期条件に鋭敏。地震は小さな破壊が断層面を走って成長する現象で、M4で止まるかM7まで育つかは、断層面の摩擦や応力のわずかな凹凸に左右されます。始まりを見てから育ち方を当てるのも難しい、という性質です。
第三に、前兆の再現性がない。「あの地震の前にこれが起きた」という報告は山ほどありますが、「これが起きたら地震が来る」方向で検証すると偽陽性だらけになる。後ろ向きには何でも前兆に見える、という話でもあります。
本気の実証実験もやり尽くされています。有名なのがカリフォルニアのパークフィールド実験で、USGSは過去の規則的な発生履歴から「1993年までにM6が来る」と予測し、観測機器を敷き詰めて待ち構えました。M6が実際に来たのは2004年。11年遅れで、機器は健在でしたが、直前の前兆はそれでも捉えられませんでした。日本でも、東海地震だけは直前予知ができる前提で1978年に大規模地震対策特別措置法が作られましたが、約40年後の2017年、その前提自体が公式に取り下げられました。40年分の観測網と予算を投じて出た結論が「予知を防災の前提にしない」でした。
一方で余震の統計が成立するのは、1つの本震が数百〜数千の余震集団を作ってくれるからです。個々は読めなくても、集団になった瞬間に大数の法則が効き始める。「予知は無理で余震予測はできる」の正体は、決定論と確率論の境界線そのものです。
進行中の熊本にそのまま当てると
この記事を書いている時点で、昨日のM7.1から0.9日です。同じパイプラインが進行中の系列にもそのまま通ります。
$ quake-lens recent --src jma --limit 400 --format json \
| quake-lens omori - --mainshock 2026-07-28T07:27:15Z
K = 197.5693
c = 0.5990
p = 1.7686
n_used = 194
window = [0.0000, 0.9123] days
余震194件(気象庁の地震リスト経由)でフィットは走りますが、出てきたp = 1.77とc = 0.60は能登の値と比べて明らかに大きく、これは1日未満のデータでは推定が安定しないことの表れです。cが大きいのは本震直後の検知飽和がまだ窓の大部分を占めているため。b値も0.60と低く出ますが、こちらは気象庁リストが有感地震のみ(震度1以上)のリストで、無感のM2級が漏れるという、能登で見たのと同型のカタログ完全性の問題です。
数日分データが溜まってから再フィットすると、パラメータは落ち着いた値に収束していくはずです。なお、進行中の地震について確率の数字を出す仕事は個人ブログのやることではないので、防災判断は気象庁と自治体の発表を参照してください。この記事が提供するのは、その発表の裏で何が計算されているかの見取り図です。
まとめ
- 予知(個別イベントの決定論的な言い当て)は科学的に確立していない。入力が観測できず、成長が鋭敏で、前兆に再現性がないため
- 予測(集団の統計)は100年物の経験則2本で実用になっている。能登の余震130件でb = 1.04 ± 0.13、p = 0.89が標準ライブラリだけのPythonで再現できた
- ただし統計予測が返すのは分布であって点ではない。8日目予測4.3件・実測0件・翌日4件バースト、がその実演
- Mcの設定ひとつでb値は1.04から0.27まで壊れる。統計の前に、カタログの完全性を疑うこと
計算に使ったCLI(quake-lens)は、urllibとmathだけで書いた依存ゼロのPythonツールです。MCPサーバーとしても動くので、Claudeに繋ぐと「能登のb値を出して」の一言でここまでの計算が全部走ります。コードはGitHubで公開しています: kenimo49/quake-lens
次に大きい地震が来たとき、ニュースの「今後1週間程度は注意」の裏には、この2本の式と最尤推定が立っています。予知はできないと正直に言い、予測できる範囲だけを言う。地震学のこの線引きは、障害対応のポストモーテムで「再発時刻は予測できませんが、再発率はこう見積もれます」と書くのに似ていると私は思っています。
この記事は役に立ちましたか?