so i have pasted my complete code for your reference, i want to know what's the use of ppf and cdf here? can you explain it? i did some research and found out that ppf(percent point function) is an inverse of CDF(comulative distribution function) if they really are, shouldn't this code work if i replaced ppf and cdf as 1/cdf and 1/ppf respectively?
please explain this to me, the difference between the two. and how to and when to use which
this is, btw, hypothesis testing. and sorry for so many comments, just a habit of explaining everything for my future reference.(do point me out if any of my comments is wrong regarding the same)
ball_bearing_radius = [2.99, 2.99, 2.70, 2.92, 2.88, 2.92, 2.82, 2.83, 3.06, 2.85]
import numpy as np
from math import sqrt
from scipy.stats import norm
# h1 : u != U_0
# h0 : u = u_0
#case study : ball bearing example, claim is that radius = 3, do hypothesis testing
mu_0 = 3
sigma = 0.1
#collect sample
sample = ball_bearing_radius
#compute mean
mean = np.mean(sample)
#compute n
n = len(sample)
#compute test statistic
z = (mean - mu_0) /(sigma/sqrt(n))
#set alpha
a = 0.01
#-------------------------
#calculate the z_a/2, by using percent point function of the norm of scipy
#ppf = percent point function, inverse of CDF(comulative distribution function)
#also, CDF = pr(X<=x), i.e., probability to the left of the distribution
z_critical = norm.ppf(1-a/2) #this returns a value for which the probab to the left is 0.975
p_value = 2*(1 - norm.cdf(np.abs(z)))
p_value = float("{:.4f}".format(p_value))
print('z : ',z)
print('\nz_critical :', z_critical)
print('\nmean :', mean, "\n\n")
#test the hypothesis
if (np.abs(z) > z_critical):
print("\nREJECT THE NULL HYPOTHESIS : \n p-value = ", p_value, "\n Alpha = ", a )
else:
print("CANNOT REJECT THE NULL HYPOTHESIS. NOT ENOUGH EVIDENCE TO REJECT IT: \n p-value = ", p_value, "\n Alpha = ", a )
CDF: Cumulative Distribution Function, returns the probability of a value less than or equal to a given outcome. PPF: Percent-Point Function, returns a discrete value that is less than or equal to the given probability.
The method norm. ppf() takes a percentage and returns a standard deviation multiplier for what value that percentage occurs at. It is equivalent to a, 'One-tail test' on the density plot. From scipy. stats.
A cumulative distribution function (CDF) tells us the probability that a random variable takes on a value less than or equal to some value. This tutorial explains how to calculate and plot values for the normal CDF in Python.
ppf() method, we can get the value of percentage point function which is inverse( cdf ) by using stats. halfgennorm. ppf() method. Syntax : stats.halfgennorm.ppf(x, beta) Return : Return the value of percentage point function.
A cumulative distribution function (CDF) tells us the probability that a random variable takes on a value less than or equal to some value. This tutorial explains how to calculate and plot values for the normal CDF in Python. The easiest way to calculate normal CDF probabilities in Python is to use the norm.cdf () function from the SciPy library.
The object norm () has a method ppf () that calculate the Percent point function of the norm. In other words, The method norm. ppf () accepts a percentage and returns a standard deviation multiplier for the value that percentage occurs at. The syntax is given below. q: It is a percentage. loc: It is used to specify the mean, by default it is 0.
The method norm.interval () of Python Scipy computes the endpoints of the distribution’s fractional alpha range, between 0 and 1. The syntax is given below. alpha (float): It is the alpha value. loc: It is used to specify the mean, by default it is 0. scale: It is used to determine the standard deviation, by default it is 1.
The method rvs () of Python Scipy of object norm is random variates that generate random numbers. loc: It is a mean. scale: The distribution’s matrix of covariance. size (int): It is the sample size. random_state (int): If the seed is None, the NumPy.random method is utilized (or np.random).
The .ppf()
function calculates the probability for a given normal distribution value, while the .cdf()
function calculates the normal distribution value for which a given probability is the required value. These are inverse of each other in this particular sense.
To illustrate this calculation, check the below sample code.
from scipy.stats import norm
print(norm.ppf(0.95))
print(norm.cdf(1.6448536269514722))
This image with the code above should make it clear for you.
Thanks!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With