已知母體標準差(Population Std. Deviation Known)

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 } PrintOut <- function(sampleSize, sampleMean, sampleStdError, confidenceInterval, marginError) { print(sprintf("樣本數=%4d 樣本平均數=%8.4f 樣本標準誤差=%.4f 信任區間=%.4f 誤差界限=%.4f [%8.4f, %8.4f]", sampleSize, sampleMean, sampleStdError, confidenceInterval, marginError, sampleMean-marginError, sampleMean+marginError)) } ############################################################################################################# # 已知 populationStdDeviation <- 5 sampleMean <- 25 sampleSize <- 40 confidenceInterval <- 0.95 # 求算 sampleStdDeviation <- SampleStdDeviation(populationStdDeviation, sampleSize) sampleStdError <- SampleStdError(sampleStdDeviation) marginError <- MarginError(populationStdDeviation, sampleSize, confidenceInterval) PrintOut(sampleSize, sampleMean, sampleStdError, confidenceInterval, marginError) # 樣本數= 40 樣本平均數= 25.0000 樣本標準誤差=0.1282 信任區間=0.9500 誤差界限=0.2513 [ 24.7487, 25.2513] ############################################################################################################# # 已知 populationStdDeviation <- 6 sampleMean <- 32 sampleSize <- 50 confidenceInterval <- c(0.9, 0.95, 0.99) # 求算 sampleStdDeviation <- SampleStdDeviation(populationStdDeviation, sampleSize) sampleStdError <- SampleStdError(sampleStdDeviation) for (myConfidenceInterval in confidenceInterval) { marginError <- MarginError(populationStdDeviation, sampleSize, myConfidenceInterval) PrintOut(sampleSize, sampleMean, sampleStdError, myConfidenceInterval, marginError) } # 樣本數= 50 樣本平均數= 32.0000 樣本標準誤差=0.1224 信任區間=0.9000 誤差界限=1.3957 [ 30.6043, 33.3957] # 樣本數= 50 樣本平均數= 32.0000 樣本標準誤差=0.1224 信任區間=0.9500 誤差界限=1.6631 [ 30.3369, 33.6631] # 樣本數= 50 樣本平均數= 32.0000 樣本標準誤差=0.1224 信任區間=0.9900 誤差界限=2.1857 [ 29.8143, 34.1857] ############################################################################################################# # 已知 populationStdDeviation <- 15 sampleMean <- 80 sampleSize <- c(60, 120) confidenceInterval <- 0.95 # 求算 for (mySampleSize in sampleSize) { sampleStdDeviation <- SampleStdDeviation(populationStdDeviation, mySampleSize) sampleStdError <- SampleStdError(sampleStdDeviation) marginError <- MarginError(populationStdDeviation, mySampleSize, confidenceInterval) PrintOut(mySampleSize, sampleMean, sampleStdError, confidenceInterval, marginError) } # 樣本數= 60 樣本平均數= 80.0000 樣本標準誤差=0.2542 信任區間=0.9500 誤差界限=3.7955 [ 76.2045, 83.7955] # 樣本數= 120 樣本平均數= 80.0000 樣本標準誤差=0.1261 信任區間=0.9500 誤差界限=2.6838 [ 77.3162, 82.6838] ############################################################################################################# # 已知 populationStdDeviation <- 15 sampleMeanRange <- c(152, 160) confidenceInterval <- 0.95 # 求算 sampleMean <- mean(sampleMeanRange) marginError <- sampleMean - sampleMeanRange[1] myZ <- z(confidenceInterval + (1-confidenceInterval)/2) sampleSize <- as.integer(((myZ * populationStdDeviation) / marginError) ^ 2) sampleStdDeviation <- SampleStdDeviation(populationStdDeviation, mySampleSize) PrintOut(sampleSize, sampleMean, sampleStdError, confidenceInterval, marginError) # 樣本數= 54 樣本平均數=156.0000 樣本標準誤差=0.1261 信任區間=0.9500 誤差界限=4.0000 [152.0000, 160.0000]

應用: