前提:引入Python科学计算库scipy
import scipy.stats as stats
一、离散概率分布
①伯努利概率分布
·理解:某件事情发生的结果只有0和1两种结果,就是结果要么0,要么1。
·分布图:
·Python实现:stats.bernoulli.pmf(x,p)
p=0.5 #抛硬币的概率为0.5
x=np.arange(0,2,1) #抛硬币会出现两种结果0,1,求两种结果的分别概率
pList_ber = stats.bernoulli.pmf(x,p)#pmf()是离散概率函数
#可视化
plt.plot(x,pList_ber,marker='o',linestyle='None')
plt.vlines(x,0,pList_ber)
plt.title('bernoulli分布 p=0.5')
plt.xlabel('随机变量:抛一次硬币的结果面')
plt.ylabel('概率')
plt.show()
②二项分布
·理解:设某事件的发生结果为0(1-p),1 (p)。现有n次某事件,他们都是相互独立的,那么有k次事件结果为1的概率为:
期望:np
方差:np(1-p)
·分布图
·Python代码实现
n=5 #抛五次硬币
p=0.5 #一次为正的概率为0.5
x=np.arange(1,n+1,1)
pList_bin = stats.binom.pmf(x,n,p)
#可视化
plt.plot(x,pList_bin,marker='o',linestyle='None')
plt.vlines(x,0,pList_bin)
plt.xlabel('随机变量:抛硬币正面朝上的次数')
plt.ylabel('概率')
plt.title('二项分布:n=%i,p=%.2f' %(n,p))
plt.show()
③几何分布
·理解:不同于二项分布,几何分布是在前k-1次皆失败,第k次成功的概率
P(ξ=k)=(1-p)^(k-1) * p
·分布图
·Python代码实现:
k = 5
p=0.6
x=np.arange(1,k+1,1)
pList_geom= stats.geom.pmf(x,p)
#可视化
plt.plot(x,pList_geom,marker='o',linestyle='None')
plt.vlines(x,0,pList_geom)
plt.xlabel('随机变量:表白k次才成功的概率')
plt.ylabel('概率')
plt.title('几何分布:p=%.2f' %p)
plt.show()
④泊松分布
·理解:
考察一个变量是否服从泊松分布,需要满足以下条件: X是在一个区间(时间、空间、长度、面积、部件、整机等等)内发生特定事件的次数,可以取值为0,1,2,…;
一个事件的发生不影响其它事件的发生,即事件独立发生;
事件的发生率是相同的,不能有些区间内发生率高一些而另一些区间低一些;
两个事件不能在同一个时刻发生;
一个区间内一个事件发生的概率与区间的大小成比例。
满足以上条件,则X就是泊松随机变量,其分布就是泊松分布。
·分布图
·Python代码实现
avg = 2
k=4
x=np.arange(0,k+1,1)
pList_pois = stats.poisson.pmf(x,avg)
#可视化
plt.plot(x,pList_pois,marker='o',linestyle='None')
plt.vlines(x,0,pList_pois)
plt.xlabel('随机变量:某路口发生k次事故')
plt.ylabel('某路口发生k次事故的概率')
plt.title('泊松分布:平均值avg=%i' % avg)
plt.show()
二、连续分布
①正态分布normal distribution
②幂律分布
三、中心极限定理
理解:万变不离其宗。
一组数据不论呈现什么形态,他的随机样本总是会围绕着这组数据分平均值呈现正态分布。
作用:
1、用样本均值来估计总体均值
2、用样本标准差来估计总体标准差
四、避免样本误差
1、样本偏差
如何避免:扩大样本规模和增强样本的随机性,避免特殊样本出现
2、幸存者骗车
如何避免:学会多角度观察分析问题
3、概率偏见
如何避免:加强对概率问题的理解,避免用直觉无脑判断
4、信息茧房
如何避免:减少使用个性化推荐