天天看點

Python資料分析之方差分析

問題

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

資料預處理

  1. 做過方差分析的都知道,先做個假設H0:不同處理方法對苗木生長無顯著影響。
  2. 看下課程老師給的資料
  3. Python資料分析之方差分析
  4. copy出來的格式很不友好,我就寫了一個python代碼進行轉化,代碼:
import csv
i = 0
f = open('C://Users/Administrator/Desktop/方差分析.txt','r')
csvfile = open('C://Users/Administrator/Desktop/方差分析.csv','wt',newline='',encoding='utf-8')
writer = csv.writer(csvfile)
for fs in f:
    i = i+1
    contents_1 = fs.strip()
    contents = contents_1.split(',  ')
    for content in contents:
        writer.writerow((content,i))
f.close()
csvfile.close()      

可以把資料轉化為如下格式,友善在python的方差分析中運作:

Python資料分析之方差分析

Python方差分析

df = pd.read_excel('C:/Users/Administrator/Desktop/方差分析.xls',header=None,names=['value','group'])
d1 = df[df['group']==1]['value']
d2 = df[df['group']==2]['value']
d3 = df[df['group']==3]['value']
d4 = df[df['group']==4]['value']
d5 = df[df['group']==5]['value']
args = [d1,d2,d3,d4,d5]
f,p = stats.f_oneway(*args)
print(f,p)      

結果如圖:

結論

繼續閱讀