Probability to z-score and vice versa

后端 未结 2 1303
孤城傲影
孤城傲影 2020-12-07 09:55

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

相关标签:
2条回答
  • 2020-12-07 10:15
    >>> 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
    

    0 讨论(0)
  • 2020-12-07 10:25

    Starting in Python 3.8, the standard library provides the NormalDist object as part of the statistics module.

    It can be used to get the zscore for which x% of the area under a normal curve lies (ignoring both tails).

    We can obtain one from the other and vice versa using the inv_cdf (inverse cumulative distribution function) and the cdf (cumulative distribution function) on the standard normal distribution:

    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.

    0 讨论(0)
提交回复
热议问题