
我打造的洪水模型勝過 FEMA 地圖。然後它拒絕讓我申報。
我沒料到打造這個演示時最有趣的一刻,竟是軟體對我說不。
我手上有一個複合評級因子,在它從未見過的資料上,對真實洪水損失的排序勝過 FEMA 洪水分區。以我作為打造者的每一種直覺,這就是勝利。你該出貨了。結果管線最後一階段亮起紅燈,印出 NOT FILING-READY,點名最差的那個變數,並把它轉交給人類精算師。我自己的程式判定:我引以為傲的費率並不安全到可以申報。我坐在那裡一分鐘,想著這究竟是 bug,還是整件事的重點。
這就是整件事的重點。這篇文章要談的是:我為什麼如今認為,那道拒絕申報的閘門,比它背後的模型更有價值。
這個演示叫 FloodProof。它跑在德州哈里斯郡國家洪水保險計畫(NFIP)真實公開理賠簿上,資料來自 OpenFEMA。當我點擊 Re-run Diagnostic,九個階段會在真實記錄上即時執行,並在一秒內完成。沒有任何硬編碼。固定隨機種子讓切分可重現,所以我接下來要引用的數字,每次執行都會重新計算。

第一個讓我停下來的數字,並不是任何模型算出來的
我不斷回到這個數字,因為它不是我算出來的,是理賠自己算出來的。在這本哈里斯郡業務中,真實建築理賠已賠付金額裡,有 31 億美元——占比 45.9%——賠在 FEMA 評為高風險區之外的物業上(特殊洪水危害區,Special Flood Hazard Area)。沒有模型。沒有評分。只是對真實帳本加總。分區地圖——承保方至今仍用來錨定洪水費率的那張圖——對近一半的金額保持沉默——那些真正付出去的錢。
這與我事前讀到的一致。美國超過三分之二的洪水損害發生在 FEMA 高風險區之外;哈維颶風過後,哈里斯郡大約 70% 的洪水理賠來自那些區外(Veriprajna 解決方案頁研究,2026)。我相信它是統計數字。但當你看著它一筆一筆、一個普查區接著一個普查區,以真實美元累積在自己的螢幕上時,感覺完全不同。

分區地圖並不是稍微偏了。它對單一郡業務簿裡 31 億美元的真實損失保持沉默。
所以這張地圖是鈍器。做洪水定價的人早就知道。市場的答案一向是向供應商買更好的模型。我想弄清楚:更好的模型是否真是難點,還是難點在我沒有盯著的地方。
六個樸素的建築屬性能不能勝過分區地圖?
我並不認為普通脊迴歸能把針明顯撥動多少。評分核心刻意不華麗:用真實 OpenFEMA 建築屬性做脊迴歸複合——建築年齡、樓層數、是否墊高旗標、post-FIRM 規範合規、占用類型,以及障礙物。六個老實特徵。我的第一直覺是也要把投保建築保額餵進去,因為保額與賠付相關。我及時住手。賠付在機制上被保額封頂,若把它納入,評分就會偷瞄答案,讓回測變成循環論證。我把它砍掉了。單單這一刪,就是演示與魔術戲法的差別。
回測被設計成非循環。在 70% 訓練切分上擬合複合評分。在它從未見過的保留 30% 上評分,也就是 40,615 筆真實理賠。拿它對照真實的 ratedFloodZone 作為基線,以及真實的 amountPaidOnBuildingClaim 作為標籤。基線與標籤都獨立於模型,所以贏就是真正的樣本外勝利,而不是自己給自己打分。

