统计学习第5周
一、概率第四周复习
1、离散变量、随机变量
2、期望、方差
3、离散概率分布 二项分布、伯努利分布、泊松分布
4、连续概率分布 均匀分布、正态分布、指数分布
二、Python实现
1.在安装python及进行科学计算,建议安装anaconda 3.5.0 ,版本,可以百度搜索清华大学镜像进行下载,安装,该版本对应python3.6;
对于python的IDEA ,可以安装pycharm ,或者使用Jupyter .
2.伯努利分布
伯努利分布又称为0-1分布,其特点是:
(1)每次试验中事件只有两种结果:发生或者不发生;
(2)每次试验中事件发生的概率都相同;
(3)n次试验间相互独立。
期
望
E
(
X
)
=
P
,
方
差
V
a
r
(
X
)
=
E
(
X
2
)
−
(
E
(
X
)
)
2
=
P
Q
期望E(X)=P ,方差 Var(X)=E(X^2)-(E(X))^2=PQ
期望E(X)=P,方差Var(X)=E(X2)−(E(X))2=PQ
#coding=utf-8
#在python的科学计算包scipy的stats 模块计算出常见概率分布的概率值,同时利用matplotlib进行绘图
#anacoda3.5.0版本 已安装python3.6 其中含有通用的科学计算模块
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
'''
1.伯努利分布,是0.3,否0.7 ,置两次,分别记录为0,1 ,对应概率为 0.7 0.3
并绘图
'''
#模拟抛了两次硬币,第一次记录为0,第二次记录为1
x1 = np.arange(0,2,1)
#print(x1) # [0 1]
p1 = 0.3 #概率0.3
#概率质量函数,第一次概率,第二次概率
pList1 = stats.bernoulli.pmf(x1,p1)
#print(pList1) #[0.7 0.3]
#绘图 marker 点的形状,linestyle None为不连接折线
plt.plot(x1,pList1,marker='o',linestyle='None')
#
plt.show()
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
#绘图 marker 点的形状,linestyle None为不连接折线
plt.plot(x1,pList1,marker='o',linestyle='None')
#绘制竖直线 vlines (x,y坐标最小值,y坐标最大值)
plt.vlines(x1,0,pList1)
plt.xlabel('随机变量')
plt.ylabel('概率')
plt.title('伯努利分布:p=%.2f' % p1)
plt.show()
3.离散概率分布:二项分布
二项分布为n次伯努利分布
P
(
X
=
r
)
=
C
n
r
p
r
q
n
−
r
P(X=r) = C_{n}^{r}p^rq^{n-r}
P(X=r)=Cnrprqn−r
期 望 : E ( X ) = n p , 方 差 V a r ( x ) = n p q 期望:E(X)=np ,方差 Var(x)=npq 期望:E(X)=np,方差Var(x)=npq
这里在2中我想多置几次,可是伯努利的代码却只能出现2个值,,这里二项分布的程序来。
#省略导入包代码和语言处理
'''
2.抛硬币,连续抛5次,求正面朝上次数的概率
'''
n2 = 5 #某件事情进行的次数
p2 = 0.5 #某次事件发生成功的概率
x2 = np.arange(0,n2+1 ,1) #事情成功的次数 从0开始 到n2-1 ,步长为1
#print(x2) #[0 1 2 3 4 5] 注意这里是出现0 次,1次,2次
#概率质量函数
pList2 = stats.binom.pmf(x2,n2,p2)
#print(pList2) #[0.03125 0.15625 0.3125 0.3125 0.15625 0.03125]
#绘图
plt.plot(x2,pList2,marker='o',linestyle='None')
plt.vlines(x2,0,pList2)
plt.xlabel('随机变量:抛硬币正面朝上的次数')
plt.ylabel('概率')
plt.title('二项分布:n=%i,p=%.2f' % (n2,p2))
plt.show()
4.离散概率分布:几何分布Geometric Distribution
第四周没有归纳该知识点,几何分布就是在n次伯努利实验中,实验k次才得到第一次成功的概率。
概
率
P
(
X
=
r
)
=
p
q
r
−
1
,
r
为
实
验
的
次
数
概率 P(X=r) = pq^{r-1},r为实验的次数
概率P(X=r)=pqr−1,r为实验的次数
期 望 E ( X ) = 1 p , 方 差 V a r ( x ) = q p 2 期望E(X)=\frac{1}{p} ,方差 Var(x)=\frac{q}{p^2} 期望E(X)=p1,方差Var(x)=p2q
'''
3.几何分布,例子很恰当啊,向女孩子表白,直到成功为止,有可能表白1次、2次、3次,
求表白成功的概率
'''
#用抛硬币来模拟表白,抛5次,
n3 = 5 #次数
p3 = 0.5 #一次做成功的概率
x3 = np.arange(0,n3+1 ,1) #做成某件事的次数
pList3 = stats.geom.pmf(x3,p3)
plt.plot(x3,pList3,marker='o',linestyle='None')
plt.vlines(x3,0,pList3)
plt.show()
0次肯定不会成功,1次成功的概率为0.5,第2次才成功的概率为0.5*0.5 = 0.25,第3次才成功的概率为…
5.离散概率分布:泊松分布 poisson distribution
泊松分布描述的是已知一段时间内事件发生的平均数,求某个时间发生的概率。
特点:1 单独事件在给定区间内随机、独立发生,2.该区间内的事件平均发生次数,为有限数值
P
(
X
=
r
)
=
e
−
λ
λ
r
r
!
P(X=r) = \frac{e^{-\lambda}\lambda^r}{r!}
P(X=r)=r!e−λλr
期 望 E ( X ) = λ , 方 差 V a r ( x ) = λ , r 表 示 给 定 区 间 内 发 生 事 件 的 次 数 , λ 为 每 个 区 间 内 平 均 发 生 次 数 。 期望 E(X) = \lambda ,方差 Var(x) = \lambda ,r表示给定区间内发生事件的次数,\lambda为每个区间内平均发生次数。 期望E(X)=λ,方差Var(x)=λ,r表示给定区间内发生事件的次数,λ为每个区间内平均发生次数。
'''
4.案例已知某路口发生事故的比例是每天2次,那么在此处一天内发生k次的概括是
'''
mu4 = 2 #每天平均发生2次事故
k4 =4 # 想知道每天发生4次的概率是
#发生次数次数,0 ,1,2,3,4
x4 = np.arange(0,k4+1,1)
pList4 = stats.poisson.pmf(x4,mu4)
plt.plot(x4,pList4,marker='o',linestyle='None')
plt.vlines(x4,0,pList4)
plt.xlabel('某路口发生k次事故')
plt.ylabel('概率')
plt.title('泊松分布:平均值mu=%i' % mu4)
plt.show()
6.连续分布:正态分布normal distribution
f
(
x
)
=
1
σ
2
π
e
−
1
2
σ
2
(
x
−
u
)
2
,
−
∞
<
x
<
+
∞
f(x)=\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{1}{2\sigma^2}(x-u)^2} ,-\infty<x<+\infty
f(x)=σ2π1e−2σ21(x−u)2,−∞<x<+∞
正态分布又名为高斯分布 gaussion distribution,
N
(
μ
,
σ
2
)
N(\mu,\sigma^2)
N(μ,σ2)
期望是0,方差是1的正态分布称为标准正态分布。
求解正态分布概率的步骤:
(1)确定分布和范围,算出均值和标准差
(2)将分布标准化,求出标准分
Z
=
X
−
μ
σ
Z=\frac{X-\mu}{\sigma}
Z=σX−μ
(3)计算出正态概率
'''
5.正态分布
'''
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
mu5 = 0 #均值
sigma = 1 #标准差
x5 = np.arange(-5,5,0.1)
y = stats.norm.pdf(x5,mu5,sigma)
plt.plot(x5,y)
plt.xlabel('随机变量:x')
plt.ylabel('概率:y')
plt.title('正态分布:$\mu$=%.1f,$\sigma^2$=%.1f' % (mu5,sigma))
plt.grid()#网格线
plt.show()
7.连续分布:指数分布
指数分布和泊松分布联合起来可以共同解决排队的问题。例如:过去1小时有5个人来结账,预计未来1小时有8个人来结账的概率是,可以用泊松分布来解决。当过去20分钟有1个人来结账,问未来10分钟有人来结账的概率是,可以用指数分布来计算。
概率计算公式为:
P
(
X
≥
x
)
=
e
−
λ
x
,
X
≥
x
P(X\geq x)=e^{-\lambda x} , X\geq x
P(X≥x)=e−λx,X≥x
P ( X < x ) = 1 − e − λ x P(X<x) = 1-e^{-\lambda x} P(X<x)=1−e−λx
概率密度函数为:
f
(
x
)
=
{
0
,
x
<
0
1
u
e
−
λ
x
=
λ
e
−
λ
x
,
x
≥
0
f(x)=\begin{cases} 0 ,x<0\\ \frac{1}{u}e^{-\lambda x} =\lambda e^{-\lambda x},x\geq0\end{cases}
f(x)={0,x<0u1e−λx=λe−λx,x≥0
x 表 示 给 定 的 时 间 长 度 , u 表 示 随 机 事 件 发 生 一 次 的 平 均 等 待 时 间 , λ 为 u 的 倒 数 , 单 位 时 间 内 随 机 事 件 发 生 的 次 数 。 x表示给定的时间长度,u表示随机事件发生一次的平均等待时间,\lambda为u的倒数,单位时间内随机事件发生的次数。 x表示给定的时间长度,u表示随机事件发生一次的平均等待时间,λ为u的倒数,单位时间内随机事件发生的次数。
'''
6.指数分布
'''
lam = 0.5
x6 = np.arange(0,15,0.1)
y6 = stats.expon.pdf(x6,lam)
plt.plot(x6,y6)
plt.title('exp')
plt.xlabel('x')
plt.ylabel('density')
plt.show()
发 生 一 次 平 均 需 等 待 分 钟 : μ = 2 , 那 么 一 分 钟 发 生 次 数 为 λ = 1 μ = 0.5 , f ( x ) = 1 μ e − λ x = 0.5 e − 0.5 x 发生一次平均需等待分钟:\mu = 2 ,那么一分钟发生次数为\lambda = \frac{1}{\mu}=0.5 ,f(x) = \frac{1}{\mu}e^{-\lambda x}=0.5e^{-0.5x} 发生一次平均需等待分钟:μ=2,那么一分钟发生次数为λ=μ1=0.5,f(x)=μ1e−λx=0.5e−0.5x
P ( x ≥ 10 ) = e − λ x = e − 0.5 ∗ 10 = 1 e 5 P(x\geq 10) = e^{-\lambda x} = e^{-0.5*10}=\frac{1}{e^5} P(x≥10)=e−λx=e−0.5∗10=e51
参考:
https://blog.csdn.net/qq_43315928/article/details/103230405
https://blog.csdn.net/weixin_43139613/article/details/89150818 几何分布
https://blog.csdn.net/AI_LX/article/details/88808373
https://blog.csdn.net/ccnt_2012/article/details/89875865