從 Sim Francisco 來的啟發
2026 年,UC Berkeley 的團隊在 Anthropic 的 Opus 4.8 Build Day 黑客松上,用美國普查的個體資料合成出一座「會回答問題的舊金山」——Sim Francisco,拿下獎項並開源全部程式。它證明了一件事:不用問卷、只用公開資料,可以合成出一座能拿真實選舉對帳的城市。
Sim Taipei 是這個想法的台灣版。方法骨架與誠信規則照抄它(不偷看答案、held-out 驗證、公開回測),但台灣手上有一張舊金山沒有的王牌:中選會的村里級歷次開票——Sim Francisco 只能拿一兩個單點對帳,這裡有 456 個里 × 7 場選舉。也正因為對帳容易,我們比它更早撞上誠實的結論:AI 合成市民猜票猜輸了統計(第 05 段)——所以這座城市裡,AI 被降級成引擎二,只管沒有答案的問題。
哪台引擎回答哪種問題,先分清楚
選舉是有標準答案的問題。它不用 AI——凍結上一場開票的里級結構當地形、當期民調當水位。有無腦基準對照、有存證、開票對帳,全在第 03 段。
新議題、新候選人沒有歷史開票可抄,這時才輪到合成市民推演。它畫的是假說地圖:結構上合理的猜測,不是驗證過的事實——所以永遠標著假說賣。
從公開資料,合成一整座城市
983 種人格是什麼:6 個屬性軸(年齡×性別×婚姻×教育×省籍×統獨)在全市出現過的相異組合——不是 983 個「人」,而是一本全市共用的人格字典,210 萬選民都能在裡面找到自己的格子;每個里則是這本字典的不同權重混合。這個設計的解析度極限(哪些東西裝不進去),第 04 段照實講。
| 中選會 選舉資料庫 | 2008–2024 歷屆村里級開票(總統/市長/市議員/立委/里長,7 場入模)+ 2018 公投 |
| 內政部戶政司 | 村里級「年齡×性別×婚姻×教育」聯合統計(原始檔 1,367 萬列)——合成人口的骨架 |
| 台北市民政局 | 各里戶籍人口統計(年齡×性別)——投票資格看戶籍,當總數基準,210 萬人加總一人不差 |
| 財政部 | 456 里綜所稅所得中位數(112 年度申報核定) |
| 內政部 SEGIS | 村里戶政流量(出生/離婚/單人戶等)——價值軸的結構特徵 |
| 1990 戶口普查 | 各行政區外省籍比例(公開彙整)——省籍結構的外部錨(為什麼敢用 36 年前的資料,見 04) |
| 客家委員會 | 110 年全國客家人口暨語言基礎資料調查——12 區客家認同比例 |
| 學術調查(SRDA) | TSCS 台灣社會變遷調查、TEDS 台灣選舉與民主化調查(經授權用於研究)——「教育↔省籍↔統獨」的真實相關結構;個體資料依授權不對外 |
| 具名正規民調 | TVBS、凱達格蘭、震傳媒×山水、美麗島、政大選研趨勢——當期「水位」;樣本數與誤差以各原始發布為準 |
前 4 個是戶政統計直接給的;省籍、統獨沒有里級公開資料——由學術調查(TEDS)的「教育↔省籍↔統獨」相關結構插補,再用 1990 普查與客委會調查把各區水位釘住。這條插補鏈怎麼驗證、邊界在哪,第 04 段整段攤開。
✓ 的兩條有真實資料對驗:國族軸對開票地形(吻合度約 0.67)、性別議題軸對 2018 同婚公投。其餘 6 條沒有里級真值可對,全站一律標成「假說地圖」,不當結論賣。
戰績連基準一起講——不然數字只是裝飾
台北的里級政治地形極穩,「每個里都投上屆投的」這種零智慧猜法也能拿到不差的分數。所以下面每個數字都附上無腦基準(全市均值)讓你自己比——我們的價值不在「知道地形穩」(任何里長都知道),在把「穩」量化成 456 個帶誤差帶的數字。
| held-out 回測(456 里方向命中) | 引擎一 | 無腦基準 |
|---|---|---|
| 正向盲測:用 2020 地形 → 預測 2024 總統 | 391 里(86%) | 239 里(52%) |
| 反向檢驗:用 2024 地形 → 回推 2020 總統 (backcast,時間倒流;合成人口為現況資料,時間洩漏比正向重——當穩健性參考,別當主數字) | 417 里(91%) | 373 里(82%) |
- 誤差分數:模擬民調 ±3% 誤差情境下約 0.0028,基準 0.0077–0.0108——約基準的三分之一。兩個誠實註記:①這是自訂情境的變體,不是教科書標準 Brier 設定;②搖擺里實驗已跑(2026-08-07,照承諾好壞照登):依上一場差距分層,搖擺里(N=177)份額誤差 0.0022 ≈ 全體 0.0021——「送分里灌水」不成立;但把方向命中按事後開票差距拆開就刺了:真正接近(<10pt)的 230 個里在 ±3pt 誤差下命中僅 64–72%、<5pt 的 134 里 52–68%——整體 86% = 安全里近滿分+真搖擺里六到七成,對「最後很接近」的里,方向天花板由民調誤差決定,這正是我們發布情境梯而不是單點的原因;校準曲線斜率≈1、整條偏移=餵入的水位誤差(模型不添加形狀扭曲);順帶更正——先前寫「±3%」實作為單側 +3%,本次兩側皆跑(85.7%/82.0%),結論不變
- 重建一致性(注意:這是一致性檢驗,不是預測力證據——模型與水位平移法同源,吻合只證明算法一致):用今天的地形灌柯文哲 2014 的水位 → 模型 403 里、柯實拿 401 里;蔡英文 2020(北市)同法 → 377 vs 373
- holdout 鐵則:預測哪一場,那一場的開票就絕不進模型(包括任何校準)。切法詳揭露頁
- 預測存證:Wave 1(2026-08-06)已隨 git commit 釘死——saomin.tw @ 565aeee sim @ 016fa16。封存粒度:456 里全表+中央預測(蔣 66:沈 34)+四條可證偽宣稱+議員政黨席次分布,發布後不改。誠實註記:hash 目前錨在私有 repo(內含學術授權資料,尚不公開),第三方暫時只能信任時間戳;開票對帳時逐里公開,屆時可與各波預測頁直接比對
| 路線(完美水位條件的內部賽馬) | 誤差分數 | 方向 |
|---|---|---|
| 只有水位(無腦基準) | 0.0116 | 52% |
| AI 合成市民輪詢 | 0.0074 | 76% |
| 統計回歸(人口+所得) | 0.0040 | 79.4% |
| 回歸+公投價值軸 | 0.0012 | 89% |
| 凍結上一場開票(引擎一) | 0.0004 | 94% |
| 以上全部疊加 | 0.0004 | 94% |
最後一行就是判決:全部疊加=凍結單獨,一模一樣——983 種人格對引擎一的貢獻是零。這不是被抓包,是設計:AI 層猜票猜輸的那一刻(第 05 段),它就被移出選舉預測,只留在引擎二。⚠ 此表為完美水位條件的相對比較,絕對數字別跟上面 ±3% 情境的 0.0028 直接比。
- 性別議題軸 ↔ 2018 同婚公投開票:吻合度 0.32(扣掉綠票與教育等人口因素後仍有 0.24——代表不是人口資料的轉述)
- 國族軸 ↔ 開票地形:0.67
- 11 個有真值可對的議題,5-fold held-out 成績單:結構型 R² 0.60–0.75、態度型 0.23–0.58——哪類問題答得好、哪類答不好,全部攤開
- 一個「假說先行、事後被獨立印證」的案例:模型在零民調輸入下推估「沈伯洋相對最強的選區=中山大同」;TVBS 之後發布的六選區交叉,唯一沈領先的區正是中山大同
| 波次 | 時間 | 狀態 |
|---|---|---|
| Wave 1 | 2026-08-06(T-114) | 已存證 |
| Wave 2 | 9 月(議員提名定案後) | 預定 |
| Wave 3 | 10 月 | 預定 |
| 最終封存版 | ≤ 11-17 | 分層封存 |
規則:每一波發布後不回改,新波不覆蓋舊波,歷次全保留——不準的波次會留在原地被對帳,準的也一樣。
省籍與統獨是推算出來的——怎麼算、為什麼敢、邊界在哪
怎麼算:里級的省籍、統獨沒有任何公開資料。我們拿學術調查(TEDS)裡「教育↔省籍↔統獨」的真實相關結構,插補進每個里的人口表;再用 1990 戶口普查的區級外省比例校正——注意,只借它的「相對形狀」(哪區偏高哪區偏低),總量重新錨定在現況(客委會 110 年調查)。
為什麼敢用:因為這條鏈是對過帳的,不是信仰。插補出來的外省分布——在從沒看過任何選票的情況下——對 2022 蔣萬安的里級得票相關 +0.59;經 1990 形狀校正後升到 +0.64。36 年前的地理形狀到今天還能預測藍票,這個數字本身就是「形狀還在」的證據。權重也做過敏感度分析:外省校正強度 K 從 0.2 掃到 2.0,驗證分數整段平台穩定——不是單點僥倖。若哪天它對不上帳了,這段會照實改寫。
邊界在哪:983 種人格是全市共用的字典,每個里是這本字典的權重組合——所以凡是不能化約成人口結構的東西,結構上就裝不進去:里長的人際網絡、在地爭議建案、候選人同鄉效應。我們實測過:就算把所有人口屬性餵好餵滿,AI 輪詢也只還原了真實里間差異的約三成——剩下七成在樁腳、地緣與組織裡,不在任何公開資料裡。這正是引擎二只敢標假說、引擎一寧可抄開票的原因。
會自己投票的 AI 市民,猜票猜輸了統計模型
這頁到這裡為止都在講它會什麼。但這個專案真正學到的東西,幾乎都是從失敗來的 —— 這些我也放上來,因為那才是你該拿來判斷我的依據。
我試過讓 AI 市民自己猜票,四次都輸。輸給一個很笨的統計模型 —— 把上一場開票的里級結構直接凍結、再用民調把水位釘對。最後一次是 2026-07-15:就算把省籍餵給它,它也只還原了真實里間差異的 30%。所以「誰會贏」我不用 AI 算,用凍結地形算。AI 市民負責的是沒有前例可循的問題:新議題、新候選人。
我試過用候選人的形象預測他的票倉,沒有預測力。59 位現任議員實測,中位相關 +0.004 —— 幾乎是零。議員的票是樁腳和地緣經營出來的,不是形象。這個負面結果反而讓產品變對了:不賣「人設預測票倉」,改賣「機會面圖」。
我試過把模型輸出直接拿去做廣告受眾建議,輸給裸的 ChatGPT。它漏掉了「離門市遠近」這種生意常識。後來客戶一句真實客群知識,又同時打翻了 ChatGPT 和我手調的權重 —— 那次學到的是:只有真實結果的校準才對得了寶。
8 條價值軸裡,也只有國族和性別議題兩條有真實資料背書,其餘 6 條我標成假說地圖,因為它們還沒有里級真值可以對。
這不是謙虛 —— 是這個專案唯一能跟「講得頭頭是道但無法查證」區分開來的方法。