原文链接:数据分析小案例(二):面包是不是变轻了(python)
《菜鸟侦探挑战数学分析》小案例,python实现第四弹~~
第一弹戳这里:数据分析小案例(一):商业街抽奖(python)
第四弹戳这里:小案例(四):销售额下滑(python)
第三弹戳这里:数据分析小案例(三):调查问卷(python)
搜索添加微信公众号:chenchenwings
案件回顾
面包是不是变轻了
1,面包店对外声称每个面包分量为400g
2,老店主退休,儿子接管面包店
3,有顾客投诉,面包分量比以前的轻了
4,统计了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行)如下:
dateweight
02015/1/7386.7
12015/1/9396.7
22015/1/10409.8
32015/1/12384.5
42015/1/14394.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%),则认为存在显著差异。
机器学习养成记
搜索添加微信公众号:chenchenwings
扫描二维码,关注我们。
如需转载,请在开篇显著位置注明作者和出处,并在文末放置机器学习养成记二维码和添加原文链接。
快来关注我们吧!
网友评论