How do I calculate the
z score of a
p-value and vice versa?
For example if I have a p-value of
0.95 I should get
1.96 in return.
I saw some functions in scipy but they only run a z-test on an array.
I have access to numpy, statsmodel, pandas, and scipy (I think).
import scipy.stats as st st.norm.ppf(.95) 1.6448536269514722 st.norm.cdf(1.64) 0.94949741652589625
As other users noted, Python calculates left/lower-tail probabilities by default. If you want to determine the density points where 95% of the distribution is included, you have to take another approach:
>>>st.norm.ppf(.975) 1.959963984540054 >>>st.norm.ppf(.025) -1.960063984540054
It can be used to get the
zscore for which x% of the area under a normal curve lies (ignoring both tails).
from statistics import NormalDist NormalDist().inv_cdf((1 + 0.95) / 2.) # 1.9599639845400536 NormalDist().cdf(1.9599639845400536) * 2 - 1 # 0.95
An explanation for the ‘(1 + 0.95) / 2.’ formula can be found in this wikipedia section.