2 ポイント 投稿者 GN⁺ 2023-12-05 | 1件のコメント | WhatsAppで共有
  • 国家レベルの犯罪率のように変動性が大きい指標を点予測だけで示すと、小さなトレンド差が過剰に解釈されやすく、判断には予測区間もあわせて見る必要がある
  • Pythonのstatsmodelsの**ARIMA(1,1,2)**モデルで1960〜2015年の暴力犯罪率を学習し、2016〜2025年を予測しており、コードとデータはGitHubで公開されている
  • 2016〜2020年の1年先予測の標準誤差は20未満だが、複数年を連続して予測すると誤差が蓄積し、2025年の95%予測区間は260.36〜575.07まで広がる
  • 2021年と2022年の実測値はRichard Rosenfeldの上昇トレンド予測と食い違ったが、ARIMAの予測区間内には依然として収まっており、モデルとは両立可能である
  • 長期の国家犯罪率予測は地方の政策対応に直接使いにくく、実際の人員・資源配分には、都市成長に伴うサービス要請増加のようなより具体的な予測のほうが有用である

点予測だけでは犯罪率トレンドを判断しにくい

  • Richard RosenfeldはCriminologistで国家レベルの犯罪率予測を扱い、2023年末に公開された記事で2021〜2025年の予測を提示した
  • FBIの犯罪統計が1年遅れで出ることへの不満はあるものの、この予測は公開時点ですでに過ぎた年まで含む事後的な予測という性格を持っている
  • 点予測はほぼ常に外れるため、予測値の周辺にある予測区間もあわせて示すべきである
  • 誤差範囲を見ると、小さなトレンド差に基づく解釈がどれほど簡単に揺らぐかがわかる

ARIMAで再現した予測実験

  • 分析にはPythonのpandasstatsmodels.tsa.arima.model.ARIMAmatplotlibが使われている
  • データは1960〜2019年のUCR_1960_2019.csvと、2020〜2022年の追加値を結合して構成している
    • 暴力犯罪率VRateViolent / Population * 100000で計算される
    • 財産犯罪率PRateも同じ方式で計算される
  • コードとデータはGitHubにある
  • Rosenfeldの論文と比較できるよう、1960〜2015年を学習区間として**ARIMA(1,1,2)**モデルを当てはめている
    • Rosenfeldは暴力犯罪率にARIMA(1,0,2)を当てはめたと書いているが、データを差分化したとも述べているため、ARIMA(1,1,2)に相当する
    • Rosenfeldのモデルにはインフレのような外生要因が入るが、ここでは含めていない
    • 別途grid searchで最適モデルを探してはいない

モデル診断と誤差が大きくなる仕組み

  • 当てはめたモデルのAR(1)係数は負で、過差分の可能性がある
  • violent.test_serial_correlation('ljungbox')を基準にすると、残差に有意な自己相関はない
  • 自動ARIMA方式でより良いモデルを選べる可能性はあるが、この事例では大半のARIMAモデルが非常に似た予測と誤差区間を作る可能性が高い
  • 2016〜2020年は新しいデータを順次追加しながら1年先予測として比較できる
    • この区間の標準誤差は19.813228で、20未満である
    • Rosenfeldが有用性の基準として見積もった10%の絶対誤差範囲に入っている
  • 数年先を予測すると誤差は蓄積する
    • 2022年を予測するには、まず2021年の予測が必要になる
    • 2023年は2021年、2022年、2023年を連鎖的に予測しなければならない
    • 標準誤差はおおむねsqrt(steps*se^2)のように増加し、分散が加算される構造になっている

