PTT推薦

Re: [新聞] 柯P遭疑民調加權才贏侯友宜 柯辦反擊了!

看板HatePolitics標題Re: [新聞] 柯P遭疑民調加權才贏侯友宜 柯辦反擊了!作者
koubayo
( 1)
時間推噓 1 推:1 噓:0 →:0

大哥,你寫的那麼複雜誰看得懂@@?
所以你用程式這樣跑出來的結果
到底賴柯侯的支持度大概各是多少?

※ 引述《ulycess (ulycess)》之銘言:
: ※ 引述《Homura (德意志國防貓)》之銘言:
: : 我們以黃揚明提供的
: : 求真民調的資料來舉例
: 我也對加權很奇妙,所以我直接拿程式模擬誤差範圍
: 首先我定義誤差範圍如下
: 假設20~25歲的人群百分比是20%
: 這次抽1000人,理論上應該要有200人
: 實際上這次民調在20~25%的人有210人
: 誤差則為 絕對值(210-200)/200 = 5%
: 最大誤差範圍則為該次民調中各分組誤差範圍最大組別
: 首先我用一次民調抽9000人,進行10000次民調,得到結論是
: 最大誤差範圍5%以內,共占有21.77%
: 最大誤差範圍5~10%以內,共占有74.46%
: 最大誤差範圍10~15%以內,共占有3.71%
: 最大誤差範圍15~20%以內,共占有0.05%
: 最大誤差範圍20~25%以內,共占有0.0%
: 最大誤差範圍超過25%,共占有0.0%
: 接下來我用一次民調抽3000人,進行10000次民調,得到結論是
: 最大誤差範圍5%以內,共占有0.62%
: 最大誤差範圍5~10%以內,共占有37.92%
: 最大誤差範圍10~15%以內,共占有49.78%
: 最大誤差範圍15~20%以內,共占有10.63%
: 最大誤差範圍20~25%以內,共占有1.01%
: 最大誤差範圍超過25%,共占有0.03%
: 最後我用一次民調抽1000人,進行10000次民調,得到結論是
: 最大誤差範圍5%以內,共占有0.01%
: 最大誤差範圍5~10%以內,共占有1.76%
: 最大誤差範圍10~15%以內,共占有20.04%
: 最大誤差範圍15~20%以內,共占有35.97%
: 最大誤差範圍20~25%以內,共占有26.3%
: 最大誤差範圍超過25%,共占有15.91%
: 所以我的結論如下
: 如果用9000人來比民調,96%的機率誤差範圍在10%以內
: 所以加權範圍不應該超過10%才對
: 如果用3000人比民調
: 最有可能的最大誤差範圍是10%~15%之間,所以加權範圍不應該超過15%
: 至於用1000人比民調
: 最有可能的誤差範圍是15~20%,而且標準差極大
: 這時候才有加權的必要
: 程式碼如下,請用python開啟
: import random
: 抽多少人 = 1000 # 預設一次抽9000人來比民調
: 總共進行幾次民調 = 10000
: 台灣人口分布 = {
: "20~24": 1345864,
: "25~29": 1591927,
: "30~34": 1589933,
: "35~39": 1672483,
: "40~44": 2009683,
: "45~49": 1827312,
: "50~54": 1770183,
: "55~59": 1782312,
: "60~64": 1715580,
: "65~69": 1489738,
: "70~74": 1115706,
: # "75~79": 593730,
: # "80~84": 468252,
: # "85~89": 262833,
: # "90~94": 119210,
: # "95~99": 31423,
: # "100+": 4901,
: }
: 台灣總人口 = 0
: for i in 台灣人口分布:
: 台灣總人口 = 台灣總人口 + 台灣人口分布[i]
: 誤差絕對值 = {"3%以內": 0, "3%~6%": 0, "6%~9%": 0, "9%~12%": 0, "超過12%": 0
}
: def 預期每個組別應該有多少人(抽多少人):
: result = {}
: for i in 台灣人口分布:
: result[i] = 抽多少人 * (台灣人口分布[i] / 台灣總人口)
: return result
: def 抽人口確定是哪個組別():
: 分組在哪裡 = ""
: random_number = random.randint(1, 台灣總人口)
: for i in 台灣人口分布:
: random_number = random_number - 台灣人口分布[i]
: if random_number <= 0:
: 分組在哪裡 = i
: break
: return 分組在哪裡
: def 開始抽人口(抽幾次):
: 抽完的人口組別 = {}
: for i in range(1, 抽幾次):
: 開始抽籤 = 抽人口確定是哪個組別()
: if 開始抽籤 not in 抽完的人口組別:
: 抽完的人口組別[開始抽籤] = 1
: else:
: 抽完的人口組別[開始抽籤] = 抽完的人口組別[開始抽籤] + 1
: 最大誤差值 = 0
: for i in 抽完的人口組別:
: 誤差百分比 = abs(100 * (預期每個組別應該有多少人(抽幾次)[i] - 抽完的

: 口組別[i]) / 預期每個組別應該有多少人(抽幾次)[i])
: # print(誤差百分比)
: if 誤差百分比 >= 最大誤差值:
: 最大誤差值 = 誤差百分比
: return 最大誤差值
: # print(開始抽人口(9000))
: 誤差值範圍 = {
: "5%以內": 0,
: "5~10%以內": 0,
: "10~15%以內": 0,
: "15~20%以內": 0,
: "20~25%以內": 0,
: "超過25%": 0,
: }
: for i in range(1, 總共進行幾次民調):
: 開始抽人 = 開始抽人口(抽多少人)
: if 開始抽人 < 5:
: 誤差值範圍["5%以內"] = 誤差值範圍["5%以內"] + 1
: elif 開始抽人 >= 5 and 開始抽人 < 10:
: 誤差值範圍["5~10%以內"] = 誤差值範圍["5~10%以內"] + 1
: elif 開始抽人 >= 10 and 開始抽人 < 15:
: 誤差值範圍["10~15%以內"] = 誤差值範圍["10~15%以內"] + 1
: elif 開始抽人 >= 15 and 開始抽人 < 20:
: 誤差值範圍["15~20%以內"] = 誤差值範圍["15~20%以內"] + 1
: elif 開始抽人 >= 20 and 開始抽人 < 25:
: 誤差值範圍["20~25%以內"] = 誤差值範圍["20~25%以內"] + 1
: else:
: 誤差值範圍["超過25%"] = 誤差值範圍["超過25%"] + 1
: for i in 誤差值範圍:
: print(f"最大誤差範圍{i},共占有{100*誤差值範圍[i]/總共進行幾次民調}%")
: : 四腳督市話加權前
: : 賴清德 748 35.47%
: : 侯友宜 535 25.37%
: : 柯文哲 230 10.91%
: : 郭台銘 125 5.93%
: : 市話單獨加權後
: : 賴清德 685 32.49%
: : 侯友宜 433 20.52%
: : 柯文哲 382 18.12%
: : 郭台銘 163 7.74%
: : 四腳督手機加權前
: : 賴清德 239 26.21%
: : 侯友宜 143 15.68%
: : 柯文哲 305 33.44%
: : 郭台銘 87 9.54%
: : 手機單獨加權後
: : 賴清德 251 27.52%
: : 侯友宜 150 16.46%
: : 柯文哲 257 28.21%
: : 郭台銘 85 9.27%
: : 市話手機合併加權後
: : 賴清德 887 29.35%
: : 侯友宜 513 16.98%
: : 柯文哲 758 25.09%
: : 郭台銘 255 8.44%
: : 原始資料侯的市話+手機是678、22.44%
: : 柯文哲是535、17.71%
: : 經過柯學加權後
: : 侯友宜變成513、16.98%
: : 柯文哲則是758、25.09%
: : 有人可以解惑一下
: : 為何柯文哲市話加權特別高?(230→382)
: : 然後侯從原本的+143變成-245
: : 一來一往落差將近400
: : 加權的依據是?

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.76.143.145 (臺灣)
PTT 網址

unformat 11/09 21:51不會當選的票數 沒意義