[問卦] 有沒有民調劉伯溫的八卦?已刪文
大家好
最近我在逛板上的文章時,推文的一張圖引起了我的注意:
http://i.imgur.com/zV767bw.jpg
我就想到,通常選舉一結束,大家就鳥獸散,很少有人會回憶哪一家的民調做得比較準確
但是數據就公開在那裏,只要用對的方式進行分析,應該就能立馬分出高下
甚至透過這些資料,我們還能知道:那些民調和選舉結果差距頗大的媒體,通常會高估了
哪一個政黨色彩的候選人?
想到這裡,我的數據魂又燃燒了起來
首先,為了建立合理的標準來衡量民調的準確度
我們先從簡單的案例看起:
【案例一】
A、B 兩位候選人在某次選舉中的得票率分別為 40%、50% (有 10% 廢票)
而在這個選舉之前
甲單位的民調結果是 30%、40% (30% 未表態)
乙單位的民調結果是 34%、45% (21% 未表態)
請問,甲乙兩家誰的民調比較準?
你會說,簡單,先忽略掉未表態和棄票的,把A除以B,再一起比對數值不就好了?
選舉結果: A/B = 40/50 = 0.8
甲民調: A/B = 30/40 = 0.75
乙民調: A/B = 34/45 = 0.755...
看來乙民調更接近選舉結果,故乙民調勝出
很棒,完美,一百分
可是,如果變成三個候選人參選的情況呢?
請看示例:
【案例二】
A、B、C 三位候選人進行選舉
選舉結果: 20%、30%、40% (10% 廢票)
甲民調: 25%、29%、33% (13% 未表態)
乙民調: 10%、19%、22% (49% 未表態)
現在很難看出哪一家比較準了,因為我們不知道到底要用誰除以誰來進行比較
沒關係,既然問題變成三維的,那我們就用三維的方式去解決它
如果把各候選人 (A, B, C) 的有效票畫成「向量」,我們可以得到這張 3D 繪圖
https://i.imgur.com/tLbXjUy.gif
可以看到,雖然乙民調(黃色)的向量比較短(有效票很少),但是它指向的方向和選舉結果
很接近
https://i.imgur.com/PwnrMGH.png
可以斷言的是,民調向量和選舉結果向量的夾角越小,就代表它的民調越接近真實結果
為什麼呢?
還記得新聞喜歡拿「章魚里」來預測大選結果嗎?
章魚里的人數雖然很少,但是可以比擬為全國投票狀態的縮影
但如果把章魚里的投票數向量畫上去,那麼它(理想上)會和大選的向量會完全重疊在一
起!
這種使用向量夾角來量化相似度的方式,叫做「餘弦相似度」
公式可以寫成這個樣子:
https://i.imgur.com/BYJHAtT.png
這個公式只會產生 -1~1 的數值範圍
如果兩個向量剛好完全重疊,得到的結果會等於 1 (即預測與選舉結果完全一致)
反之,如果算出來是 -1,那代表它的預測是完美的反指標 XD
只不過目前的情況,支持率的數字都是正數,所以不可能會出現負的數值
最差的預測結果也只會是兩個向量互相垂直 (即數值等於 0 )
於是,我們可以利用這個「與選舉結果向量的餘弦相似度」
拿來作為「民調準確度」的指標 (範圍: 0~1 分)
現在,我們用公式把上面兩個案例重新算一遍:
【案例一】
甲民調準確度: 0.999512..
乙民調準確度: 0.999616..
(乙民調勝出)
【案例二】
甲民調準確度: 0.988229..
乙民調準確度: 0.996710..
(乙民調勝出)
得證,乙做的民調單位比甲更準確~
熱身完之後,當然開始拿真實數據開刀啦!
首先我從 2020 的總統大選開始下手
維基百科上面都可以找到當時各家媒體的選前民調
於是我直接把資料爬下來,粗暴地計算一番:
https://i.imgur.com/B0hVoh7.png
(註1: 同一家單位可能在不同時間做了多次民調,我只擷取準確度最好的那一次)
(註2: 民調百分比皆已排除未表態數據並做歸一化處理)
哦~ 原來第一名是TVBS阿 (思)
雖然結果出爐了,但我還不滿於此
我想,如果能把每個民調單位用剛剛的 3D 畫出來,做出全局的分布圖,那樣不是很猛
嗎?
只恐怕畫面看起來會很凌亂,而且 3D 圖需要像上面那樣不停轉動才能看出全貌,如果我
底下貼一堆旋轉的 3D 圖,大家不就看得頭昏眼花了嗎?
幸好我找到了一種很棒的繪圖方式,叫做「三元相圖(ternary diagram)」
舉例來說,2020總統大選的選舉結果,可以落在三元相圖中的這個點上面:
https://i.imgur.com/kkuaVh0.png
基本上你可以這麼理解:
「落點越靠近誰的頂點,就越傾向誰會當選」
三元相圖還有一個重要的特色是,無論你點在三角形中的哪一點,三人的數據總合起來都
會是 1 (即100%)
這非常適合拿來繪製有三個候選人的選舉得票率佔比
現在我們把各家民調也畫在這張圖上面試試!
https://i.imgur.com/zg14DY6.png
好像太擠了,我把圖片放大一點:
https://i.imgur.com/BygGKMu.png
可以看到,TVBS的民調確實最接近選舉結果
除此之外,我們還可以怎麼解析這張圖呢?
根據「越靠近誰的頂點,就越傾向誰會當選」的原則
如果畫一條通過選舉結果點的水平線,它就能辨別該民調單位是高估還是低估了蔡的得票
率:
https://i.imgur.com/6lYWaCD.png
(自由時報...還真是正常發揮阿 XD)
如果切另一個角度,也可以看到民調對韓得票率的高估和低估程度:
https://i.imgur.com/LeK1wfE.png
基本上民調普遍低估了韓的得票率,而這其實是有跡可循的
因為韓陣營當時的選舉策略是,遇到民調一律回答「唯一支持蔡英文」,藉以擾亂民調,
避免打擊支持者的信心
然而在這種背景下,TVBS還是做出了離選舉結果相近的民調,實在不簡單
至於老宋的角度,也可以看出所有民調都高估了宋的得票率,即俗話說的藍綠歸隊,這個
我就不畫漸層圖了,畫這個很累= =
另外,為了讓數據更客觀,圖上圈圈的大小也顯示了調查當下離選舉的日期差距,畢竟天
數差距太大的話,民調不準也是無可厚非
以上是候選人數是三個人時的繪圖方式
至於候選人數是兩個人的情況就比較簡單了
以 2018 新北市選舉侯友誼 vs 蘇貞昌 為例,繪圖如下:
https://i.imgur.com/jn0JH2v.png
X 軸基本上只要選擇其中一個候選人的得票率即可 (我使用的是 蘇/(侯+蘇) 得票佔比)
注意數據已經過局部放大處理,當時是侯勝選,只是 Zoom in 後選舉結果看起來偏右
而 Y 軸放啥都沒差,我就拿來放民調準確度了
由於公式計算的關係,民調看起來會是「類拋物線」的分布
這裡的虛線同樣也可以區分民調的偏差程度:
https://i.imgur.com/SZhYN8i.png
只能說,靠向右邊的民調單位,確實台灣價值高到不行
哦? 這次自由比TVBS更準了一點,難道自由還是很有料的嗎?
沒關係,等等我會把近年各屆的選舉民調拿出來一次做統計,選出真正的民調劉伯溫!
相信各位現在已經學會如何看圖了
接下來就公布 2012 以來的總統選舉 + 2018年直轄市市長選舉 的各家民調偏差分析結果
:
https://i.imgur.com/Fp5YVS2.png
上面能分析的地方實在太多了,但是我政治分析起來也沒大家厲害,就不在這獻醜了
最後,來看看誰才是民調劉伯溫:
https://i.imgur.com/LdVwygY.png
恩 我知道 樣本數真的少得可憐 囧 一次選舉只能有一個樣本數 這沒辦法
會弄一個中位數排行是因為,2018 台南市長選舉那次拉低了不少民調單位的平均值
所以才想用中位數的表現來排除失準的民調
從結果來看,中位數排行的前三名是: 全國公信力、世新大學、TVBS
如果你比較想看平均民調實力的話,前三名則是: 國民黨、世新大學、全國意向
其中我覺得最猛的是世新大學,做了6次的民調依然有相當高的平均值,兩個排行都進了
前三
就我個人而言,我願稱它為民調劉伯溫 o'_'o
如果你想查看其他縣市的選舉民調分析,或者想看大圖,這裡提供程式碼給大家參考:
https://github.com/papple23g/taiwan-election-polls-liu-bo-Wen
感謝大家的觀看~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.107.235 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1661705377.A.47E.html
→
08/29 00:51,
1年前
, 1F
08/29 00:51, 1F
→
08/29 00:59,
1年前
, 2F
08/29 00:59, 2F
→
08/29 01:00,
1年前
, 3F
08/29 01:00, 3F
推
08/29 01:00,
1年前
, 4F
08/29 01:00, 4F
推
08/29 01:01,
1年前
, 5F
08/29 01:01, 5F
推
08/29 01:02,
1年前
, 6F
08/29 01:02, 6F
→
08/29 01:02,
1年前
, 7F
08/29 01:02, 7F
→
08/29 01:02,
1年前
, 8F
08/29 01:02, 8F
推
08/29 01:03,
1年前
, 9F
08/29 01:03, 9F
推
08/29 01:12,
1年前
, 10F
08/29 01:12, 10F
推
08/29 01:12,
1年前
, 11F
08/29 01:12, 11F
推
08/29 01:12,
1年前
, 12F
08/29 01:12, 12F
推
08/29 01:14,
1年前
, 13F
08/29 01:14, 13F
→
08/29 01:15,
1年前
, 14F
08/29 01:15, 14F
推
08/29 01:22,
1年前
, 15F
08/29 01:22, 15F
推
08/29 01:50,
1年前
, 16F
08/29 01:50, 16F
推
08/29 01:50,
1年前
, 17F
08/29 01:50, 17F
推
08/29 01:56,
1年前
, 18F
08/29 01:56, 18F
推
08/29 01:58,
1年前
, 19F
08/29 01:58, 19F
推
08/29 01:58,
1年前
, 20F
08/29 01:58, 20F
推
08/29 01:59,
1年前
, 21F
08/29 01:59, 21F
推
08/29 02:09,
1年前
, 22F
08/29 02:09, 22F
推
08/29 02:09,
1年前
, 23F
08/29 02:09, 23F
推
08/29 02:11,
1年前
, 24F
08/29 02:11, 24F
推
08/29 02:12,
1年前
, 25F
08/29 02:12, 25F
推
08/29 02:16,
1年前
, 26F
08/29 02:16, 26F
推
08/29 02:17,
1年前
, 27F
08/29 02:17, 27F
推
08/29 02:23,
1年前
, 28F
08/29 02:23, 28F
推
08/29 02:26,
1年前
, 29F
08/29 02:26, 29F
推
08/29 02:28,
1年前
, 30F
08/29 02:28, 30F
推
08/29 02:29,
1年前
, 31F
08/29 02:29, 31F
→
08/29 02:29,
1年前
, 32F
08/29 02:29, 32F
推
08/29 02:32,
1年前
, 33F
08/29 02:32, 33F
推
08/29 02:33,
1年前
, 34F
08/29 02:33, 34F
→
08/29 02:35,
1年前
, 35F
08/29 02:35, 35F
→
08/29 02:36,
1年前
, 36F
08/29 02:36, 36F
→
08/29 02:36,
1年前
, 37F
08/29 02:36, 37F
推
08/29 02:43,
1年前
, 38F
08/29 02:43, 38F
推
08/29 02:43,
1年前
, 39F
08/29 02:43, 39F
還有 232 則推文
推
08/29 10:01,
1年前
, 272F
08/29 10:01, 272F
推
08/29 10:06,
1年前
, 273F
08/29 10:06, 273F
推
08/29 10:06,
1年前
, 274F
08/29 10:06, 274F
→
08/29 10:07,
1年前
, 275F
08/29 10:07, 275F
推
08/29 10:07,
1年前
, 276F
08/29 10:07, 276F
推
08/29 10:09,
1年前
, 277F
08/29 10:09, 277F
推
08/29 10:09,
1年前
, 278F
08/29 10:09, 278F
推
08/29 10:10,
1年前
, 279F
08/29 10:10, 279F
推
08/29 10:10,
1年前
, 280F
08/29 10:10, 280F
→
08/29 10:12,
1年前
, 281F
08/29 10:12, 281F
推
08/29 10:12,
1年前
, 282F
08/29 10:12, 282F
推
08/29 10:13,
1年前
, 283F
08/29 10:13, 283F
推
08/29 10:15,
1年前
, 284F
08/29 10:15, 284F
推
08/29 10:35,
1年前
, 285F
08/29 10:35, 285F
→
08/29 10:35,
1年前
, 286F
08/29 10:35, 286F
推
08/29 10:38,
1年前
, 287F
08/29 10:38, 287F
推
08/29 10:43,
1年前
, 288F
08/29 10:43, 288F
推
08/29 10:43,
1年前
, 289F
08/29 10:43, 289F
推
08/29 10:46,
1年前
, 290F
08/29 10:46, 290F
推
08/29 10:47,
1年前
, 291F
08/29 10:47, 291F
推
08/29 10:47,
1年前
, 292F
08/29 10:47, 292F
推
08/29 10:47,
1年前
, 293F
08/29 10:47, 293F
推
08/29 10:47,
1年前
, 294F
08/29 10:47, 294F
→
08/29 10:51,
1年前
, 295F
08/29 10:51, 295F
推
08/29 10:51,
1年前
, 296F
08/29 10:51, 296F
推
08/29 10:56,
1年前
, 297F
08/29 10:56, 297F
推
08/29 10:56,
1年前
, 298F
08/29 10:56, 298F
推
08/29 10:56,
1年前
, 299F
08/29 10:56, 299F
推
08/29 10:58,
1年前
, 300F
08/29 10:58, 300F
推
08/29 10:58,
1年前
, 301F
08/29 10:58, 301F
推
08/29 10:58,
1年前
, 302F
08/29 10:58, 302F
噓
08/29 11:00,
1年前
, 303F
08/29 11:00, 303F
推
08/29 11:02,
1年前
, 304F
08/29 11:02, 304F
噓
08/29 11:02,
1年前
, 305F
08/29 11:02, 305F
推
08/29 11:05,
1年前
, 306F
08/29 11:05, 306F
推
08/29 11:06,
1年前
, 307F
08/29 11:06, 307F
→
08/29 11:13,
1年前
, 308F
08/29 11:13, 308F
推
08/29 11:14,
1年前
, 309F
08/29 11:14, 309F
噓
08/29 11:19,
1年前
, 310F
08/29 11:19, 310F
→
08/29 11:19,
1年前
, 311F
08/29 11:19, 311F
討論串 (同標題文章)