在当今企业社会中,数据分析技术日益受到重视,它主要处理的是数据问题。通过对数据应用统计分析并从中获取洞察是主要目标。企业会存储数百万条记录以供分析。数据科学家将收集所有所需的数据,并进行统计操作以得出结论。这种统计分析被称为描述性统计。假设他们从一个称为总体的整个数据中收集了一部分数据,这部分数据在统计术语中被称为样本。对样本进行分析并得出关于总体的结论,这种分析属于统计推断(也称为推断统计)。
在本文中,将使用Python编程来解释一些统计推断概念。
为什么抽样对统计分析是必要的?因为它可以减少最大允许误差、置信水平和总体方差/标准差。最大允许误差定义为实际输出与预测输出之间的差异。置信水平定义为参数值落在指定范围内值的概率。总体方差是从总体数据计算出的方差值。确定样本大小取决于三个主要因素:置信水平、最大允许误差和总体方差/标准差。
以下公式可用于计算样本大小:
n = (critical * σ) / E
其中,n代表样本大小,critical代表指定置信水平的临界Z统计量,σ代表总体标准差,E代表最大允许误差。指定置信水平的临界Z值可以在Z表中找到。不同置信水平的Z表如下所示。
有两种抽样方法:
以一个例子来说明,假设一个班级中有1000名学生,从中选择10名具有不同特征(如成绩等)的学生作为样本。总体为1000,样本为10。
如果使用简单随机抽样,它会从1000名学生(总体)中随机选择10名学生(样本)。
简单随机抽样的缺点是,有可能选择相同类型的学生作为样本,这可能导致有偏的结果,这样的样本被称为有偏样本。
a = []
for i in range(1, 1001):
a.append(i)
import numpy as np
np.random.choice(a, size=10, replace=False)
输出结果如下:
array([715, 864, 18, 911, 309, 115, 598, 294, 651, 578])
为了克服这个问题,可以使用分层抽样。
如果使用分层抽样,总体将根据特征被分成几个组,这些组被称为层。样本将从这些层中随机选择。
假设有一份包含12名员工的名单,以及他们的部门和职位级别信息,可以根据部门和职位级别对数据进行分组抽样。有两个部门(D1和D2)和两个职位级别(2和3)。
data.groupby(['Dept', 'Job_Level'], group_keys=False).apply(lambda x: x.sample(1))
输出结果如下,可以看到输出样本包含了所有“Dept”和“Job_Level”的组合。上述输出是分层样本。
为什么需要假设检验?让考虑一个例子,数据科学家已经使用各种点估计技术成功估计了总体均值、总体方差和标准差。根据数据科学家的说法,总体均值的置信区间是(408到417)。客户想要验证这一说法。
因此,客户从国家随机选择100名学生,对他们进行突击测试(包含相同的问题)。这些100名学生的平均分数被发现是403,这并不在数据科学家指定的范围内。现在问题来了,这个观察结果是否足以让客户得出数据科学家的估计无效的结论。
在推断统计中,进行假设检验以找到这些问题的答案。
在统计学中,假设是对总体的陈述,它涉及收集足够的关于假设的证据。然后,根据收集到的证据,测试要么接受要么拒绝关于总体的假设。
假设检验需要进行以找到支持这一假设的证据。根据找到的证据,这个假设可以被接受或拒绝。在每次假设检验中,都有两个参数:零假设和备择假设。
零假设(H0):这是一个基于观察结果拒绝假设的陈述。可以开始假设检验,认为零假设是正确的。除非有证据表明否则,否则不能拒绝它。
备择假设(Ha):这是一个与零假设相矛盾的陈述。如果找到足够的证据拒绝零假设,那么备择假设就被接受。
如果给定数据发生的概率小于显著性水平(0.05),可以拒绝零假设。如果给定数据发生的概率大于或等于显著性水平(0.05),不能拒绝零假设。
计算假设的步骤:
对于上述例子,步骤如下:
from scipy.stats import norm
print(norm.cdf(0.56))
输出结果为:0.712。
步骤三:P值 > 显著性水平。因此,未能拒绝零假设。