依薪資範圍誤差界限計算商學院畢業生抽樣人數

場景

    • 美國商學院畢業生一般預期年薪範圍為 $30000 ~ $40000 元間。

    • 欲進行統計分析,希望信任區間為 95%。

問題

    • 若誤差界限為 $500 元,求算隨機抽樣商學院畢業生人數。(96)

    • 若誤差界限為 $200 元,求算隨機抽樣商學院畢業生人數。(600)

    • 若誤差界限為 $100 元,求算隨機抽樣商學院畢業生人數。(2401)

GNU R

# 已知母體標準差,求誤差界限 # 樣本標準差 SampleStdDeviation <- function(populationStdDeviation, sampleSize) { sampleStdDeviation <- (populationStdDeviation) / (sampleSize - 1) sampleStdDeviation } # 樣本誤差 SampleStdError <- function(sampleStdDeviation) { sampleStdError <- sampleStdDeviation sampleStdError } # 從機率反求 z 值 z <- function(probability) { myZ <- qnorm(probability) myZ } # 誤差界限 MarginError <- function(populationStdDeviation, sampleSize, confidenceInterval) { myZ <- z(confidenceInterval + (1-confidenceInterval)/2) marginError <- myZ * (populationStdDeviation / sqrt(sampleSize)) marginError } # 母體標準差預計值 PlanningValueOfPopulationStdDeviation <- function(rangeOfData) { planningValue <- rangeOfData / 4 planningValue } PopulationStdDeviationFromPlanningValue <- function(planningValue) { populationStdDeviation <- planningValue populationStdDeviation } # 已知母體標準差,誤差界限,及信任區間,求樣本數 SampleSizeOfPupolationStdDeviationMarginErrorConfidenceInterval <- function(populationStdDeviation, marginError, confidenceInterval) { myZ <- z(confidenceInterval + (1-confidenceInterval)/2) mySampleSize <- (myZ * populationStdDeviation) / marginError sampleSize <- round(mySampleSize ^ 2, 0) sampleSize } PrintOut <- function(sampleSize, sampleStdError, confidenceInterval, marginError) { print(sprintf("樣本數=%4d 樣本標準誤差=%7.4f 信任區間=%.4f 誤差界限=%.4f [%8.4f, %+8.4f]", sampleSize, sampleStdError, confidenceInterval, marginError, 0-marginError, marginError)) } ############################################################################################################# # 已知 rangeData <- 40000 - 30000 confidenceInterval <- 0.95 marginError <- c(500, 200, 100) # 求算 populationStdDeviation <- PopulationStdDeviationFromPlanningValue(PlanningValueOfPopulationStdDeviation(rangeData)) for (myMarginError in marginError) { sampleSize <- SampleSizeOfPupolationStdDeviationMarginErrorConfidenceInterval(populationStdDeviation, myMarginError, confidenceInterval) sampleStdDeviation <- SampleStdDeviation(populationStdDeviation, sampleSize) sampleStdError <- SampleStdError(sampleStdDeviation) PrintOut(sampleSize, sampleStdError, confidenceInterval, myMarginError) } # 樣本數= 96 樣本標準誤差=26.3158 信任區間=0.9500 誤差界限=500.0000 [-500.0000, +500.0000] # 樣本數= 600 樣本標準誤差= 4.1736 信任區間=0.9500 誤差界限=200.0000 [-200.0000, +200.0000] # 樣本數=2401 樣本標準誤差= 1.0417 信任區間=0.9500 誤差界限=100.0000 [-100.0000, +100.0000] #############################################################################################################