Binomial Probability Distribution

GNU R:

# 二項式機率 BinomialProbability <- function(numOfTrials, probabilityOfSuccess, numOfSuccessTrials) { myCoefficient <- vector(mode="double", 5) myCoefficient[1] <- choose(numOfTrials, numOfSuccessTrials) myCoefficient[2] <- probabilityOfSuccess ^ numOfSuccessTrials myCoefficient[3] <- (1 - probabilityOfSuccess) ^ (numOfTrials - numOfSuccessTrials) myCoefficient[4] <- myCoefficient[2] * myCoefficient[3] myProbability <- myCoefficient[1] * myCoefficient[4] myProbability } BinomialMean <- function(numOfTrials, probabilityOfSuccess) { myMean <- numOfTrials * probabilityOfSuccess myMean } BinomialStdDeviation <- function(numOfTrials, probabilityOfSuccess) { myStdDeviation <- sqrt(numOfTrials * probabilityOfSuccess * (1 - probabilityOfSuccess)) myStdDeviation } BinomialStdDeviation2 <- function(myMean, probabilityOfSuccess) { myStdDeviation <- sqrt(myMean * (1 - probabilityOfSuccess)) myStdDeviation } PlotBinomialChart <- function(numOfTrials, probabilityOfSuccess) { myMean <- BinomialMean(numOfTrials, probabilityOfSuccess) myStdDeviation <- BinomialStdDeviation2(myMean, probabilityOfSuccess) myRight <- as.integer(myMean + 3 * myStdDeviation) myChartTitle <- sprintf("總次數=%d 成功機率=%.4f 平均值=%.4f 標準差=%.4f", numOfTrials, probabilityOfSuccess, myMean, myStdDeviation) curve(main=myChartTitle, choose(numOfTrials, x) * (probabilityOfSuccess ^ x) * ((1 - probabilityOfSuccess) ^ (numOfTrials - x)), from=1, to=100, xlab="值", ylab="機率密度") myChartTitle } numOfTrials <- 100 probabilityOfSuccess <- 0.2 PlotBinomialChart(numOfTrials, probabilityOfSuccess)

圖形

應用

    • 1