Inverse gamma distribution in Python




scipy.stats.invgamma ():

This is an inverted gamma continuous random variable. This is an instance of the rv_continuous class. It inherits from a collection of generic methods and combines them with the full spread specification.

Code # 1: Generate an inverted gamma continuous random variable

from scipy.stats import invgamma 

 

numargs = invgamma.numargs

[a] = [ 0.3 ] * numargs

rv = invgamma (a)

 

  print ( "RV:" , rv) 

Output:

RV:
scipy.stats._distn_infrastructure.rv_frozen object at 0x00000230B0B28748

Code # 2: continuous inverse gamma variables and probability distribution

import numpy as np

quantile = np.arange ( 0.01 , 1 , 0.1 )

  
# Random Variants

 

R = invgamma.rvs (a, scale = 2 , size = 10 )

print ( "Random Variates:" , R)

 
# PDF

R = invgamma .pdf (a, quantile, loc = 0 , scale = 1 )

print ( "Probability Distribution:" , R)

Output:

 Random Variates: [4.18816252e + 00 2.02807957e + 03 8.37914946e + 01 1.94368997e + 00 3.78345091e + 00 1.00496176e + 06 3.42396458e + 03 3.45520522e + 00 2.81037118e + 00 1.72359706e + 03:] Probability [0.0012104 0.0157619 0.03512042 0.05975504 0.09007126 0.12639944 0.16898506 0.21798098 0.27344182 0.33532072] 

Code # 3: Graphic representation

import numpy as np

import matplotlib.pyplot as plt

 

distribution = np.linspace ( 0 , np.minimum (rv.dist.b, 3 ))

print ( "Distribution:" , distribution)

 

plot = plt.plot (distribution , rv.pdf (distribution))


Output:

 Distribution: [0. 0.06122449 0.12244898 0.18367347 0.24489796 0.30612245 0.36734694 0.42857143 0.48979592 0.55102041 0.6122449 0.67346939 0.73469388 0.79591837 0.85714286 0.91836735 0.97959184 1.04081633 1.10204082 1.16326531 1.2244898 1.28571429 1.34693878 1.40816327 1.46938776 1.53061224 1.59183673 1.65306122 1.71428571 1.7755102 1.83673469 1.89795918 1.95918367 2.02040816 2.08163265 2.14285714 2.20408163 2.26530612 2.32653061 2.3877551 2.44897959 2.51020408 2.57142857 2.63265306 2.69387755 2.75510204 2.81632653 2.87755102 2.93877551 3. ] 

Code # 4: Various Positional Arguments

import matplotlib. pyplot as plt

import numpy as np

 

x = np.linspace ( 0 , 5 , 100 )

 
# Various positional arguments

y1 = invgamma .pdf (x, 1 , 3 )

y2 = invgamma .pdf (x , 1 , 4 )

plt.plot (x, y1, "*" , x, y2, "r--" )


Exit:





Get Solution for free from DataCamp guru