假設檢定:母體比例

GNU R

######### Statistics.R ########## ############ 假設檢定 ############ HypothesisTestingGetZfromPopulation <- function(myPopulationMean, myPopulationStdDeviation, mySampleSize, mySampleMean) { myZ <- (mySampleMean - myPopulationMean) / (myPopulationStdDeviation / sqrt(mySampleSize)) myZ } HypothesisTestingGetZfromSample <- function(myPopulationMean, mySampleStdDeviation, mySampleSize, mySampleMean) { myZ <- (mySampleMean - myPopulationMean) / (mySampleStdDeviation / sqrt(mySampleSize)) myZ } HypothesisTestingPopulationProportionStdDeviation <- function(myPopulationMean, mySampleSize) { myPopulationProportionStdDeviation <- sqrt(((myPopulationMean * (1-myPopulationMean)) / mySampleSize)) myPopulationProportionStdDeviation } HypothesisTestingGetZfromSampleProportion <- function(myPopulationMean, mySampleStdDeviation, mySampleMean) { myZ <- (mySampleMean - myPopulationMean) / mySampleStdDeviation myZ } # 左尾 HypothesisLeftTailedTestingCriticalValue <- function(myLevelOfSignificance) { myZalpha <- myLevelOfSignificance myCriticalValue <- qnorm(myZalpha) print(sprintf("Reject H0, if z < %.4f", myCriticalValue)) myCriticalValue } HypothesisLeftTailedTestingT <- function(myLevelOfSignificance, myDegreeOfFreedom) { myTalpha <- myLevelOfSignificance myTvalue <- qt(myTalpha, myDegreeOfFreedom) print(sprintf("Reject H0, if t < %.4f", myTvalue)) myTvalue } HypothesisLeftTailedTestingP <- function(myZvalue) { myPvalue <- pnorm(myZvalue) myPvalue } HypothesisLeftTailedTestingZAgainstNull <- function(myZvalue, myZalpha) { # Rejected: if z < z(α) isRejected <- (myZvalue < myZalpha) isRejected } HypothesisLeftTailedTestingPAgainstNull <- function(myPvalue, myLevelOfSignificance) { # Rejected: if p < α isRejected <- (myPvalue < myLevelOfSignificance) isRejected } HypothesisLeftTailedTestingTAgainstNull <- function(myTvalue, myTalpha) { # Rejected: if t < t(α) isRejected <- (myTvalue < myTalpha) isRejected } HypothesisLeftTailedTestingAgainstNull <- function(myLevelOfSignificance, myZalpha, myTalpha, myZvalue, myPvalue) { if (HypothesisLeftTailedTestingZAgainstNull(myZvalue, myZalpha)) { print(sprintf("Rejected: (z=%.4f) < (Null=%.4f)", myZvalue, myZalpha)) } else { print(sprintf("Not Rejected: (z=%.4f) >= (Null=%.4f)", myZvalue, myZalpha)) } if (HypothesisLeftTailedTestingPAgainstNull(myPvalue, myLevelOfSignificance)) { print(sprintf("Rejected: (p-value=%.4f) < (α=%.4f)", myPvalue, myLevelOfSignificance)) } else { print(sprintf("Not Rejected: (p-value=%.4f) >= (α=%.4f)", myPvalue, myLevelOfSignificance)) } if (HypothesisLeftTailedTestingTAgainstNull(myZvalue, myTalpha)) { print(sprintf("Rejected: (t=%.4f) < (Null=%.4f)", myZvalue, myTalpha)) } else { print(sprintf("Not Rejected: (t=%.4f) >= (Null=%.4f)", myZvalue, myTalpha)) } } # 右尾 HypothesisRightTailedTestingCriticalValue <- function(myLevelOfSignificance) { myZalpha <- 1 - myLevelOfSignificance myCriticalValue <- qnorm(myZalpha) print(sprintf("Reject H0, if z > %.4f", myCriticalValue)) myCriticalValue } HypothesisRightTailedTestingT <- function(myLevelOfSignificance, myDegreeOfFreedom) { myTalpha <- myLevelOfSignificance myTvalue <- qt(myTalpha, myDegreeOfFreedom, lower.tail=FALSE) print(sprintf("Reject H0, if t > %.4f", myTvalue)) myTvalue } HypothesisRightTailedTestingP <- function(myZvalue) { myPvalue <- 1 - pnorm(myZvalue) myPvalue } HypothesisRightTailedTestingZAgainstNull <- function(z, myZalpha) { # Rejected: if z > z(α) isRejected <- (z > myZalpha) isRejected } HypothesisRightTailedTestingPAgainstNull <- function(myPvalue, myLevelOfSignificance) { # Rejected: if p < α isRejected <- (myPvalue < myLevelOfSignificance) isRejected } HypothesisRightTailedTestingTAgainstNull <- function(myTvalue, myTalpha) { # Rejected: if t < t(α) isRejected <- (myTvalue > myTalpha) isRejected } HypothesisRightTailedTestingAgainstNull <- function(myLevelOfSignificance, myZalpha, myTalpha, myZvalue, myPvalue) { if (HypothesisRightTailedTestingZAgainstNull(myZvalue, myZalpha)) { print(sprintf("Rejected: (z=%.4f) > (Null=%.4f)", myZvalue, myZalpha)) } else { print(sprintf("Not Rejected: (z=%.4f) <= (Null=%.4f)", myZvalue, myZalpha)) } if (HypothesisRightTailedTestingPAgainstNull(myPvalue, myLevelOfSignificance)) { print(sprintf("Rejected: (p-value=%.4f) < (α=%.4f)", myPvalue, myLevelOfSignificance)) } else { print(sprintf("Not Rejected: (p-value=%.4f) >= (α=%.4f)", myPvalue, myLevelOfSignificance)) } if (HypothesisRightTailedTestingTAgainstNull(myZvalue, myTalpha)) { print(sprintf("Rejected: (t=%.4f) > (Null=%.4f)", myZvalue, myTalpha)) } else { print(sprintf("Not Rejected: (t=%.4f) <= (Null=%.4f)", myZvalue, myTalpha)) } } # 雙尾 HypothesisBothTailedTestingCriticalValue <- function(myLevelOfSignificance) { myZalpha <- myLevelOfSignificance myCriticalValue <- qnorm(myZalpha / 2) print(sprintf("Reject H0, if z < %.4f or z > %.4f", 0 - abs(myCriticalValue), abs(myCriticalValue))) myCriticalValue } HypothesisBothTailedTestingP <- function(myZvalue) { if (myZvalue < 0) { myPvalue <- pnorm(myZvalue) } else { myPvalue <- 1 - pnorm(myZvalue) } myPvalue <- 2 * myPvalue } HypothesisBothTailedTestingT <- function(myLevelOfSignificance, myDegreeOfFreedom) { myTapha <- myLevelOfSignificance myTvalue <- qt(myTapha / 2, myDegreeOfFreedom) print(sprintf("Reject H0, if t < %.4f or t > %.4f", 0 - abs(myTvalue), abs(myTvalue))) myTvalue } HypothesisBothTailedTestingZAgainstNull <- function(myZ, myZapha) { # Rejected: if z < z(α) isRejected <- (myZ < 0 - abs(myZapha)) || (myZ > abs(myZapha)) isRejected } HypothesisBothTailedTestingPAgainstNull <- function(myPvalue, myLevelOfSignificance) { # Rejected: if p < α isRejected <- (myPvalue < myLevelOfSignificance) || (myPvalue > 1 - myLevelOfSignificance) isRejected } HypothesisBothTailedTestingTAgainstNull <- function(myTvalue, myTalpha) { # Rejected: if t < tα isRejected <- (myTvalue < 0 - abs(myTalpha)) || (myTvalue > abs(myTalpha)) isRejected } HypothesisBothTailedTestingAgainstNull <- function(myLevelOfSignificance, myZalpha, myTalpha, myZvalue, myPvalue) { if (myZvalue < 0) { myZalpha <- 0 - abs(myZalpha) myTalpha <- 0 - abs(myTalpha) } else { myZalpha <- abs(myZalpha) myTalpha <- abs(myTalpha) } if (HypothesisBothTailedTestingZAgainstNull(myZvalue, myZalpha)) { print(sprintf("Rejected: (z=%.4f) < (Null=%.4f)", myZvalue, myZalpha)) } else { print(sprintf("Not Rejected: (z=%.4f) >= (Null=%.4f)", myZvalue, myZalpha)) } if (HypothesisBothTailedTestingPAgainstNull(myPvalue, myLevelOfSignificance)) { print(sprintf("Rejected: (p-value=%.4f) < (α=%.4f)", myPvalue, myLevelOfSignificance)) } else { print(sprintf("Not Rejected: (p-value=%.4f) >= (α=%.4f)", myPvalue, myLevelOfSignificance)) } if (HypothesisBothTailedTestingTAgainstNull(myZvalue, myTalpha)) { print(sprintf("Rejected: (t=%.4f) < (Null=%.4f)", myZvalue, myTalpha)) } else { print(sprintf("Not Rejected: (t=%.4f) >= (Null=%.4f)", myZvalue, myTalpha)) } }

應用