python统计分析【托马斯】
1、伯努利分布
单变量分布中最简单的例子,也是二项分布的基础,就是伯努利分布,它只有两种状态,例如,简单的破硬币试验。如果我们抛硬币(并且硬币没有被操控),希望“正面”出现的概率是。因为它必须是正面或反面,所以我们有:
所以,“反面”的概率是。
我们可以看到一个参数就决定了所有的事情,我们可以用下面的命令来确定这个分布。
# 导入库
from scipy import stats
# 设置参数
p=0.5
# 创建伯努利分布
bernoulliDist=stats.bernoulli(p)
# 计算正面出现1次或0次的概率
p_tails=bernoulliDist.pmf(0)
p_heads=bernoulliDist.pmf(1)
print("p_tails: ",p_tails)
print("p_heads: ",p_heads)
# 模拟10次伯努利试验
trails=bernoulliDist.rvs(10)
print("trials: ",trails)
2、二项分布
如果我们掷硬币多次,并询问“正面出现的频率如何?”,这就涉及到了二项分布。一般来说,二项分布与“在给定(固定的)试验此书中,有多少会成功”有关。用二项分布建模的一些示例问题如下:
抛10次硬币,有多少次正面朝上?
在特定医院的特定的一天中,出生的小孩有多少个是女孩?
有多少蚊子在喷洒杀虫剂后会死掉?
我们进行n次重复试验,其成功的概率有参数p给出,并将成功的次数加起来。成功的次数有随机变量X表示。X的取值范围在0到n之间。
在python中,程序和上面的伯努利分布一样,带有一个额外的参数和抛硬币次数。
# 导入库
from scipy import stats
import numpy as np
# 设置参数
(p,num)=(0.5,4)
# 创建伯努利分布
# 相当于掷4次骰子,正面朝上的次数的分布
binomialDist=stats.binom(num,p)
# 计算正面朝上为0,1,2,3,4次的概率
binomialDist.pmf(np.arange(0,5))
得到的结果,应该为没有一次正面朝上的概率为0.0625,只有一次正面朝上的概率为0.25,依次类推,所有概率值加起来等于1。大家自行运行结果进行验证。
3、泊松分布
泊松分布与二项分布非常相似,研究的是一个事件发生的次数。它们的差别是微妙的。二项分布着眼于我们在一个固定的试验总数中成功的次数,而泊松分布则测量了再连续的空间或时间内离散事件发生的次数。没有“总”的n值,泊松分布是由一个参数定义的。
下面的问题可以用泊松分布来回答:
①我走路回家会捡到多少硬币?
②今天有多少孩子将在医院出生?
③播出一个新的电视广告后,我会卖出多少产品?
④每售出100m的绳子有多少缺陷?
这个分布的细小差别在于,计算事件数量的随机变量X可以区任意非负整数值。换句话说,我可以走路回家,在街上捡不到硬币,也可能找到一枚硬币,也可能会发现10枚或更多硬币。
与二项分布中用参数p表示概率组分不同,这次我们用“lambda”或λ参数来表示我们试验中“平均或期望”的事件发生数。泊松分布的概率质量函数可以由下式计算: