依交貨日期誤差界限計算供應商抽樣家數

場景

    • 某大型代工廠統計其供應商交貨日數推估值(最遲日數-最快日數,Planning Value of σ)為 6.84 天。

問題

    • 在信任區間 95% 下,誤差界限 1.5 日,求算隨機抽樣供應商家數。(80)

    • 在信任區間 90% 下,誤差界限 2 日,求算隨機抽樣供應商家數。(32)

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)) } ############################################################################################################# # 已知 planningValue <- 6.84 # 求算 populationStdDeviation <- PopulationStdDeviationFromPlanningValue(planningValue) # 已知 confidenceInterval <- c(0.95, 0.9) marginError <- c(1.5, 2) # 求算 for (myQ in c(1,2)) { sampleSize <- SampleSizeOfPupolationStdDeviationMarginErrorConfidenceInterval(populationStdDeviation, marginError[myQ], confidenceInterval[myQ]) sampleStdDeviation <- SampleStdDeviation(populationStdDeviation, sampleSize) sampleStdError <- SampleStdError(sampleStdDeviation) PrintOut(sampleSize, sampleStdError, confidenceInterval[myQ], marginError[myQ]) } # 樣本數= 80 樣本標準誤差=0.0866 信任區間=0.9500 誤差界限=1.5000 [ -1.5000, +1.5000] # 樣本數= 32 樣本標準誤差=0.2206 信任區間=0.9000 誤差界限=2.0000 [ -2.0000, +2.0000] #############################################################################################################