SIM TAIPEI · 公開預測實驗

一座數位台北

會算的管勝負,會想的管沒有答案的問題。

我在做一個叫 Sim Taipei 的公開預測實驗。它是兩台引擎,分工很清楚:

引擎一,會算。「誰會贏」交給統計——把上一場開票的 456 里結構凍結當地形,用當期民調釘水位。它有戰績、有無腦基準當對照、賽前用 git 存證、開票後公開對帳(這頁下面全列出來)。

引擎二,會想。983 種合成市民人格,只負責回答沒有前例可循的問題——新議題、新候選人的結構推演。這一台沒有標準答案可對,所以它的輸出全站標「假說」,不當結論賣。

為什麼分兩台引擎?因為我實測過讓 AI 猜票:四次都輸給統計。輸的過程也寫在這頁(第 05 段)——那才是你該拿來判斷我的依據。

⛳ Wave 1 預測已存證 · 2026-08-06(投票日前 114 天)
11-18 起依《選罷法》§53 全站自動封存
11-28 開票,逐里公開對帳
00 / 源起

從 Sim Francisco 來的啟發

2026 年,UC Berkeley 的團隊在 Anthropic 的 Opus 4.8 Build Day 黑客松上,用美國普查的個體資料合成出一座「會回答問題的舊金山」——Sim Francisco,拿下獎項並開源全部程式。它證明了一件事:不用問卷、只用公開資料,可以合成出一座能拿真實選舉對帳的城市

Sim Taipei 是這個想法的台灣版。方法骨架與誠信規則照抄它(不偷看答案、held-out 驗證、公開回測),但台灣手上有一張舊金山沒有的王牌:中選會的村里級歷次開票——Sim Francisco 只能拿一兩個單點對帳,這裡有 456 個里 × 7 場選舉。也正因為對帳容易,我們比它更早撞上誠實的結論:AI 合成市民猜票猜輸了統計(第 05 段)——所以這座城市裡,AI 被降級成引擎二,只管沒有答案的問題。

台北 456 里政治地形 — 2024 總統開票藍綠對決份額
台北 456 里政治地形 · 2024 總統開票藍綠對決份額 —— 引擎一凍結的那張地圖:16 年相關 r≈0.96,贏家換人、形狀不變
01 / 兩台引擎

哪台引擎回答哪種問題,先分清楚

中選會逐里開票 2008–2024 · 7 場 · 456 里 當期具名民調(水位) 戶政四維統計 年齡×性別×婚姻×教育 學術調查相關結構 省籍/統獨插補(見 04) 引擎一 · 會算 凍結地形 + 民調水位 引擎二 · 會想 983 種合成市民 · AI 推演 選舉預測 存證 → §53 封存 → 開票對帳 ✓ 已驗證 · 方向命中 86–91% 議題假說地圖 未驗證 · 全站標「假說」
引擎一 · 會算(有戰績才敢賣)

選舉是有標準答案的問題。它不用 AI——凍結上一場開票的里級結構當地形、當期民調當水位。有無腦基準對照、有存證、開票對帳,全在第 03 段。

引擎二 · 會想(沒有答案才輪到它)

新議題、新候選人沒有歷史開票可抄,這時才輪到合成市民推演。它畫的是假說地圖:結構上合理的猜測,不是驗證過的事實——所以永遠標著假說賣。

誰會贏?→ 引擎一
新議題哪些里會挺?→ 引擎二(假說)
這位候選人在城市裡長什麼樣?→ 引擎二(假說)
情勢變了會怎樣?→ 兩台一起(情境推演)
02 / 怎麼蓋的

從公開資料,合成一整座城市

456
個里,覆蓋全台北
983
種合成市民人格
8
條價值軸(2 條已對真值驗證)

983 種人格是什麼:6 個屬性軸(年齡×性別×婚姻×教育×省籍×統獨)在全市出現過的相異組合——不是 983 個「人」,而是一本全市共用的人格字典,210 萬選民都能在裡面找到自己的格子;每個里則是這本字典的不同權重混合。這個設計的解析度極限(哪些東西裝不進去),第 04 段照實講。