2016〜2025年の予測区間と観測値

  • ARIMAモデルの2016〜2025年の予測平均はおおむね379〜420の間だが、時間がたつほど予測区間は広がる
    • 2021年の平均は412.99、95%区間は374.16〜451.82
    • 2022年の平均は420.17、95%区間は342.16〜498.18
    • 2023年の平均は416.91、95%区間は303.53〜530.28
    • 2025年の平均は417.72、95%区間は260.36〜575.07
  • Rosenfeldの点予測は一部の年ではARIMA平均より実測値に近い
    • 2020年の観測値398.5に対して、Rosenfeldは394.9、ARIMA平均は379.21である
    • 2021年の観測値387.0に対して、Rosenfeldは404.1、ARIMA平均は412.99である
    • 2022年の観測値380.7に対して、Rosenfeldは409.3、ARIMA平均は420.17である
  • ARIMAのpoint estimate MAPEはheld-out sampleでRosenfeldより悪い区間もあるが、観測値はARIMAの予測区間内に入っている
  • 2021年と2022年の観測値は、Rosenfeldの上昇トレンド予測がすでに外れていたことを示している
  • ARIMA予測は本質的に平均回帰的であり、数ステップ以内に平均項へ収束する傾向がある

最新データ反映後に低下した2023〜2025年予測

  • 2021〜2022年のデータを追加した後、2023〜2025年を再予測した
  • 更新後の予測は従来の長期予測より低くなった
    • 2023年の平均は371.98、95%区間は333.14〜410.81
    • 2024年の平均は380.09、95%区間は302.08〜458.11
    • 2025年の平均は376.40、95%区間は263.03〜489.78
  • グラフを見ると誤差範囲の大きさをより把握しやすい
  • 外生要因を含める場合、数年先予測ではその外生要因自体も予測する必要があり、その誤差もあわせて反映しなければならない

マクロな犯罪率予測の政策的限界

  • 国家レベルの暴力犯罪率予測は、実際の政策対応にすぐ使うのが難しい
  • Pittsburghのような都市が国家レベルの犯罪率予測を政策判断に直接使う理由はない
  • 予測精度が5%や1%の水準まで改善しても、連邦レベルの実務担当者が「2年後に暴力犯罪率が10上がるので警察官を1342人増員しよう」といった対応を取るのは難しい
  • マクロな犯罪率予測には、外れたときに負うべきskin in the gameがないという批判がつきまとう
  • 実際の犯罪予測の応用では、都市で住宅やアパート1戸が追加されると年間のサービス要請が約1件増えるという推定のほうが実用的である
    • 成長している都市では、このような方法で長期の人員配分計画を立てるほうが適している

あわせて言及された参考文献

