library(Hmisc)
par1 = 50 #Sample size
par2 = 0.34 #Sample Proportion
par3 = 0.50 #Null hypothesis
par4 = 0.05 #Type I error (alpha)
# Testing Population Proportion (normal approximation)
if (par2 < par3) {
ucv <- qnorm(par4)
} else {
ucv <- -qnorm(par4)
}
# 1-sided critical value
cv1 <- par3 + ucv * sqrt(par3 * (1-par3) / par1)
print(cv1)
cv2low <- par2 - abs(qnorm(par4/2)) * sqrt(par3 * (1-par3) / par1)
cv2upp <- par2 + abs(qnorm(par4/2)) * sqrt(par3 * (1-par3) / par1)
z21 <- qnorm(par4/2)^2 / par1
z2 <- qnorm(par4/2)^2 / (2*par1)
z24 <- qnorm(par4/2)^2 / (4*par1^2)
cv2lowexact <- (par2 + z2 - abs(qnorm(par4/2)) *
sqrt(par3 * (1-par3) / par1 + z24)) / (1 + z21)
cv2uppexact <- (par2 + z2 + abs(qnorm(par4/2)) *
sqrt(par3 * (1-par3) / par1 + z24)) / (1 + z21)
z11 <- qnorm(par4)^2 / par1
z1 <- qnorm(par4)^2 / (2*par1)
z14 <- qnorm(par4)^2 / (4*par1^2)
cv1lowexact <- (par2 + z1 - abs(qnorm(par4)) *
sqrt(par3 * (1-par3) / par1 + z14)) / (1 + z11)
cv1uppexact <- (par2 + z1 + abs(qnorm(par4)) *
sqrt(par3 * (1-par3) / par1 + z14)) / (1 + z11)
# 1-sided test
if (par2 < par3) {
if (par2 < cv1) {
print('Reject the Null Hypothesis')
} else {
print('Do not reject the Null Hypothesis')
}
} else {
if (par2 > cv1) {
print('Reject the Null Hypothesis')
} else {
print('Do not reject the Null Hypothesis')
}
}
# 2-sided Confidence Interval
dum <- paste('[',cv2low)
dum <- paste(dum,',')
dum <- paste(dum,cv2upp)
dum <- paste(dum,']')
print(dum)
# 2-sided test
if ((par3 < cv2low) | (par3 > cv2upp)) {
print('Reject the Null Hypothesis')
} else {
print('Do not reject the Null Hypothesis')
}
# Testing Population Proportion (Agresti-Coull method)
# Left 1-sided confidence interval
dum <- paste('[',cv1lowexact)
dum <- paste(dum,', 1 ]')
print(dum)
# Right 1-sided confidence interval
dum <- paste('[ 0 ,',cv1uppexact)
dum <- paste(dum,' ]')
print(dum)
# 2-sided Confidence Interval
dum <- paste('[',cv2lowexact)
dum <- paste(dum,',')
dum <- paste(dum,cv2uppexact)
dum <- paste(dum,']')
print(dum)
(re <- binconf(par2*par1,par1,par4,method='exact'))
(re1 <- binconf(par2*par1,par1,par4*2,method='exact'))
(rw <- binconf(par2*par1,par1,par4,method='wilson'))
(rw1 <- binconf(par2*par1,par1,par4*2,method='wilson'))
# Left 1-sided confidence interval
dum <- paste('[',re1[2])
dum <- paste(dum,', 1 ]')
print(dum)
# Right 1-sided confidence interval
dum <- paste('[ 0 ,',re1[3])
dum <- paste(dum,' ]')
print(dum)
# 2-sided Confidence Interval
dum <- paste('[',re[2])
dum <- paste(dum,',')
dum <- paste(dum,re[3])
dum <- paste(dum,']')
print(dum)
# Left 1-sided confidence interval
dum <- paste('[',rw1[2])
dum <- paste(dum,', 1 ]')
print(dum)
# Right 1-sided confidence interval
dum <- paste('[ 0 ,',rw1[3])
dum <- paste(dum,' ]')
print(dum)
# 2-sided Confidence Interval
dum <- paste('[',rw[2])
dum <- paste(dum,',')
dum <- paste(dum,rw[3])
dum <- paste(dum,']')
print(dum)