公聽會上政策支持度機率計算

場景

    • 政府欲推動某向法案,舉辦 250 人之公聽會,其中執政黨中有 150 人,反對黨中有 100 人。

    • 根據統計:

      • 平均有 47% 的人支持此法案。

      • 政黨傾向統計:

        • 執政黨中有 64% 的人支持此法案。

        • 反對黨中有 29% 的人支持此法案。

問題

    • 在公聽會中,在未知政黨人數比例前,至少 50% 支持此法案的機率為何。(0.1875)

    • 在公聽會中,在已知政黨人數比例後,支持此法案的人數為何。(125)

GNU R:

# Normal Approx of Binomial Probability BinomialMean <- function(sampleSize, mySuccessProbability) { myMean <- sampleSize * mySuccessProbability myMean } BinomialStdDeviation <- function(sampleSize, mySuccessProbability) { myStdDeviation <- sqrt(sampleSize * mySuccessProbability * (1 - mySuccessProbability)) myStdDeviation } BinomialStdDeviation2 <- function(myMean, mySuccessProbability) { myStdDeviation <- sqrt(myMean * (1 - mySuccessProbability)) myStdDeviation } ############################################################################################## # 公聽會人數,執政黨人數,反對黨人數 sampleSize <- c(250, 150, 100) # 母體法案支持者比率,執政黨中法案支持者比率,反對黨中法案支持者比率 mySuccessProbability <- c(0.47, 0.64, 0.29) myMean <- BinomialMean(sampleSize[1], mySuccessProbability[1]) myStdDeviation <- BinomialStdDeviation2(myMean, mySuccessProbability[1]) # 至多 125 人(不含第 125 人),支持法案機率 mySampleSize <- 124.5 myProbability <- pnorm(mySampleSize[1], mean=myMean, sd=myStdDeviation) print(sprintf("母體支持機率=%.4f 樣本平均數=%.4f 當樣本數<=%.1f 時,支持機率=%.4f", mySuccessProbability[1], myMean, mySampleSize, myProbability)) # 至少 125 人(含第 125 人),支持法案機率 myProbability <- 1 - myProbability print(sprintf("母體支持機率=%.4f 樣本平均數=%.4f 當樣本數>=%.1f 時,支持機率=%.4f", mySuccessProbability[1], myMean, mySampleSize, myProbability)) myFavor <- sampleSize[2] * mySuccessProbability[2] myFavor <- myFavor + sampleSize[3] * mySuccessProbability[3] # 公聽會法案支持者人數 print(sprintf("公聽會支持法案人數=%d", round(myFavor)))