Hypothesis Testing#
Proportions#
from statsmodels.stats.proportion import proportions_ztest
import scipy.stats as stats
One-sided, right tail#
This is a one-sided test based on a sample size of \(n=30\) and a sample proportion of 18/30.
\[H_0: p = 0.5\]
\[H_A: p > 0.5\]
z_oneside, pval_oneside = proportions_ztest(count = 18,
nobs = 30,
value = .5,
prop_var = 0.5,
alternative = 'larger')
print("z-statistic:", z_oneside)
print("P-value", pval_oneside)
z-statistic: 1.0954451150103321
P-value 0.13666083914614907
One-sided, left tail#
\[H_0: p = 0.5\]
\[H_A: p < 0.5\]
z_one_left, pval_one_left = proportions_ztest(count = 18,
nobs = 30,
value = .5,
prop_var = 0.5,
alternative = 'smaller')
print("z-statistic:", z_one_left)
print("P-value", pval_one_left)
z-statistic: 1.0954451150103321
P-value 0.863339160853851
Two-sided#
\[H_0: p = 0.5\]
\[H_A: p \neq 0.5\]
z_twoside, pval_twoside = proportions_ztest(count=18,
nobs=30,
value=.5,
prop_var=0.5,
alternative='two-sided')
# Two sided by hand
p_hat = 0.6
p = .5
n = 30
sd = (p*(1-p) / (n))**0.5 # st dev from sampling distribution
z2 = (p_hat - p)/sd # test stat
pval2 = 2*(1 - stats.norm.cdf(z2)) # P-value
print("z-statistic:", z_twoside)
print("P-value", pval_twoside)
z-statistic: 1.0954451150103321
P-value 0.27332167829229814