本篇內(nèi)容主要講解“python怎么判斷面包是不是變輕了”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“python怎么判斷面包是不是變輕了”吧!
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了舞鋼免費建站歡迎大家使用!
案件回顧
面包是不是變輕了
面包店對外聲稱每個面包分量為400g
老店主退休,兒子接管面包店
有顧客投訴,面包分量比以前的輕了
統(tǒng)計了30個面包的重量,發(fā)現(xiàn)面包平均重量為397g(問題:手工面包不可能每個正好400g,根據(jù)數(shù)據(jù)判斷,面包的分量到底有沒有變輕?)
模擬實驗與分析
將數(shù)據(jù)存儲為csv格式,其中每個觀測對象(各個面包)占一行,測定的變量(購買日期和面包重量)排成一列。將數(shù)據(jù)導(dǎo)入python。
import pandas as pd
breads = pd.read_csv('breads.csv',encoding='utf-8')
breads.head()
pandas包提供了dataframe數(shù)據(jù)結(jié)構(gòu),在python中用pandas可以非常方便的導(dǎo)入csv數(shù)據(jù)。使用head()查看前幾行數(shù)據(jù)(默認為前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))
結(jié)果為:
mean = 397.1267 std = 10.7371
假設(shè)面包的重量符合正態(tài)分布,那么檢驗面包是否變輕,就要用樣本的標準差來檢查樣本平均值和總體平均值之間是否存在矛盾,即均值差異檢驗。
均值差異檢驗(t檢驗)
零假設(shè) 樣本均值與總體均值的差異在誤差范圍內(nèi),即面包沒有變輕
備擇假設(shè) 樣本均值與總體均值的差異超出了誤差范圍,即面包變輕
概率不足顯著性水平(5%) 否定零假設(shè),即面包確實變輕了
概率等于或超過顯著性水平(5%) 保留零假設(shè),即面包重量沒有改變
from scipy.stats import ttest_rel #ttest_rel:非獨立均值檢驗ttest_rel(breads.weight,[400]*30)
結(jié)果為:
Ttest_relResult(statistic=-1.4411172599973978, pvalue=0.16026297018603147)
pvalue代表概率,這里面概率為0.1603,概率超過顯著性水平,因此,沒有足夠證據(jù)懷疑面包房的面包平均重量減少。
幾個小概念
正態(tài)分布:以平均值為中心左右對稱離散的分布。有95%的數(shù)據(jù)集中在距離平均值1.96倍(約2倍)標準差的范圍內(nèi)。
均值差異檢驗:本例中指分析了30個面包的平均重量與面包店宣傳的平均重量之間是否存在實質(zhì)性差異。如果概率小于顯著性水平(一般為5%),則認為存在顯著差異。
到此,相信大家對“python怎么判斷面包是不是變輕了”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!