目录
据描述的第三个维度是数据的分布形态描述,也是最形象的描述 方式,因为可以用各种统计图形将数据的分布形态形象地展现在图形 上,使分析者一目了然。需要明确的是,因为这里所说的数据分布指的 是数据的概率分布或频数分布
基本概念
随机变量
随机变量是指在随机事件中的数量表现,有两种基本数据类型:
- 一种是离散数据,比如统计每次抛硬币的结果,要么正要么反,其统计数据间存在明显间隔;
- 另一种是连续数据,比如时间,时间之间可以无限分割,1分与2分中间存在无限可能的时间。 数据分布,即数据在统计图中的形状。
以上两者的结合就是概率分布,可以表示为概率分布=数据类型+数据分布。在统计图中一般横轴是数据的值,纵轴则表示对应数据值的概率。
在日常工作生活中,经常会遇到事情发生的结果不能确定的情况,通常我们使用一个具体数值来度量随记事件中某一个结果发生的可能性大小,这个数值就是概率.概率的取值总是在0到1之间,也可以表示为百分数0%和100%。如果某个随机事件的其中一个结果的发生概率等于0,表示这个结果不可能发生;与此相反,如果概率等于1,则表示随机事件的这个结果必定会发生;介于0到1之间的概率则说明结果发生的可能性大小,数值越接近1,表示结果发生的可能性越大。
古典概率
古典概型可以说是我们生活中最为常见、也是最好理解的概率场景。其核心在于假定试验中所有结果出现的可能性是相等的,即等可能性,而古典概率的计算主要基于排列组合。
统计概率法
需要通过统计过往事件发生的结果频数来确 定,我们称这类例子为统计概率例子。在2006年德国世界杯的1/4决赛 中,阿根廷与东道主德国队在120分钟的常规时间内打成平手,进入了 残酷的点球大战。在这场令人窒息的点球大战中,德国队门神莱曼凭借 守门员教练科普克递上的小纸条,判断对了阿根廷球员射门的方向,帮 助德国队淘汰阿根廷队进入决赛,并在决赛中成功击败意大利队,捧起 大力神杯。赛后这张小纸条拍出了 100 万欧元的天价,成为世界杯经 典。后来这张纸条的内容被媒体报道出来,原来上面记录着阿根廷每位 点球手的踢点球习惯和射门方位,用百分数注明每位球员在过往踢点球 时踢向每个方位的概率是多少。这就是典型的统计概率确定方法,可以 用下列公式表示:
离散变量
也就是上面讲到的离散数据,是指在任意两个值之间具有可计数的值的数值变量。离散变量始终为数值变量。
例如,客户投诉数量或者瑕疵或缺陷数。
连续变量
是指在任意两个值之间具有无限个值的数值变量。连续变量可以是数值变量,也可以是日期/时间变量。
例如,零件的长度,或者收到付款的日期和时间。
期望值
一个离散性随机变量的期望值(或数学期望,亦简称期望,物理学中称为期待值)是试验中每次可能的结果乘以其结果概率的总和。期望值像是随机试验在同样的机会下重复多次,所有那些可能状态平均的结果,便基本上等同“期望值”所期望的数。期望值可能与每一个结果都不相等。换句话说,期望值是该变量输出值的加权平均。这里强调下期望值和平均值的区别,两者经常被混淆使用:
- 平均值是对样本的一个统计量(statistic),是可算的。
- 期望值是对随机变量在某个度量中的描述量,是理想化的,被估计的。
- 如果是随机独立一致样本,当样本足够大的时候,平均值向期望值收敛。
学会确定事件不同结果的概率以后,下一步就是研究各个结果的概率分布情况,从而能够在下一次面对同样的事件时,做到心中有底,决策有理。概率分布是指事件的不同结果对应的发生概率所构成的分布,根据数据连续性的不同,数据可以分为离散型数据和连续型数据。同样,事件发生结果的对应数据既可能是离散型数据,也可能是连续型数据。因此,事件结果所对应的概率分布因为结果对应数据的不同也被分为离散变量概率分布和连续变量概率分布。
离散变量概率分布
离散型概率分布是一条条垂直于X轴的垂线(或矩形柱),每条垂线与X轴的交点代表事件可能发生的结果,垂线上端点对应的Y轴表示该结果发生的概率.常见的离散型概率分布有伯努利分布,二项分布和泊松分布等.
伯努利分布
现实生活中许多事件或活动的结果往往只有两个.抛硬币问题(正面/反面),产品质量检验问题(合格/不合格),投票选举问题(支持/不支持)等.如果某事件或活动的结果多于两个,但只关心其中一个,也可视为只有两个结果,比如奥运会中国乒乓球队是否获得金牌(排名有很多,奖牌也分为金银铜三种,但这里我们只关心是否拿金牌,也就是只有两个结果,获得金牌或未获得金牌).对于以上类似事件,在实际运用中,一般用”成功”表示我们感兴趣的发生结果(比如合格,支持,获得金牌等),用”失败”表示我们不感兴趣的结果.这一类事件或活动被称为伯努利试验.
伯努利分布(Bernoulli distribution),又名两点分布或者0-1分布,是一个离散型概率分布.若伯努利试验成功,则伯努利随机变量取值为1。若伯努利试验失败,则伯努利随机变量取值为0。记其成功概率为 p(0≤p≤1), 失败概率为q=1-p,则伯努利分布的公式表达为:
import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import bernoulli
from scipy.stats import binom
from scipy.stats import poisson
from scipy.stats import uniform
# 利用plt模拟伯努利分布
# 解决画图中文乱码
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
# 定义随机变量
x = np.arange(10)
p = 0.5
# 伯努利概率函数
pList = bernoulli.pmf(x, p)
# 绘图,marker:点的形状,linestyle:线条的形状
plt.plot(x, pList, marker='o', linestyle='None')
# vlines绘制树直线,参数的含义(x轴坐标轴,y轴最小值,y轴最大值)
plt.vlines(x, 0, pList)
plt.xlabel("随机变量:抛硬币{}次".format(len(x)))
plt.ylabel("概率")
plt.title('伯努利分布:p={:.2f}' .format(p))
plt.show()
二项分布
二项分布(Binomial distribution)是n个独立的是/非试验中成功的次数的离散概率分布,其中每次试验的成功概率为p。实际上单次的成功/失败试验就是一次伯努利试验;当n=1时,二项分布就是伯努利分布.
二项分布的公式表达为:
我们使用计算机模拟的方法,产生10000个符合(n,p)的二项分布随机数,相当于进行10000次实验,每次实验投掷了n枚硬币,正面朝上的硬币数就是所产生的随机数
# 利用plt模拟二项分布
n , p =10 ,0.5
sample = np.random.binomial(n, p, size=10000) # 产生10000个符合二项分布的随机数
bins = np.arange(n + 2)
plt.hist(sample, bins=bins, align='left',density=True, rwidth=0.5) # 绘制直方图
# 设置标题和坐标
plt.title('Binomial FMF with n={},p={}'.format(n, p))
plt.xlabel('number of successes')
plt.ylabel('probability')
泊松分布
泊松分布考虑的是在连续时间或空间单位上发生的随机事件次数的概率.换句话说,基于过去某个随机事件在某段时间或某个空间内发生的平均次数,如某一服务设施在一定时间内受到的服务请求的次数,电话交换机接到呼叫的次数、汽车站台的候客人数、机器出现的故障数、自然灾害发生的次数、DNA序列的变异数、放射性原子核的衰变数、激光的光子数分布等等。
假设通过一定时间的观察,我们知道某个路口每小时平均有8辆车通过,这是一个典型的泊松分布实例,我们通过Python进行统计模拟来看看在统计图它具体是如何呈现的。
# 用plt模拟泊松分布
lamb = 8
sample = np.random.poisson(lamb, size=10000)
bins = np.arange(20)
plt.hist(sample, bins=bins, align='left',density=True, rwidth=0.5)
plt.title('Possion PMF (lambda=8)')
plt.xlabel('number of appear')
plt.ylabel('probability')
plt.show()
连续变量概率分布
连续性概率分布的图形是一条连续的曲线,表示事件的结果可能是X轴上的任意一点.与离散型概率分布不同的是,Y轴表示结果对应的概率密度(区别于概率).对于任何连续型概率分布,曲线下方的总面积等于1(概率综合是100%),连续型概率分布对应的函数被称为概率密度函数.常见的连续型概率分布有均匀分布,正态分布,指数分布等.
均匀分布
均匀分布算是最简单的连续型概率分布。因为其概率密度是一个常数,不随随机变量X取值的变化而变化。如果连续型随机变量 X 具有如下的概率密度函数,则称 X 服从 [a,b] 上的均匀分布(uniform distribution)
def uniform_distribution(loc=0, scale=1):
"""
均匀分布,在实际的定义中有两个参数,分布定义域区间的起点和终点[a, b]
:param loc: 该分布的起点, 相当于a
:param scale: 区间长度, 相当于 b-a
:return:
"""
uniform_dis = uniform(loc=loc, scale=scale)
x = np.linspace(uniform_dis.ppf(0.01),
uniform_dis.ppf(0.99), 100)
fig, ax = plt.subplots(1, 1)
# 直接传入参数
ax.plot(x, uniform.pdf(x, loc=2, scale=4), 'r-',
lw=5, alpha=0.6, label='uniform pdf')
# 从冻结的均匀分布取值
ax.plot(x, uniform_dis.pdf(x), 'k-',
lw=2, label='frozen pdf')
# 计算ppf分别等于0.001, 0.5, 0.999时的x值
vals = uniform_dis.ppf([0.001, 0.5, 0.999])
print(vals) # [ 2.004 4. 5.996]
# Check accuracy of cdf and ppf
print(np.allclose([0.001, 0.5, 0.999], uniform_dis.cdf(vals))) # Ture
r = uniform_dis.rvs(size=10000)
ax.hist(r, normed=True, histtype='stepfilled', alpha=0.2)
plt.ylabel('Probability')
plt.title(r'PDF of Unif({}, {})'.format(loc, loc+scale))
ax.legend(loc='best', frameon=False)
plt.show()
uniform_distribution(loc=2, scale=4)
正态分布
正态概率分布(normal distribution)是所有概率分布中最重要的形式,因为它表明被测事物处在稳定的状态下,测量数据的波动是由偶然因素引起的,所以在实践中有着广泛的应用.
正态分布的数学期望值或期望值$\mu$ 等于位置参数,决定了分布的位置;其方差$ \sigma ^{2}$的开平方或标准差 $\sigma$等于尺度参数,决定了分布的幅度。正态分布的概率密度函数曲线呈钟形,因此人们又经常称之为钟形曲线(类似于寺庙里的大钟,因此得名)。我们通常所说的标准正态分布是位置参数 $ \mu =0$,尺度参数 $\sigma ^{2}=1$的正态分布.正态分布的公式表达为:
def norm_pdf(x, mu, sigma):
pdf = np.exp(-( (x - mu)**2) / (2 * sigma**2)) / (sigma * np.sqrt(2 * np.pi))
return pdf
mu = 0
sigma = 1
# 用统计模拟绘制正态分布的直方图
sample = np.random.normal(mu, sigma, size=10000)
plt.hist(sample, bins=100, alpha=0.7, density=True)
# 根据正态分布的公式绘制PDF曲线
x = np.arange(-5, 5, 0.01)
y = norm_pdf(x, mu, sigma)
plt.plot(x, y, color='red', lw=3)
plt.show()
指数分布
指数分布(Exponential distribution)是一种连续概率分布。指数分布可以用来表示独立随机事件发生的时间间隔,比如旅客进入机场的时间间隔、打进客服中心电话的时间间隔、百科新条目出现的时间间隔等等。指数分布的公式表达为:
lambd = 0.5
x = np.arange(0,15,0.1)
y = lambd*np.exp(-lambd*x)
plt.plot(x,y)
plt.show()
伽玛分布
伽玛分布即为多个独立且相同分布(iid)的指数分布变量的和的分布。从意义来看:指数分布解决的问题是“要等到一个随机事件发生,需要经历多久时间”,伽玛分布解决的问题是“要等到n个随机事件都发生,需要经历多久时间”。所以,伽玛分布可以看作是n个指数分布的独立随机变量的加总,即,n个Exponential(λ)random variables—>Gamma(n,λ)
贝塔分布
Beta分布是一个定义在[0,1]区间上的连续概率分布族,它有两个正值参数,称为形状参数,一般用$\alpha$和$\beta$表示。在贝叶斯推断中,Beta分布是Bernoulli、二项分布、负二项分布和几何分布的共轭先验分布。
威布尔分布
威布尔分布(Weibull distribution)即韦伯分布,是可靠性分析和寿命检验的理论基础。威布尔分布在可靠性工程中被广泛应用,尤其适用于机电类产品的磨损累计失效的分布形式。由于它可以利用概率值很容易地推断出它的分布参数,被广泛应用于各种寿命试验的数据处理。例如,可以使用此分布回答以下问题:
- 预计将在老化期间失效的项目所占的百分比是多少?例如,预计将在 8 小时老化期间失效的保险丝占多大百分比?
- 预计在有效寿命阶段有多少次保修索赔?例如,在该轮胎的 50,000 英里有效寿命期间预计有多少次保修索赔?
- 预计何时会出现快速磨损?例如,应将维护定期安排在何时以防止发动机进入磨损阶段?
卡方分布
卡方分布(chi-square distribution, χ²-distribution,或写作χ²分布)是概率论与统计学中常用的一种概率分布。k个独立的标准正态分布变量的平方和服从自由度为k的卡方分布。卡方分布是一种特殊的伽玛分布,是统计推断中应用最为广泛的概率分布之一,例如假设检验和置信区间的计算。
由卡方分布延伸出来皮尔森卡方检定常用于:
- 样本某性质的比例分布与总体理论分布的拟合优度(例如某行政机关男女比是否符合该机关所在城镇的男女比);
- 同一总体的两个随机变量是否独立(例如人的身高与交通违规的关联性);
- 二或多个总体同一属性的同素性检定(意大利面店和寿司店的营业额有没有差距)。
F分布
设X、Y为两个独立的随机变量,X服从自由度为k1的卡方分布,Y服从自由度为k2的卡方分布,这2 个独立的卡方分布被各自的自由度除以后的比率这一统计量的分布即为F分布.对于正态总体来说,两个总体的方差比较可以用F-分布来检验.一般较大的方差放在分子上;如果两个方差相等,则这个比值在1附近,这个值越大,他们越可能不相等。是否有统计学意义,需要有个判断的临界值。在设定的显著性水平(一般是0.05)下,根据分子的自由度为以及分母的自由度,查F-分布表,得到F的临界值,最后将实际求出的F值同临界值比较,得出方差存在显著差异(有统计学意义)或者方差不存在显著差异(无统计学意义)的结论.