Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Probability-Statistics-Jupy…
GitHub Repository: Probability-Statistics-Jupyter-Notebook/probability-statistics-notebook
Path: blob/master/notebook-for-reviewing/chapter_4_continuous_probability_distribution.ipynb
388 views
Kernel: Python 3
from scipy.stats import uniform from scipy.stats import expon from scipy.stats import gamma from scipy.stats import weibull_min from scipy.stats import beta import math
def print_status(exp, var, pmf, cdf): print('Exp\t {:.6f}\nVar\t {:.6f}\nPMF\t {:.6f}\nCDF\t {:.6f}'.format(exp, var, pmf, cdf))

Chpater 4 Coutinuous Probability Distribution

4.1 Uniform Distribution

XU(a,b):f(x;a,b)=1ba,axbX\sim U(a, b):f(x;a, b) = \frac{1}{b-a}, a\leq x\leq b

E(X)=a+b2E(X) = \frac{a+b}{2}

Var(X)=(ba)212Var(X) = \frac{(b-a)^2}{12}

# Input a = 1 b = 2 pdf_variable = [1, 1.75] # [star point, end point] cdf_variable = 1.5 # Calculate exp, var = uniform.stats(a, b-a, moments='mv') pdf = uniform.cdf(pdf_variable[1], a, b-a) - uniform.cdf(pdf_variable[0], a, b-a) cdf = uniform.cdf(cdf_variable, a, b-a) # Output print_status(exp, var, pdf, cdf)
Exp 1.500000 Var 0.083333 PMF 0.750000 CDF 0.500000

4.2 Exponential Distribution

XExp(λ):f(x;λ)=λeλx,x>0X\sim Exp(\lambda):f(x;\lambda) = \lambda e^{-\lambda x}, x>0

E(X)=1λE(X) = \frac{1}{\lambda}

Var(X)=1λ2Var(X) = \frac{1}{\lambda^2}

# Input lamb = 0.31 pdf_variable = [1, 1.5] # [star point, end point] cdf_variable = 5 # Calculate exp, var = expon.stats(scale=1/lamb, moments='mv') pdf = expon.cdf(pdf_variable[1], scale=1/lamb) - expon.cdf(pdf_variable[0], scale=1/lamb) cdf = expon.cdf(cdf_variable, scale=1/lamb) # Output print_status(exp, var, pdf, cdf)
Exp 3.225806 Var 10.405827 PMF 0.105312 CDF 0.787752

4.3 Gamma Distribution

XGam(k,λ):f(x;k,λ)=λkΓ(k)xk1eλx,x>0X\sim Gam(k, \lambda):f(x;k, \lambda) = \frac{\lambda^k}{\Gamma(k)}x^{k-1}e^{-\lambda x}, x>0

Where Γ(k)=0xk1exdx,k>0\Gamma(k) = \int_{0}^{\infty}x^{k-1}e^{-x}dx, k>0

E(X)=kλE(X) = \frac{k}{\lambda}

Var(X)=kλ2Var(X) = \frac{k}{\lambda^2}

# Input k = 3 lamb = 1.8 pdf_variable = [1, 1.5] # [star point, end point] cdf_variable = 3 # Calculate exp, var = gamma.stats(k, scale=1/lamb, moments='mv') pdf = gamma.cdf(pdf_variable[1], k, scale=1/lamb) - gamma.cdf(pdf_variable[0], k, scale=1/lamb) cdf = gamma.cdf(cdf_variable, k, scale=1/lamb) # Output print_status(exp, var, pdf, cdf)
Exp 1.666667 Var 0.925926 PMF 0.236997 CDF 0.905242

4.4 Weibull Distribution

XWeibull(k,λ):f(x;k,λ)=kλ(λy)k1e(λy)k,k>0,λ>0X\sim Weibull(k, \lambda):f(x;k, \lambda) = k\lambda(\lambda y)^{k-1}e^{-(\lambda y)^k}, k>0, \lambda>0

E(X)=1λΓ(1+1k)E(X) = \frac{1}{\lambda}\Gamma(1+\frac{1}{k})

Var(X)=1λ2{Γ(1+2k)[Γ(1+1a)]2}Var(X) = \frac{1}{\lambda^2}\{\Gamma(1+\frac{2}{k})-[\Gamma(1+\frac{1}{a})]^2\}

# Input k = 5 lamb = 2 pdf_variable = [1, 2] # [star point, end point] cdf_variable = 1 # Calculate exp, var = weibull_min.stats(k, scale=1/lamb, moments='mv') pdf = weibull_min.cdf(pdf_variable[1], k, scale=1/lamb) - weibull_min.cdf(pdf_variable[0], k, scale=1/lamb) cdf = weibull_min.cdf(cdf_variable, k, scale=1/lamb) # Output print_status(exp, var, pdf, cdf)
Exp 0.459084 Var 0.011057 PMF 0.000000 CDF 1.000000

4.5 Beta Distribution

XBeta(α,β):f(x;α,β)=Γ(α+β)Γ(α)Γ(β)xα1(1x)β1,0<x<1X\sim Beta(\alpha, \beta):f(x;\alpha, \beta) = \frac{\Gamma(\alpha + \beta)}{\Gamma(\alpha)\Gamma(\beta)}x^{\alpha-1}(1-x)^{\beta-1}, 0<x<1

E(X)=αα+βE(X) = \frac{\alpha}{\alpha + \beta}

Var(X)=αβ(α+β)2(α+β+1)Var(X) = \frac{\alpha\beta}{(\alpha +\beta)^2(\alpha + \beta + 1)}

# Input a = 10 b = 4 pdf_variable = [0.2, 0.3] # [star point, end point] cdf_variable = 0.2 # Calculate exp, var = beta.stats(a, b, moments='mv') pdf = beta.cdf(pdf_variable[1], a, b) - beta.cdf(pdf_variable[0], a, b) cdf = beta.cdf(cdf_variable, a, b) # Output print_status(exp, var, pdf, cdf)
Exp 0.714286 Var 0.013605 PMF 0.000636 CDF 0.000016

Addup: Calculate the Gamma Function

Γ(k)=0xk1exdx,k>0\Gamma(k) = \int_{0}^{\infty}x^{k-1}e^{-x}dx, k>0

math.gamma(6)
120.0