单样本检验:引擎排放标准是否达达到要求

2018-07-25  本文已影响0人  龍猫君

单样本检验 案例练习
根据政府要求新排放标准:引擎排放平均值<20ppm,才到达环保的要求。

有某家生产汽车引擎的公司,需要测试该公司的引擎排放是否达到标准。

现在有10台引擎供测试使用,每一台的引擎排放水平的数据分别为:15,6,16.2,22.5,20.5,16.4,19.4,16.6,17.9,12.7,13.9

如果知道该公司的引擎是否达到政府要求的排放标准呢?

一、求样本平均值和样本标准差

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',' 样本标准差=',sample_std,'单位:ppm')
样本平均值= 17.169999999999998 单位:ppm  样本标准差= 2.9814426038413018 单位:ppm

二、推论统计分析

1.问题是什么?

问题:公司引擎排放是否到达政府要求的标准?

零假设和备选假设

根据问题我们提出零假设和备选假设:

零假设:公司引擎排放不满足标准,也就是平均值u>=20

备选假设:公司引擎排放满足标准。也就是平均值u <20

其中零假设总是表述为研究没有改变,没有效果等,这里就是指不满足标准。

得出公司引擎排放满足标准,也就是平均值<20

检验类型

由于这里只有一个样本,所以是单样本检验

import seaborn as sns
sns.distplot(dataSer)
plt.title("数据集分布")
plt.show()

这里汽车引擎样本大小是10(小于30)是属于小样本,根据数据集可知样本分布近似正态分布,所以抽样分布属于t分布

检验方向

因为备选假设是引擎的排放量平均值u<20,所以该检验方向为单尾检验中的左尾检验。

2.证据是什么?

在零假设成立前提下,得到样本平均值的概率p是多少?

计算标准误差和 t的值

1)计算标准误差

标准误差=样本标准差除以样本大小n的开方。

2)计算t值

t=(样本平均值-总体平均值)/标准误差

3)根据t值,查找t表格,得到概率p值

#导入stats模块
from scipy import stats
#样本大小10 
n=10
#标准误差=样本标准差/(n的开方)
se=sample_std/(np.sqrt(n))

#总体平均值:就是政府发布的标准20
pop_mean=20
#t值
t=(sample_mean-pop_mean) / se
#计算出t值=-3
print('标准误差se=',se)
print('t=',t)
标准误差se= 0.9428149341201592
t= -3.001649525885985
#用python统计包scipy自动计算,用scipy计算出的是:双尾检验
pop_mean=20

t,p_twoTail =stats.ttest_1samp(dataSer,pop_mean)

print('t值=',t,'双尾检验的p值=',p_twoTail) 
t值= -3.001649525885985 双尾检验的p值= 0.014916414248897527

因为scipy计算出的是双尾检验的t值和p值,但是我们这里是左尾检验。
根据对称性,双尾的p值是对应单尾p值的2倍

#单尾检验的p值
p_oneTail=p_twoTail/2

print('单尾检验的p值=',p_oneTail)
单尾检验的p值= 0.0074582071244487635

3. 判断标准是什么?

# 判断标准这里设置alpha=5%
alpha=0.05

if(t<0 and p_oneTail<alpha):
    print('拒绝零假设,有统计显著,公司生产的引擎排放量符合标准')
else:
    print('接受零假设,没有统计显著,公司生产的引擎排放量不符合标准')
拒绝零假设,有统计显著,公司生产的引擎排放量符合标准

4.求置信区间

求置信区间的公式:

下限a=样本平均值-t_ci*标准误差

上限b=样本平均值+t_ci*标准误差

通过查找t表格,得出95%置信水平下的t_ci值 ,自由度是n-1对应的t值 t=2.262

t_ci=2.262
#标准误差
se=stats.sem(dataSer)
#求a和b的值
a=sample_mean-t_ci*se
b=sample_mean+t_ci*se

print('置信区间,95置信水平CI=[%f,%f]'%(a,b))
置信区间,95置信水平CI=[15.037353,19.302647]

5.效应量

效应量是指处理效应的大小

在判断某个调查研究的结果,是否有意义或者重要时,要考虑的另一项指标是效应量。效应量太小,意味着处理即使达到了显著水平,也缺乏实用价值

所以,在假设检验中,我们给出了有统计显著性和效应量,一起来判断在研究的这个结果是否有意义。

衡量效应量的指标有两个:

1.差异指标d值

Cohen's d = (样本平均值1-样本平均值2) / 标准差

2.相关度指标R平方

R2=t2/(t2+df) 其中r2是指r的平方,t2是t的平方

#样本大小
n=10
#自由度
df=n-1
d=(sample_mean - pop_mean) / sample_std
R2=(t*t)/(t*t+df)
print('d=',d,'R2=',R2)
d= -0.9492049239364257 R2= 0.5002748453994631

三、数据分析报告

1、描述统计分析

样本平均值17.17ppm,样本标准差2.98ppm

2、推论统计分析

1)假设检验

独立样本t(9)=-3.00,p=.0074(α=5%),单尾检验(左尾)

公司引擎排放满足标准

2)置信区间

平均值的置信区间,95% 置信水平 CI=[15.037353,19.302647]

3)效应量

d=-0.9492

上一篇 下一篇

猜你喜欢

热点阅读