假设检验的步骤: 问题是什么
证据是什么
判断标准是什么
做出结论问题是什么:零假设、备选假设;
证据是什么:零假设成立时,得到样本平均值的概率(p值);
判断标准是什么:显著水平
(0.1%、1%、5%);
做出结论:
时,拒绝零假设。
一、单样本检验案例分析 —— 汽车引擎
一家汽车引擎生产公司需要生产排放平均值低于20ppm的引擎,公司制造出10台测试引擎,排放量为:15.6、16.2、22.5、20.5、16.4、19.4、16.6、17.9、12.7、13.9。现在需要分析公司生产的引擎是否符合规定。
1.1 描述统计分析
#导入包
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#建立样本数据集
dataSer = pd.Series([15.6, 16.2, 22.5, 20.5, 16.4,
19.4, 16.6, 17.9, 12.7, 13.9])
#计算样本平均值和标准差
sample_mean = dataSer.mean()
sample_std = dataSer.std()
print('样本平均值 =', sample_mean, '单位:ppm')
print('样本标准差 =', sample_std, '单位:ppm')
样本平均值 = 17.169999999999998 单位:ppm
样本标准差 = 2.9814426038413018 单位:ppm
1.2 推论统计分析
1.2.1 假设检验
问题是什么?零假设和备选假设
问题:公司引擎排放是否满足标准?
零假设(
):引擎排放不满足标准,排放平均值
20。
备选假设(
):引擎排放满足标准,平均排放值
20。检验类型
检验单个样本平均值是否等于目标值。抽样分布类型
本案例中,样本大小是10,属于小样本,需要进一步检验是否符合t分布。
conda install seaborn
Collecting package metadata (current_repodata.json): done
Solving environment: done
# All requested packages already installed.
Note: you may need to restart the kernel to use updated packages.
#导入包
import seaborn as sns
#查看数据集分布
sns.distplot(dataSer) #画直方图和拟合曲线
plt.title('数据集分布')
plt.show()
从数据集分布图可以看出数据集近似正态分布,可以使用t分布来检验,自由度 df = n-1 =9。检验方向(单尾检验?双尾检验?)
根据备选假设选择单尾检验中的左尾检验。
证据是什么?
p值:在零假设成立的前提下,得到样本平均值的概率。
p值计算步骤:计算标准误差
计算t值
根据t值查找t表格得到p值。
#手动计算
#计算标准误差
n = dataSer.shape[0] #样本大小
se = sample_std/(np.sqrt(n)) #标准误差
#计算t值
pop_mean = 20 #标准是20
t = (sample_mean - pop_mean)/se
print('标准误差se =', se)
print('t =', t)
标准误差se = 0.9428149341201592
t = -3.001649525885985
根据t值查询t表格,自由度df = 9,找到双尾检验p值为0.0149,则单尾检验p值为0.0149/2 = 0.00745。
#利用scipy计算
#导入统计模块
from scipy import stats
pop_mean = 20
t,p_two = st