A原料——政府公開資料與統計,一筆一筆可查
中選會 選舉資料庫2008–2024 歷屆村里級開票(總統/市長/市議員/立委/里長,7 場入模)+ 2018 公投
內政部戶政司村里級「年齡×性別×婚姻×教育」聯合統計(原始檔 1,367 萬列)——合成人口的骨架
台北市民政局各里戶籍人口統計(年齡×性別)——投票資格看戶籍,當總數基準,210 萬人加總一人不差
財政部456 里綜所稅所得中位數(112 年度申報核定)
內政部 SEGIS村里戶政流量(出生/離婚/單人戶等)——價值軸的結構特徵
1990 戶口普查各行政區外省籍比例(公開彙整)——省籍結構的外部錨(為什麼敢用 36 年前的資料,見 04)
客家委員會110 年全國客家人口暨語言基礎資料調查——12 區客家認同比例
學術調查(SRDA)TSCS 台灣社會變遷調查、TEDS 台灣選舉與民主化調查(經授權用於研究)——「教育↔省籍↔統獨」的真實相關結構;個體資料依授權不對外
具名正規民調TVBS、凱達格蘭、震傳媒×山水、美麗島、政大選研趨勢——當期「水位」;樣本數與誤差以各原始發布為準
B6 個屬性軸——每位虛擬市民身上的條件
年齡
性別
婚姻
教育
省籍
統獨傾向

前 4 個是戶政統計直接給的;省籍、統獨沒有里級公開資料——由學術調查(TEDS)的「教育↔省籍↔統獨」相關結構插補,再用 1990 普查與客委會調查把各區水位釘住。這條插補鏈怎麼驗證、邊界在哪,第 04 段整段攤開。

C8 條價值軸——每個里的里民側寫座標
國族/統獨
性別議題
居住正義
環境 vs 發展
兩岸經貿
世代分配
治安秩序
社福重分配

✓ 的兩條有真實資料對驗:國族軸對開票地形(吻合度約 0.67)、性別議題軸對 2018 同婚公投。其餘 6 條沒有里級真值可對,全站一律標成「假說地圖」,不當結論賣。

D怎麼合成
上面那張表就是全部原料——沒有爬蟲黑數據、沒有買名單、沒有任何個資。
6 個屬性軸,把每個里的人口結構合成成一個個有獨立條件的虛擬市民——已知每個里各年齡、各學歷有多少人(官方邊際總數),用統計方法(IPF)湊出同時符合所有邊際的完整人口表,全市 983 種相異人格。
每位市民站在自己的里裡,各自做判斷——丟一個新議題進去,這是引擎二回答問題的方式。
但「誰會贏」不這樣算。選舉用更笨也更準的引擎一:凍結上一場開票的里級結構當地形,再用當期民調把水位釘對——比 AI 輪詢準了 3.5 倍。原因寫在第 05 段。
03 / 對過幾次帳

戰績連基準一起講——不然數字只是裝飾

台北的里級政治地形極穩,「每個里都投上屆投的」這種零智慧猜法也能拿到不差的分數。所以下面每個數字都附上無腦基準(全市均值)讓你自己比——我們的價值不在「知道地形穩」(任何里長都知道),在把「穩」量化成 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(內含學術授權資料,尚不公開),第三方暫時只能信任時間戳;開票對帳時逐里公開,屆時可與各波預測頁直接比對
消融測試(ablation)——每一層各值多少
路線(完美水位條件的內部賽馬)誤差分數方向
只有水位(無腦基準)0.011652%
AI 合成市民輪詢0.007476%
統計回歸(人口+所得)0.004079.4%
回歸+公投價值軸0.001289%
凍結上一場開票(引擎一)0.000494%
以上全部疊加0.000494%

