一些数学分布

简单画一些数学分布

【1】基础概念

随机变量:指“其值随机会而定”的变量,机会表现为试验结果,一个随机试验有许多可能的结果,到底出现哪一个要看机会,即有一定概率。随机变量可以看做试验结果的函数。

对于随机事件,可以以随机变量来进行描述,如:特定人群中,年收入万元以上的人数比例是多少?
我们可以引入一个随机变量$X$:

$X$是我们关心的随机变量,随机事件年收入万元以上的人数比例可以表示为${X>10000}$,即随机事件是包含在随机变量的表述范畴内。随机事件是一种静态的观点,随机变量是一种动态的观点来研究随机现象。就如同常量和变量一样。
概率密度函数
在数学中,连续型随机变量的概率密度函数(在不至于混淆时可以简称为密度函数)是一个描述这个随机变量的输出值,在某个确定的取值点附近的可能性的函数,也称为概率分布。如:

累积分布函数也叫分布函数,是概率密度函数的积分。
一些常用的概率分布:
二项分布:

常记为:

泊松分布:

常记为:

高斯分布:

常记为:

又名正态分布,概率密度是一个钟型曲线,累积分布呈现中间放大,两端抑制的特性。

【1】高斯分布

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import scipy.stats as st
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
z = np.linspace(-6,6,100)
plt.xlabel('z', fontsize=15)
plt.title('Gaussian Z\sim{N(0,1)}')
y1=st.norm.pdf(z,0,1)
y2=st.norm.cdf(z,0,1)
plt.plot(z,y1,'r-',label = 'Probability density')
plt.plot(z,y2,'b-',label = 'Cumulative distribution')
# plt.ylim(0,0.3)
plt.legend()
plt.grid()
plt.show()

【2】Logistic函数分布

logistic分布:
logistic的概率密度函数和高斯密度函数类似,也是一个钟型的曲线。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import scipy.stats as st
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
# Define the logistic function
def logistic(z):
return 1 / (1 + np.exp(-z))
# Define the logistic function
def logistic_derivative(z):
return logistic(z) * (1 - logistic(z))
# Plot the derivative of the logistic function & the logistic function
# plt.figure(figsize=(10,7))
z = np.linspace(-6,6,1000)
plt.plot(z, logistic(z), 'b-',label = 'Cumulative distribution')
plt.plot(z, logistic_derivative(z), 'r-',label = 'Probability density')
plt.xlabel('$z$', fontsize=15)
plt.title('Logistic')
plt.legend()
plt.grid()
plt.show()

【3】高斯分布和logistic分布的对比

高斯概率分布和logistic概率分布类似,当高斯分布方差为$\frac{4}{\sqrt{2\pi}}$左右时,高斯分布逼近logstic概率分布。如果高斯概率分布的方差值继续减小,则对应的高斯累积分布0值附近会更加陡峭,中间放大,两端抑制的功能进一步加强。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import numpy as np
theta = 4/(np.sqrt(2*np.pi))
# theta = 1.59576912161
def logistic_dev(x):
return np.exp(-x)/(np.square(1+np.exp(-x)))
def gaussion_dev(x,sigma):
return np.exp(-(np.square(x))/(2*(np.square(sigma))))/(np.sqrt(2*np.pi)*sigma)
z = np.linspace(-6,6,1000)
plt.plot(z,logistic_dev(z)-gaussion_dev(z,theta),'r-',label = 'density minus')
plt.plot(z,logistic_dev(z),'b-',label = 'logistic density')
plt.plot(z,gaussion_dev(z,theta),'g-',label = 'gaussion density')
plt.legend()
plt.grid()
plt.show()

logistic函数的概率分布和高斯函数的概率分布都是钟型曲线,当高斯的方差取值小于1.69的时候,高斯概率分布对离群点敏感

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Define the logistic function
def logistic(z):
return 1 / (1 + np.exp(-z))
# Define the logistic function
def logistic_derivative(z):
return logistic(z) * (1 - logistic(z))
# Plot the derivative of the logistic function
# plt.figure(figsize=(400,300))
z = np.linspace(-6,6,100)
plt.plot(z, logistic_derivative(z), 'r-',label = 'logistic')
plt.xlabel('$z$', fontsize=15)
plt.title('logistic & Gaussian Probability density')
y1=st.norm.pdf(z,0,1.59)
y2=st.norm.pdf(z,0,0.69)
y3=st.norm.pdf(z,0,3)
plt.plot(z,y1,'b-',label = 'Gaussion, 0, 1.59')
plt.plot(z,y2,'g-',label = 'Gaussion, 0, 0.69')
plt.plot(z,y3,'y-',label = 'Gaussion, 0, 3')
plt.legend()
plt.grid()
plt.show()

【4】Beta分布

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import scipy.stats as st
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
z = np.arange(0.01,1,0.01)
plt.xlabel('$z$', fontsize=15)
plt.title('Beta')
y1=st.beta.pdf(z,0.5,0.5)
y2=st.beta.cdf(z,0.5,0.5)
plt.plot(z,y1,'r-',label = 'Probability density')
plt.plot(z,y2,'b-',label = 'Cumulative distribution')
plt.legend()
plt.grid()
plt.show()