您好,登錄后才能下訂單哦!
本篇內容主要講解“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。