1.伯努利分布
最简单的例子就是【抛硬币】
只有2种结果,每种结果的概率性等而且互不干扰。
把正面朝上定义为‘1’、背面朝上定义为‘0’,来计算结果的概率:
'''需要3个包分别是‘数组包’、‘绘图包’、‘计算包的统计模块’'''
#导入数组包
import numpy as np
#导入绘图包
import matplotlib.pyplot as plt
#导入统计计算包的统计模块
from scipy import stats
'''利用arange生成一个等差数组:arange([start,]stop,[step,])'''
#第1步,定义随机变量:1次抛硬币
#成功指正面朝上记录为1,失败指反面朝上记录为0
X = np.arange(0,2,1)
X
#第2步,求对应分布的概率:概率质量函数(PMF)
#它会返回一个列表,列表中每个元素表示随机变量中对应的之的概率
p = 0.5 #硬币朝上的概率
pList = stats.bernoulli.pmf(X,p)
pList
#第3步,绘图
'''plot默认绘制折线图,因为这里只需要绘制点,所以传入下面的参数:marker:点的形状,值‘o’表示点为圆圈标记linestyle:线条的形状,值None表示不显示链接各个点之间的折线'''
plt.plot(X,pList,marker = 'o',linestyle = 'None')
'''vlines用于绘制竖直线参数说明:vlines(x坐标值,y坐标最小值,y坐标最大值)我们传入的X是一个数组,是给数组中的每个X坐标值绘制竖直线竖直线Y坐标值最小是0,Y坐标值最大值对应pList的值'''
plt.vlines(X,0,pList)
#x轴文本
plt.xlabel('随机变量:抛硬币1次')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('伯努利分布:p=%.2f' % p)
#显示图形
plt.show()
2.二项式分布
可以看成是伯努利分布的亲戚,求某种连续结果发生的概率。
还是以‘抛硬币’为例,每次事件都有2种不同的结果(成功/失败),每次成功概率都相等而且互不干扰,求成功K次的概率是多少。
'''
充分步骤
需要3个包
分别是‘数组包’、‘绘图包’、‘计算包的统计模块’
#导入数组包
import numpy as np
#导入绘图包
import matplotlib.pyplot as plt
#导入统计计算包的统计模块
from scipy import stats
'''
#第1步,定义随机变量:5次抛硬币,正面朝上的次数
n = 5 #抛硬币的次数
p = 0.5 #每次成功的概率
X = np.arange(0,n + 1,1)
X
#第2步,求应对分布的概率:概率质量函数(PMF)
#它会返回一个列表,列表中每个元素表示随机变量中对应之的概率
pList = stats.binom.pmf(X,n,p)
pList
#第3步,绘图
plt.plot(X,pList,marker = 'o',linestyle = 'None')
plt.vlines(X,0,pList)
#x轴文本
plt.xlabel('随机变量:抛硬币正面朝上次数')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('二项分布:n=%i,p=%.2f'%(n,p))
#显示图形
plt.show()
3.几何分布
与二项分布不同的是,几何分布验证的是在第K次做某件事财奴的成功的概率。
'''
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
#第1步,定义随机变量
#这里想知道第5次成功的概率
k = 5
#假设每次表白成功的概率都是60%
p = 0.6
X = np.arange(1,k+1,1)
X
#第2步,求对应分布的概率:概率质量函数(PMF)
#它会返回一个列表,列表中每个元素表示随机变量中对应值的概率
#分别表示在第几次表白成功的概率
pList = stats.geom.pmf(X,p)
pList
#第3步,绘图
plt.plot(X,pList,marker = 'o',linestyle = 'None')
plt.vlines(X,0,pList)
#x轴文本
plt.xlabel('随机变量:表白第K次才首次成功')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('几何分布:p = %.2f' % p)
#显示图形
plt.show()
4.泊松分布
'''
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
#第1步,定义随机变量
'''
已知某路口发生事故的比率是每天2次
那么在此处一天内发生k次事故的概率是多少?
'''
mu = 2 #平均值:每天发生2次事故
k = 4 #次数,想了解每天发生4次的概率是多少
X = np.arange(0,k+1,1)
X
#第2步,求对应分布的概率:概率质量函数(PMF)
#它会返回一个列表,列表中每个元素表示随机变量中对应值的概率
#分别表示发生几次事故的概率
pList = stats.poisson.pmf(X,mu)
pList
#第3步,绘图
plt.plot(X,pList,marker = 'o',linestyle = 'None')
plt.vlines(X,0,pList)
#x轴文本
plt.xlabel('随机变量:某路口发生k次事故')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('泊松分布:平均值mu = %i' % mu)
#显示图形
plt.show()
5.正态分布
'''
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
#第1步,定义随机变量
mu = 0 #平均值
sigma = 1 #标准差
X = np.arange(-5,5,0.1)
X
#第2步,概率密度函数(PDF)
y = stats.norm.pdf(X,mu,sigma)
#第3步,绘图
'''
plot默认绘制折线图
'''
plt.plot(X,y)
#x轴文本
plt.xlabel('随机变量:x')
#y轴文本
plt.plot('概率:y')
#标题
plt.title('正态分布:$\mu$=%.1f,$\sigma^2$=%.1f' % (mu,sigma))
#网格
plt.grid()
#显示图形
plt.show()