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