推论统计学是指在统计学中,研究如何根据样本数据去推断总体数量特征的方法。它是在对样本数据进行描述的基础上,对统计总体的未知数量特征做出以概率形式表述的推断。
相比于描述统计学,主要有俩点不同。
1、定义不同:描述统计学是通过图表或数学方法,对数据资料进行整理、分析,并对数据的分布状态、数字特征和随机变量之间关系进行估计和描述的方法。推论统计是借助抽样调查,从局部推断总体,以对不肯定的事物做出决策的一种统计。
2、主要内容不同:描述统计分为集中趋势分析、离中趋势分析和相关分析三大部分。推论统计包括总体参数估计与假设检验两种。前者以一次性抽样实验为依据,对整个总体的某个数字特征做出估计。后者则是对某种假设进行检验,根据计算结果推断所做的假设是否可以接受。
思维导图及目录1、随机变量
随机事件:在随机试验中,可能发生也可能不发生的事件,如明天是否下雨。
随机变量:用随机的数字表示随机事件的可能结果,常用大写字母X表示。
随机变量分为离散随机变量和连续随机变量。
计算离散随机变量的概率公式叫概率质量函数(Probability Mass Function), 统计形状为离散型概率分布,变量大小与数量有关。
计算连续随机变量的概率公式叫概率密度函数(Probability Density Function), 统计形状为连续型概率分布,变量大小与曲线下面积有关。
2、概率分布
概率分布的类型有很多,分为离散型概率分布和连续型概率分布,其中
离散概率分布主要有伯努利分布,二项分布,几何分布,泊松分布;
连续概率分布主要有正态分布, 幂律分布。
下面我们介绍这6种常见概率分布。
2.1 伯努利分布(Bernouli Distribution)
也称为“两点分布”,其E(X)=p(0
Python实现过程如下:
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
第1步,定义随机变量:1次抛硬币
成功指正面朝上记录为1,失败指反面朝上记录为0
'''
X = np.arange(0, 2,1)
#第2步,#求对应分布的概率:概率质量函数 (PMF)
#它返回一个列表,列表中每个元素表示随机变量中对应值的概率
p = 0.5 # 硬币朝上的概率
pList = stats.bernoulli.pmf(X, p)
plot默认绘制折线,这里我们只绘制点,所以传入下面的参数:
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值None表示不显示连接各个点的折线
'''
plt.plot(X, pList, marker='o',linestyle='None')
'''
vlines用于绘制竖直线(vertical lines),
参数说明:vline(x坐标值, y坐标最小值, y坐标值最大值)
我们传入的X是一个数组,是给数组中的每个x坐标值绘制竖直线,
竖直线y坐标最小值是0,y坐标值最大值是对应pList中的值
'''
plt.vlines(X, 0, pList)
#x轴文本
plt.xlabel('随机变量:抛硬币1次')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('伯努利分布:p=%.2f' % p)
#显示图形
plt.show()
2.2 二项分布(Binomial distribution):
做某件事(相互独立)n次,结果要么成功要么失败,每次成功的概率相同,想知道成功r次的概率是多少。
成功概率记为p, 失败概率为1-p,记为q。计算公式:
二项分布就是做了n次伯努利实验,当n=1时,二项分布就是伯努利分布。
Python实现过程:
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
arange用于生成一个等差数组,arange([start, ]stop, [step, ]
'''
#第1步,定义随机变量:5次抛硬币,正面朝上的次数
n = 5 # 做某件事情的次数
p = 0.5 # 做某件事情成功的概率
X = np.arange(0, n+1,1)
X
array([0, 1, 2, 3, 4, 5])
#第2步,#求对应分布的概率:概率质量函数 (PMF)
#它返回一个列表,列表中每个元素表示随机变量中对应值的概率
pList = stats.binom.pmf(X, n, p)
pList
array([ 0.03125, 0.15625, 0.3125 , 0.3125 , 0.15625, 0.03125])
#第3步,绘图
'''
plot默认绘制折线,这里我们只绘制点,所以传入下面的参数:
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值None表示不显示连接各个点的折线
'''
plt.plot(X, pList, marker='o',linestyle='None')
'''
vlines用于绘制竖直线(vertical lines),
参数说明:vline(x坐标值, y坐标最小值, y坐标值最大值)
我们传入的X是一个数组,是给数组中的每个x坐标值绘制竖直线,
竖直线y坐标最小值是0,y坐标值最大值是对应pList中的值
'''
plt.vlines(X, 0, pList)
#x轴文本
plt.xlabel('随机变量:抛硬币正面朝上次数')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('二项分布:n=%i,p=%.2f' % (n,p))
#显示图形
plt.show()
2.3 几何分布(Geometric distribution)
在n次伯努利实验中,每次成功的概率相同,想知道实验r次时才取得第1次成功的概率是多少。
成功概率记为p, 失败概率为1-p,记为q。计算公式:
Python实现过程:
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
arange用于生成一个等差数组,arange([start, ]stop, [step, ]
'''
'''
第1步,定义随机变量:
首次表白成功的次数,可能是1次,2次,3次等
'''
#第k次做某件事情,才取到第1次成功
#这里我们想知道5次表白成功的概率
k = 5
# 做某件事情成功的概率,这里假设每次表白成功概率都是60%
p = 0.6
X = np.arange(1, k+1,1)
X
array([1, 2, 3, 4, 5])
'''
第2步,#求对应分布的概率:概率质量函数 (PMF)
它返回一个列表,列表中每个元素表示随机变量中对应值的概率
分别表示表白第1次才成功的概率,表白第2次才成功的概率,表白第3次才成功的概率,
表白第4次才成功的概率,表白第5次才成功的概率
'''
pList = stats.geom.pmf(X,p)
pList
array([ 0.6 , 0.24 , 0.096 , 0.0384 , 0.01536])
#第3步,绘图
'''
plot默认绘制折线,这里我们只绘制点,所以传入下面的参数:
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值None表示不显示连接各个点的折线
'''
plt.plot(X, pList, marker='o',linestyle='None')
'''
vlines用于绘制竖直线(vertical lines),
参数说明:vline(x坐标值, y坐标最小值, y坐标值最大值)
我们传入的X是一个数组,是给数组中的每个x坐标值绘制竖直线,
竖直线y坐标最小值是0,y坐标值最大值是对应pList中的值
'''
plt.vlines(X, 0, pList)
#x轴文本
plt.xlabel('随机变量:表白第k次才首次成功')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('几何分布:p=%.2f' % p)
#显示图形
plt.show()
2.4 泊松分布(Poisson distribution)
当一个随机事件以固定的平均瞬时速率λ(或称密度)随机且独立地出现时,那么这个事件在单位时间(面积或体积)内出现的次数就近似地服从泊松分布。
计算公式:
μ:在给定的时间范围内发生某件事的平均次数;
r : 事情发生的次数。
Python实现过程:
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
arange用于生成一个等差数组,arange([start, ]stop, [step, ]
'''
'''
第1步,定义随机变量:
已知某路口发生事故的比率是每天2次,
那么在此处一天内发生k次事故的概率是多少?
'''
mu = 2 # 平均值:每天发生2次事故
k=4 #次数,现在想知道每天发生4次事故的概率
#包含了发生0次、1次、2次,3次,4次事故
X = np.arange(0, k+1,1)
X
array([0, 1, 2, 3, 4])
#第2步,#求对应分布的概率:概率质量函数 (PMF)
#它返回一个列表,列表中每个元素表示随机变量中对应值的概率
#分别表示发生1次,2次,3次,4次事故的概率
pList = stats.poisson.pmf(X,mu)
pList
array([ 0.13533528, 0.27067057, 0.27067057, 0.18044704, 0.09022352])
#第3步,绘图
'''
plot默认绘制折线,这里我们只绘制点,所以传入下面的参数:
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值None表示不显示连接各个点的折线
'''
plt.plot(X, pList, marker='o',linestyle='None')
'''
vlines用于绘制竖直线(vertical lines),
参数说明:vline(x坐标值, y坐标最小值, y坐标值最大值)
我们传入的X是一个数组,是给数组中的每个x坐标值绘制竖直线,
竖直线y坐标最小值是0,y坐标值最大值是对应pList中的值
'''
plt.vlines(X, 0, pList)
#x轴文本
plt.xlabel('随机变量:某路口发生k次事故')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('泊松分布:平均值mu=%i' % mu)
#显示图形
plt.show()
2.5 正态分布
又称高斯分布,是一个非常常见的连续概率分布,中间高,两边低,左右对称,大部分数据集中在中间的平均值附近。
求正态分布概率的计算办法:
Python实现过程:
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
arange用于生成一个等差数组,arange([start, ]stop, [step, ]
'''
'''
第1步,定义随机变量:
'''
mu=0 #平均值
sigma= 1 #标准差
X = np.arange(-5, 5,0.1)
#第2步,概率密度函数(PDF)
y=stats.norm.pdf(X,mu,sigma)
#第3步,绘图
'''
plot默认绘制折线
'''
plt.plot(X, y)
#x轴文本
plt.xlabel('随机变量:x')
#y轴文本
plt.ylabel('概率:y')
#标题
plt.title('正态分布:$mu$=%.1f,$sigma^2$=%.1f' % (mu,sigma))
#网格
plt.grid()
#显示图形
plt.show()
2.6 幂律分布
幂律分布、长尾分布、二八法则、赢者通吃、马太效应,其实他们说的都是一件事。那就是绝大多数个体的尺度很小,而只有少数个体的尺度相当大,像国家人口,全世界有224个国家和地区,只有11个国家的人口数超过一亿。
1、总体与样本
总体:所要考察对象的全体叫做总体。
样本:从总体中所抽取的一部分个体叫做总体的一个样本。
样本的抽取方法有:简单随机抽样、系统抽样、分层抽样。
简单随机抽样:从总体N个单位中任意抽取n个单位作为样本,使每个可能的样本被抽中的概率相等的一种抽样方式。
系统抽样:依据一定的抽样距离,从母体中抽取样本。要从容量为N的总体中抽取容量为n的样本,可将总体分成均衡的若干部分,然后按照预先规定的规则,从每一部分抽取一个个体,得到所需要的样本的抽样方法。
分层抽样:从一个可以分成不同子总体(或称为层)的总体中,按规定的比例从不同层中随机抽取样品(个体)的方法。这种方法的优点是样本的代表性比较好,抽样误差比较小。
简单随机抽样的Python实现:
pandas数据框(DataFrame)的抽样方法利用sample方法来实现。
2、中心极限定理
中心极限定理是概率论中最重要的一类定理,它支撑着和置信区间相关的T检验和假设检验的计算公式和相关理论。
中心极限定理的通俗解释:给定一个任意分布的总体,每次从这些总体中随机抽取 n 个抽样(即为一个样本),一共抽 m 次,然后把这 m 组抽样(即为m个样本)分别求出平均值。这些平均值的分布接近正态分布。
要注意的点是:
1)总体本身的分布不要求正态分布;
2)样本每组要足够大,但也不需要太大。取样本的时候,一般认为,每组大于等于30个,即可让中心极限定理发挥作用;
3)样本的平均值约等于总体平均值。
根据总体的信息,可以判断某个样本是否属于总体。
3、用样本估计总体
利用中心极限定理可以用样本估计出总体的平均值,也可以用样本来估计总体的方差或标准差。
标准误差:就是求所有样本的平均值的标准差。
根据上图可以看出:
68%的样本平均值在总体平均值±1个标准误差范围内;
95%的样本平均值在总体平均值±2个标准误差范围内;
99.7%的样本平均值在总体平均值±3个标准误差范围内;
如果某个样本平均值在总体平均值的±3个标准误差范围以外,我们可以说该样本不属于这个总体。
4、避免偏差
样本偏差:以少数个体的信息代表总体,以偏概全。例如通过少数人不读书也能取得大成就来证明读书无用论。实际读书学习是当代人生存标配技能,以个例来代表总体,但是个例没有代表性。避免这种偏见,我们需要用更有代表性的数据信息来代表总体。
幸存者偏差:只看到经过某种筛选而产生的结果,而没有意识到筛选的过程,因此忽略了被筛选掉的关键信息。一般情况下由于样本信息渠道过于单一,得到的样本信息不全面,因此得到不正确的结论。避免这种偏见,我们需要学会多个角度全面观察问题,避免获取的信息渠道过于单一,看到的现象过于片面。
概率偏见:人们自以为是的概率叫做心理概率,当心理概率和客观概率不吻合的时候就出现了概率偏见。例如由于飞机出事后人们的恐惧心理认为飞机出行很危险。为避免这样的偏见,我们需要客观地看待问题,使用科学的方法去验证概率,可以多咨询专家,降低偏见的可能性。
信息茧房:是指看到的信息都是自己感兴趣的,而看不见世界其他信息。个性化推荐更容易导致信息茧房。如果我们想获取不一样的信息,就需要避免信息茧房。