勝幅超出我的預期。複合評分捕捉到了 1.694 倍 FEMA 分區在保留集理賠上最高十分位的損失金額,Gini 為 0.31,對比分區的 0.08。我換過多組隨機種子重跑,確認自己沒抽到幸運切分。提升幅度站得住,大致在 1.69 到 1.85 之間。六個樸素屬性,誠實擬合,在從未見過的金額上勝過聯邦洪水地圖。
而那正是我差點犯下整個市場正在犯的錯的地方。
那個重新框定整次打造的領悟
我記得當時覺得演示基本上做完了,結果錯了。一個自己給自己打分的更好模型,並不是證據。若我把一個因子交給首席精算師,說「相信我,它勝過分區」,我就等於把作業連同自己打的分數一起交出去。價值從來不會是模型本身。ZestyAI、ICEYE、First Street 這類供應商早已在賣強力洪水模型。真正耐久的是 圍繞任何模型的那些無聊基礎設施:一套懷疑者無法駁倒的回測、一場模型無法辯解過關的公平性稽核,以及一道產出申報或拒絕申報的閘門。這一點在任何模型品質水準下都成立,這也是為什麼它不會隨著模型進步而過時。你可以親自查看機制與誠實揭露:veriprajna.com/zh-Hant/demos/flood-risk-underwriting。
一個自己給自己打分的更好模型,並不是證據。那是你的作業,上面寫著你自己打的分數。
還有第二個、更難的理由說明模型不能是全部故事。一個對損失排序很好的因子,也可能夾帶人口統計訊號;未能通過差別影響測試的費率,是保險監理機關(Department of Insurance)審查員會駁回的申報。排得好與可申報,是兩個不同的問題。我答完了第一個。第二個還在等著。
我把公平性稽核對準自己的模型,並預期它會是反派
我真心做好準備,以為複合評分會是問題所在。稽核會用 CDC/ATSDR 社會脆弱性指數(Social Vulnerability Index,2022 版)的真實普查區少數族裔占比,篩查每一個定價變數,計算各自的不利影響比率,並對照 EEOC 五分之四規則——0.80 到 1.25 的區間(29 CFR 1607.4(D))。我以為那個搶眼的 AI 分數,才會是帶著人口統計代理變數的那個。
並不是。複合評分本身以 0.938 的不利影響比率通過。 我並不是為了假裝自己的模型是反派才做這個演示,它也確實不是。但稽核會篩查一切,而 5 個定價變數未能通過 80% 規則。最差的是樓層數,比率 0.363。投保價值以 0.526 未通過。真正讓我吃驚的是:FEMA 自己的分區檔位以 1.467 未通過,高側偏斜比我的複合評分在任何一側都更糟。人人當成安全、中立、監管背書錨點的那條基線,所承載的人口統計偏斜,比人們緊張的 AI 因子還多。

我的 AI 因子以 0.938 通過公平性測試。FEMA 的分區檔位以 1.467 未通過。
這種倒置,正是我最希望精算師坐下來想清楚的事。在這本業務上,不信任模型、信任地圖的直覺,方向反了。
它在我能申報之前先擋下了自己
我想把接下來發生的事說精確,因為這是我最引以為傲的部分,而且完全是毫不戲劇性的程式碼。政策閘門是純 Python,只有一條規則:唯有保留樣本夠大、相對 FEMA 分區的提升幅度跨過規定下限,且每一個被篩查的變數都落在公平性區間內,申報才就緒。預設拒絕。filing_ready 當且僅當阻擋性發現為零。 在這本業務上有一個變數未通過,因此閘門回傳 NOT FILING-READY,點名樓層數為最嚴重違規項,並將其轉交人類精算辯護,而不是直接出貨費率。它也跑了各州檢查清單,科羅拉多州的逐變數辯護要求顯示為未完成。
堆疊中可選的部分是一小組 Pydantic-AI 代理:因子解釋器、與對抗挑戰者配對的公平性辯護器,以及申報備忘錄起草器。它們提供建議。它們草擬敘事。它們無法覆寫閘門;若沒有 API 金鑰,它們乾脆棄權,確定性結果不變。每一個信任關鍵數字都是閘門框架外的普通 numpy。代理建議,程式碼裁決。這個建置裡的供應商饋送(ZestyAI Z-FLOOD、ICEYE SAR-depth)與 Guidewire 連接器,是真實 schema 背後的 stub——文件化的生產替換,不是即時整合。我寧願把這件事說清楚,也不暗示一條並不存在的管線。完整套件,連同申報產物,都在 veriprajna.com/zh-Hant/demos/flood-risk-underwriting。
閘門拒絕時產出的並非死路。它是一套審查員就緒的 DOI 申報套件:精算備忘錄、樣本外回測表、特徵歸因、公平性篩查,以及明確說明哪些項目被轉交人類、為什麼。它是證據產物,不是認證,也不承諾任何審查員已批准任何事。它是審查員會要求的文件軌跡,在他們開口之前就已組好。
我一直把這叫做:在審查員之前先抓住合規風險。這就是買家價值的一句話版本。另一條路,是你已申報之後,才在一封信裡、公開地發現自己的費率具有歧視性。
我一直放不下的事
我帶著「自己在打造更好的洪水模型」的假設走進這次建置,離開時卻確信模型是最不重要的那一塊。誠實揭露比準確度更重要。FEMA 把理賠地理座標脫敏到大約普查區質心,所以這套系統跑在公開資料誠實允許的解析度上,演示也在畫面上這麼說。提升幅度來自一本哈里斯郡業務與一次保留切分,不是開放世界保證。點名這些限制,並不是賣點裡的弱點。它就是賣點本身。
隨著超過 24 個州採納 NAIC《AI 模型公告》,且紐約州 DFS 第 2024-7 號通函把代理歧視測試從禮節變成期望,拒絕申報的程式碼就不再是文書工作,而開始成為產品。評級因子從來不是難點。證明它、治理它,才是。
若你寧願看它如何裁決,而不是聽我一面之詞,整套端到端執行就在這裡。
所以這裡有一個我自己尚未完全答完、也真心想聽精算師看法的問題。若你自己的稽核告訴你:你多年來錨定費率的 FEMA 分區檔位,未能通過你即將套用到新 AI 因子的同一套公平性測試——你會先停止信任哪一個?


