Python數據分析之方差分析

問題

設某苗圃對一花木種子制定了5種不同的處理方法,每種方法處理了6粒種子進行育苗試驗。一年後觀察苗高獲得資料如下表。已知除處理方法不同外,其他育苗條件相同且苗高的分布近似於正態、等方差,試以95%的可靠性判斷種子的處理方法對苗木生長是否有顯著影響。

數據預處理

  1. 做過方差分析的都知道,先做個假設H0:不同處理方法對苗木生長無顯著影響。
  2. 看下課程老師給的數據

copy出來的格式很不友好,我就寫了一個python代碼進行轉化,代碼:

import csvni = 0nf = open(C://Users/Administrator/Desktop/方差分析.txt,r)ncsvfile = open(C://Users/Administrator/Desktop/方差分析.csv,wt,newline=,encoding=utf-8)nwriter = csv.writer(csvfile)nfor fs in f:n i = i+1n contents_1 = fs.strip()n contents = contents_1.split(, )n for content in contents:n writer.writerow((content,i))nf.close()ncsvfile.close()n

可以把數據轉化為如下格式,方便在python的方差分析中運行:

Python方差分析

df = pd.read_excel(C:/Users/Administrator/Desktop/方差分析.xls,header=None,names=[value,group])nd1 = df[df[group]==1][value]nd2 = df[df[group]==2][value]nd3 = df[df[group]==3][value]nd4 = df[df[group]==4][value]nd5 = df[df[group]==5][value]nargs = [d1,d2,d3,d4,d5]nf,p = stats.f_oneway(*args)nprint(f,p)n

結果如圖:

結論

查表得F0.05(4,25)=2.76,因為F=Sb2/Sw2=4.38﹥F0.05(4,25)=2.76,所以推翻(或者說拒絕)假設H0,即不同的處理方法造成了苗木高生長的差異顯著。

作者:羅羅攀 Python愛好者社區專欄作者,請勿轉載,謝謝。

簡書主頁:羅羅攀 - 簡書

博客專欄:羅羅攀的博客

配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享

公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。

推薦閱讀:

從數據分析來說明dota2的炸彈人是否影響遊戲平衡?
python操作excel求和
20170403Python異常處理及數據結構 序列 元組
提高編程技能,你要明白這10點

TAG:Python | 数据分析 |