最後一行就是判決:全部疊加=凍結單獨,一模一樣——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 12026-08-06(T-114)已存證
Wave 29 月(議員提名定案後)預定
Wave 310 月預定
最終封存版≤ 11-17分層封存

規則:每一波發布後不回改,新波不覆蓋舊波,歷次全保留——不準的波次會留在原地被對帳,準的也一樣。

⚠ Sim Taipei 是結構傾向的推論工具,不是民意調查、也不保證任何選舉結果。民調是它的輸入不是產出:民調給 1 個全市數字,引擎一把它翻成 456 個里級數字——我們不做水位,只做解析度。
04 / 插補的誠實帳

省籍與統獨是推算出來的——怎麼算、為什麼敢、邊界在哪

怎麼算:里級的省籍、統獨沒有任何公開資料。我們拿學術調查(TEDS)裡「教育↔省籍↔統獨」的真實相關結構,插補進每個里的人口表;再用 1990 戶口普查的區級外省比例校正——注意,只借它的「相對形狀」(哪區偏高哪區偏低),總量重新錨定在現況(客委會 110 年調查)。

為什麼敢用:因為這條鏈是對過帳的,不是信仰。插補出來的外省分布——在從沒看過任何選票的情況下——對 2022 蔣萬安的里級得票相關 +0.59;經 1990 形狀校正後升到 +0.64。36 年前的地理形狀到今天還能預測藍票,這個數字本身就是「形狀還在」的證據。權重也做過敏感度分析:外省校正強度 K 從 0.2 掃到 2.0,驗證分數整段平台穩定——不是單點僥倖。若哪天它對不上帳了,這段會照實改寫。

邊界在哪:983 種人格是全市共用的字典,每個里是這本字典的權重組合——所以凡是不能化約成人口結構的東西,結構上就裝不進去:里長的人際網絡、在地爭議建案、候選人同鄉效應。我們實測過:就算把所有人口屬性餵好餵滿,AI 輪詢也只還原了真實里間差異的約三成——剩下七成在樁腳、地緣與組織裡,不在任何公開資料裡。這正是引擎二只敢標假說、引擎一寧可抄開票的原因。

05 / 我試過但放棄的

會自己投票的 AI 市民,猜票猜輸了統計模型

這頁到這裡為止都在講它會什麼。但這個專案真正學到的東西,幾乎都是從失敗來的 —— 這些我也放上來,因為那才是你該拿來判斷我的依據。

我試過讓 AI 市民自己猜票,四次都輸。輸給一個很笨的統計模型 —— 把上一場開票的里級結構直接凍結、再用民調把水位釘對。最後一次是 2026-07-15:就算把省籍餵給它,它也只還原了真實里間差異的 30%。所以「誰會贏」我不用 AI 算,用凍結地形算。AI 市民負責的是沒有前例可循的問題:新議題、新候選人。

我試過用候選人的形象預測他的票倉,沒有預測力。59 位現任議員實測,中位相關 +0.004 —— 幾乎是零。議員的票是樁腳和地緣經營出來的,不是形象。這個負面結果反而讓產品變對了:不賣「人設預測票倉」,改賣「機會面圖」。

我試過把模型輸出直接拿去做廣告受眾建議,輸給裸的 ChatGPT。它漏掉了「離門市遠近」這種生意常識。後來客戶一句真實客群知識,又同時打翻了 ChatGPT 和我手調的權重 —— 那次學到的是:只有真實結果的校準才對得了寶。

8 條價值軸裡,也只有國族性別議題兩條有真實資料背書,其餘 6 條我標成假說地圖,因為它們還沒有里級真值可以對。

會把自己做錯的事寫在網站上的人,他說對的那部分,你才敢用。
這不是謙虛 —— 是這個專案唯一能跟「講得頭頭是道但無法查證」區分開來的方法。
本頁數字為結構傾向推估(統計模型計算),非民意調查,未對任何人進行訪問。誤差、資料來源與限制見方法揭露與免責聲明。2026-11-18(投票日前10日)起本站依選罷法第53條自動封存。