1件のコメント

 
GN⁺ 2023-12-05
Hacker News の意見
  • ここで興味深い点が2つあります。1つは筆者が扱っていることで、もう1つは扱っていないことです。第一に、記事の末尾にあるように、予測は通常、意思決定につながるべきであり、両者が切り離されると価値が不明確になり得ます。
    Rosenfield は過去データに関する統計的結論に、予測としてさらに重みを持たせようとしているようですが、それは疑わしく聞こえます。第二に、エラーバーが何を意味すべきかも不明確です。1つは信頼区間[1]で、もう1つは標準偏差です。つまり、自分の点予測と実際の結果との差の二乗を、事実上予測していることになります。
    [1] 用語が正確でないことは認めます

    • 最近 Hacker News で、誰かが統計を「外れたときにどれほど驚くべきかを測ろうとするもの」と表現していました。太いエラーバーは外れることを想定すべきだという感覚を与え、細いエラーバーは外れたという事実がかなり気持ち悪いものになり得ることを示します。
      統計全体を包含する説明ではありませんが、予測を考える際には有用な見方です。
    • Bill Phillips [1] が擁護し、今では私も従っている立場はこれです。「信頼区間が含意する賭けのどちら側でも喜んで受け入れられなければならない」
      たとえば95%信頼区間なら、真の値が区間外にあるという19:1のオッズも、真の値が区間内にあるという1:19のオッズも、同じように受け入れられなければなりません。この方法は一般的にも正しく、不確実性の議論における意味をはるかに実感しやすくし、すぐ実行できる基準になります。適切に行えば、過度に保守的でも過度に楽観的でもない不確実性を与えるようになります。
      読者に賭けのどちら側でも選ばせるという考えに少し胃が痛くなるなら、それは正しい方向です。エラーバーを適切に設定し、推論が文書化されていて防御可能だとかなり確信できるようになると、その感覚は薄れます。
      元の質問への追加の答え: 1標準偏差のエラーバーは68%信頼区間で、2標準偏差は95%信頼区間です。もちろん頻度主義者だと仮定した場合です。
      [1] https://www.nobelprize.org/prizes/physics/1997/phillips/fact...
    • 予測におけるエラーバーは、モデルが持つ不確実性だけを意味し得ます。モデル群に対するエラーバーがなければ、そのモデルがどれほど良いかについて何も言えず、たとえあっても上位モデルが不適切な場合があります。
    • それは信頼区間ではありません。信頼区間とは、モデルが正しく指定されているという仮定の下で、95%の場合に真の値を含む確率変数です。
    • エラーバーは信頼区間であれ標準偏差であれ、その区間内で確率がどのように分布しているかを教えてくれないため、有用性は限定的です。予測の聖杯は、事後分布全体を予測する確率的予測であり、そこからサンプルを取り、シナリオや underlying なランダム過程の実現値を作ることができます。
  • ぜひそうすべきです。数年間で何千ものオンライン実験を回した組織にいたのですが、新しい処置の効果を比較するとき、エラーバーがあるとずっと理解しやすくなりました。
    それは判断を曇らせると考える人もいました。たとえば新しい処置が1%の「改善」を生んだものの、信頼区間が -10% から 10% なら、その実験はその指標がどう影響を受けたのかを教えてくれていないということです。こうなると決定が恣意的に感じられますが、まさにそこが要点です。その場合、決定は実際に恣意的であり、信頼区間はその事実を知らせ、別のトレードオフを見るようにしてくれます。信頼区間が 0.9% から 1.1% なら、効果にずっと強い確信を持てます。
    大きな問題は、場合によっては意味のあるエラーバーを得るのが極めて難しいことです。たとえば機械学習モデルのすべての予測にそうした値を付ける状況を想像するとよさそうですが、ほとんどのモデルタイプでそれを合理的に達成する方法はよく分かりません。十分に独立した集団が得られるようにランダム割り当てできず、複雑な実験設計が必要になるオンライン実験も同様です。
    同じように、重要なすべての指標についてヒストグラム、つまり統計的分布を定期的に見るべきです。あるとき、大規模なWebサービス呼び出しで速度問題があり、多くの呼び出しは50ms未満で終わっていた一方、あまりにも多くの呼び出しが500msのタイムアウトに達していました。同時に速度ヒストグラムに2つの明確なピークが生じているのを見て、さらに掘り下げたところ、その2つのピークがログアウトユーザーとログインユーザーを表していることが分かりました。そのおかげで広範なコードを無視し、そうでなければ疑わなかったであろう最近デプロイされたパーソナライズコードの中に速度問題を見つけられました。

    • 「決定がより恣意的に感じられる」という点は、経験を積むほど頻繁に目にするようになります。人々は恣意的な決定を本当に嫌います。
      恣意的な決定に正当性を付け加えようとして、驚くほど努力します。ときにはノイズを信号のように見せる統計モデルの形を取り、しばしば偽の専門家から出てきます。彼らには自分が何をしているのかを知る方法論やフィードバックループはありませんが、社会的に育まれた専門性の雰囲気を持っているため、決定に正当性を貸すことができます。昔は呪術師、司祭、占星術師と呼ばれ、今では経営コンサルタントやマクロ経済学者と呼ばれています。
      私は何が起きているのかを明示し、文字どおりコインを投げる方を好みます。ただし、それは輝く石の山を大きく得るための戦略ではありません。
    • ログアウトユーザーとログインユーザーが2つのピークだったというのは非常によくあることで、統計的工程管理の中核的な考え方の1つです。
      ときには、値をおおむね似た分布で生成する単一の過程があります。これは計画や推論などに複数の統計ツールを使えるので、良い状況です。
      しかし実際には、2つ以上の過程が混ざっているのに1つであるかのように扱うことがよくあります。各過程の中ではおおむね似た分布の値を作りますが、合算された全体に対して行う分析は混乱します。見ている偽の単一過程の主要な構成要素を知っていれば、常に競合相手より先んじることができます。
      [1]: https://two-wrongs.com/statistical-process-control-a-practit...
  • この考えに完全に同意する。付け加えるなら、日付の見積もり、つまり締め切りにも誤差棒があるべきだ。結局、日付も予測なのだから
    ステークホルダーが日付を求めるなら、どんな誤差棒を望むのかも指定すべきだ。不確実性の見積もりを伴わない生の日付には意味がない。同様に、エンジニアが他のステークホルダーに日付を示すなら、何らかの形で不確実性の見積もりも一緒に含めるべきだ。X日前に終わる確率が90%だと言うのと、99.9%だと言うのとでは、途方もない差がある

    • 問題は、締め切りに関する日付見積もりが標準分布ではないため、誰もが使う一般的な統計ツールが機能しないことだ
      ほとんど片側に偏ったべき乗則分布だ。締め切りはほとんど早く終わらず、早く終わったとしてもたいてい大幅ではない。逆に遅れるときは、ばかげたほど大きく遅れることがある
      そういう対象に信頼区間を作るのは本当に難しい
    • 本当にその通りだ。以前この方法について書いたことがあるが、大きな利点の一つは失敗から学べるようにすることだ
      誤差棒のない日付見積もりは、間違っていると証明できない。だが「この日付までに終わる確率は50%」と言えば、直近20件のそうした見積もりを振り返ったとき、およそ10件は期日通りに終わっているはずだ。そうでなければ見積もりが較正されていないということだ。それでも、少なくともその事実を知ることはできる。誤差棒がなければ分からなかったはずだ
    • 締め切りとは、誤差棒の上限がその日付を超えられないことを含意する。だから締め切りを守るには、適切にバッファを入れる必要がある
  • 不確実性の定量化は、データサイエンス、特に機械学習で放置されがちな側面だ。実務者が必ずしも統計の背景を持っているわけではなく、機械学習の側はおおむね「まず予測し、質問は後で」という態度なので、こうした細やかさは後回しにされる
    私は常に誤差棒を求める

    • 誤差棒を求めることはできるが、常に可能だったり意味があったりするわけではない。どんな方法にも、正規分布・独立同分布の誤差推定を大ざっぱに「押し込む」ことはできるが、それが必ず意味を持つとは限らない
      一般的な非線形モデルで、常識的な不確実性の概念を実際に説明する誤差棒、より一般には誤差分布を作ることは、理想的な場合でも理論的にも計算的にもかなり負担になり得る。Monte Carlo Dropoutのように理論的裏付けのある優れた実用的方法もあるが、そこで生成される誤差棒が常に望む誤差であるとは限らない。MC DOはモデル重みによる不確実性は推定するが、たとえば悪い学習データによる不確実性は推定しない
      不確実性を自然に含む方法は強く支持するが、経験的には非常に有用な結果を出しながら、有用な不確実性推定を効率よく作ったり解釈したりする方法が明確でないモデル種別は多い
      さらに別の、しばしば放置される問題として較正されたモデル出力という概念があり、これはまた別の深い沼だ
    • それなら、これは本当に科学なのか? これは統計学入門レベルの概念だ。理由と必要性、それらがない場合の危険性も非常に明らかだ
      それなのに、こうした前提条件なしにモデルへ何百万も投じられ、人々に解決策として売られ、「人々が買うなら価値があるからだ」というふうに済まされる。人々は詐欺師にも金を払う
    • 誤差棒は重要だ。しかし多くの人はその意味を誤って解釈している。https://errorbars.streamlit.app/ を参照
    • 統計としての誤差棒は、underlying データやモデルの問題も明らかにし得る。たとえば非現実的に狭かったり対称的だったりするなら疑うべきだ
  • Walter Lewinの8.01講義で、測定について似たことを言っていたのを思い出す。「不確実性を知らない測定は無意味だ」
    https://youtu.be/6htJHmPq0Os
    予測は未来について行う測定だと言える

    • 似た文脈でLawrence M. Kraussの言葉もある。「不確実性を定量化し、モデルに含められる能力が、科学を定性的ではなく定量的なものにする」
      出典: https://www.edge.org/response-detail/10459
  • これは天気の話だと思っていた

    • 私もそう思っていて、気象モデルの誤差棒を扱うスレッドを期待していた。実際にそういうものはある
      ECMWFはアンサンブルモデルを走らせており、おそらく初期条件を少しずつ変えたり、モデルパラメータを一定の範囲内で変えたりして、51個の同時モデルを実行している。この51個のモデルから、かなり良い信頼区間を得ることができる
      ただしこれは解像度が低く、実行頻度も低いモデルだ。「HRES」モデルは空間解像度が2倍なので、アンサンブルでは走らせていないのだと思う。理由は当然、コストが非常に高いからだ
      [1]: https://en.wikipedia.org/wiki/Integrated_Forecast_System#Var...
    • しばらくmeteoblueを使っているが、予測にどの程度自信があるかを教えてくれる。今は明日の予測可能性は中程度、明後日は高いと評価されているのが分かる
      https://content.meteoblue.com/en/research-education/specific...
    • 私もそう思ったが、人間の文脈でいう普通の大気現象が、最近そこまで外れるようになっていて、誤差棒に実用的価値がある、あるいはむしろ混乱を招くほどなのか気になる
  • この記事で興味深い例はナウキャスティングだ。データが入ってくるのを待つ間に、現在や過去を予測する技術だ
    誤差範囲がなければ、ずさんな科学であり統計だ

    • 何が得なのかを常に言うのは簡単ではない。確率モデルのモデル内部の不確実性を示しても、実際の過程と比較した推定誤差については何も言えないことがある
      予測が実際の不確実性を示すには、データ生成過程を知っているという、かなり恵まれた立場にいなければならない。可能な場合なら、大量の過去データで大まかに較正してみることはできるが、それでも限界はある
    • そういうものが存在するのは納得できる。ただし私の冗談は少し面白くなくなる。「私はほとんど予言者だ。出来事が起きた直後に予測できるからね」
  • すべての見積もり、予測、補間、外挿には、チームが問題に置く仮定を反映した信頼区間、予測区間、または許容区間があるべきだ。適用分野によって異なる

  • この論文[1]を思い出しました
    「科学的結果における予測可能性の錯覚:専門家でさえ推論の不確実性と結果のばらつきを混同する」
    従来、科学者は個々の結果の予測可能性である結果のばらつきよりも、統計的推定の精度である推論の不確実性を伝えることに重きを置いてきました。この論文は、それが科学的結果の含意について大きな誤解を生み得ることを示しています。具体的には、事前登録された3つのランダム化実験で、参加者は同じ科学的発見を、推論の不確実性のみ、結果のばらつきのみ、またはその両方を示した可視化で見て、その発見の大きさと重要性について回答しました。医療専門家、プロのデータサイエンティスト、テニュアトラック教員の回答からなる結果は、推論の不確実性だけを可視化する一般的な方法が、高度に訓練された専門家にさえ治療効果を大きく過大評価させ得ることを示しています。反対に、推論の不確実性と結果のばらつきを併せて示すと、平均的には結果に対する他の主観的印象を保ったまま、より正確な認識につながります
    [1] https://www.microsoft.com/en-us/research/publication/an-illu...

    • 非常に興味深い参考文献です。不確実性モデリングという分野全体があります
  • 予測はエラーバーがなくても有用なことがあります。時には、行動を決めるのに点予測ひとつで十分です
    しかし時には、良い意思決定のために予測分布全体を知ることが役立つ、あるいは必要な場合があります。「点予測は常に間違っている」という言葉は連続データでは正しいですが、ある株が2倍ではなく2.01倍になると予測できるなら、それでも有用です