依無鉛汽油價格誤差界限計算加油站抽樣家數

場景

    • 美國無鉛汽油每加侖平均價格為 $2.41 元,標準差為 $0.15 元。

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

問題

    • 若誤差界限為 0.07 日,求算隨機抽樣加油站家數。(18)

    • 若誤差界限為 0.05 日,求算隨機抽樣加油站家數。(35)

    • 若誤差界限為 0.03 日,求算隨機抽樣加油站家數。(96)

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 樣本標準誤差=%.4f 信任區間=%.4f 誤差界限=%.4f [%8.4f, %+8.4f]", sampleSize, sampleStdError, confidenceInterval, marginError, 0-marginError, marginError)) } ############################################################################################################# # 已知 populationStdDeviation <- 0.15 populationMean <- 2.41 confidenceInterval <- 0.95 marginError <- c(0.07, 0.05, 0.03) # 求算 for (myMarginError in marginError) { sampleSize <- SampleSizeOfPupolationStdDeviationMarginErrorConfidenceInterval(populationStdDeviation, myMarginError, confidenceInterval) sampleStdDeviation <- SampleStdDeviation(populationStdDeviation, sampleSize) sampleStdError <- SampleStdError(sampleStdDeviation) PrintOut(sampleSize, sampleStdError, confidenceInterval, myMarginError) } # 樣本數= 18 樣本標準誤差=0.0088 信任區間=0.9500 誤差界限=0.0700 [ -0.0700, +0.0700] # 樣本數= 35 樣本標準誤差=0.0044 信任區間=0.9500 誤差界限=0.0500 [ -0.0500, +0.0500] # 樣本數= 96 樣本標準誤差=0.0016 信任區間=0.9500 誤差界限=0.0300 [ -0.0300, +0.0300] #############################################################################################################