Python數據分析之方差分析
問題
設某苗圃對一花木種子制定了5種不同的處理方法,每種方法處理了6粒種子進行育苗試驗。一年後觀察苗高獲得資料如下表。已知除處理方法不同外,其他育苗條件相同且苗高的分布近似於正態、等方差,試以95%的可靠性判斷種子的處理方法對苗木生長是否有顯著影響。
數據預處理
- 做過方差分析的都知道,先做個假設H0:不同處理方法對苗木生長無顯著影響。
- 看下課程老師給的數據
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點