本篇内容主要讲解“python怎么判断面包是不是变轻了”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python怎么判断面包是不是变轻了”吧!
案件回顾
面包是不是变轻了
面包店对外声称每个面包分量为400g
老店主退休,儿子接管面包店
有顾客投诉,面包分量比以前的轻了
统计了30个面包的重量,发现面包平均重量为397g(问题:手工面包不可能每个正好400g,根据数据判断,面包的分量到底有没有变轻?)
模拟实验与分析
将数据存储为csv格式,其中每个观测对象(各个面包)占一行,测定的变量(购买日期和面包重量)排成一列。将数据导入python。
import pandas as pd
breads = pd.read_csv('breads.csv',encoding='utf-8')
breads.head()
pandas包提供了dataframe数据结构,在python中用pandas可以非常方便的导入csv数据。使用head()查看前几行数据(默认为前5行)如下:
date weight 0 2015/1/7 386.7 1 2015/1/9 396.7 2 2015/1/10 409.8 3 2015/1/12 384.5 4 2015/1/14 394.3
计算面包重量的均值和标准差:
import numpy as np
mean = round(np.mean(breads.weight),4)
std = round(np.std(breads.weight),4)
import sys
sys.stdout.write('mean = ' + str(mean) + '\n' + 'std = ' + str(std))
结果为:
mean = 397.1267 std = 10.7371
假设面包的重量符合正态分布,那么检验面包是否变轻,就要用样本的标准差来检查样本平均值和总体平均值之间是否存在矛盾,即均值差异检验。
均值差异检验(t检验)
零假设 样本均值与总体均值的差异在误差范围内,即面包没有变轻
备择假设 样本均值与总体均值的差异超出了误差范围,即面包变轻
概率不足显著性水平(5%) 否定零假设,即面包确实变轻了
概率等于或超过显著性水平(5%) 保留零假设,即面包重量没有改变
from scipy.stats import ttest_rel #ttest_rel:非独立均值检验ttest_rel(breads.weight,[400]*30)
结果为:
Ttest_relResult(statistic=-1.4411172599973978, pvalue=0.16026297018603147)
pvalue代表概率,这里面概率为0.1603,概率超过显著性水平,因此,没有足够证据怀疑面包房的面包平均重量减少。
几个小概念
正态分布:以平均值为中心左右对称离散的分布。有95%的数据集中在距离平均值1.96倍(约2倍)标准差的范围内。
均值差异检验:本例中指分析了30个面包的平均重量与面包店宣传的平均重量之间是否存在实质性差异。如果概率小于显著性水平(一般为5%),则认为存在显著差异。
到此,相信大家对“python怎么判断面包是不是变轻了”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。