4. 常见分布
二项分布:假设试验只有两种结果:成功的概率为 ,失败的概率为 。 则二项分布描述了独立重复地进行 次试验中,成功 次的概率。
概率质量函数:
期望:
方差:
scipy.stats.binom
使用n
参数指定 ;p
参数指定 ;loc
参数指定平移泊松分布:泊松分布使用 描述单位时间(或者单位面积)中随机事件发生的平均次数(只知道平均次数,具体次数是个随机变量)。
概率质量函数:
其物理意义是:单位时间内事件发生 次的概率
期望:
方差:
在二项分布中,如果 很大,而 很小。乘积 可以视作 ,此时二项分布近似于泊松分布。
泊松分布用于描述单位时间内随机事件发生的次数的分布的情况。
scipy.stats.poisson
使用mu
参数来给定 ,使用loc
参数来平移。用均匀分布模拟泊松分布:
def make_poisson(lmd,tm):
'''
用均匀分布模拟泊松分布。 lmd为 lambda 参数; tm 为时间
'''
t=np.random.uniform(0,tm,size=lmd*tm) # 获取 lmd*tm 个事件发生的时刻
count,tm_edges=np.histogram(t,bins=tm,range=(0,tm))#获取每个单位时间内,事件发生的次数
max_k= lmd *2 # 要统计的最大次数
dist,count_edges=np.histogram(count,bins=max_k,range=(0,max_k),density=True)
x=count_edges[:-1]
return x,dist,stats.poisson.pmf(x,lmd)
该函数首先随机性给出了
lmd*tm
个事件发生的时间(时间位于区间[0,tm]
)内。然后统计每个单位时间区间内,事件发生的次数。然后统计这些次数出现的频率。最后将这个频率与理论上的泊松分布的概率质量函数比较。指数分布:若事件服从泊松分布,则该事件前后两次发生的时间间隔服从指数分布。由于时间间隔是个浮点数,因此指数分布是连续分布。
- 概率密度函数:, 为时间间隔
- 期望:
- 方差:
在
scipy.stats.expon
中,scale
参数为 ;而loc
用于对函数平移用均匀分布模拟指数分布:
def make_expon(lmd,tm):
'''
用均匀分布模拟指数分布。 lmd为 lambda 参数; tm 为时间
'''
t=np.random.uniform(0,tm,size=lmd*tm) # 获取 lmd*tm 个事件发生的时刻
sorted_t=np.sort(t) #时刻升序排列
delt_t=sorted_t[1:]-sorted_t[:-1] #间隔序列
dist,edges=np.histogram(delt_t,bins="auto",density=True)
x=edges[:-1]
return x,dist,stats.expon.pdf(x,loc=0,scale=1/lmd) #scale 为 1/lambda
伽玛分布:若事件服从泊松分布,则事件第 次发生和第 次发生的时间间隔为伽玛分布。由于时间间隔是个浮点数,因此指数分布是连续分布。
- 概率密度函数:, 为时间间隔
- 期望:
- 方差:
在
scipy.stats.gamma
中,scale
参数为 ;而loc
用于对函数平移,参数a
指定了用均匀分布模拟伽玛分布:
def make_gamma(lmd,tm,k):
'''
用均匀分布模拟伽玛分布。 lmd为 lambda 参数; tm 为时间;k 为 k 参数
'''
t=np.random.uniform(0,tm,size=lmd*tm) # 获取 lmd*tm 个事件发生的时刻
sorted_t=np.sort(t) #时刻升序排列
delt_t=sorted_t[k:]-sorted_t[:-k] #间隔序列
dist,edges=np.histogram(delt_t,bins="auto",density=True)
x=edges[:-1]
return x,dist,stats.gamma.pdf(x,loc=0,scale=1/lmd,a=k) #scale 为 1/lambda,a 为 k