影響事物的因子有很多,怎么才能確定哪個(gè)因子是對(duì)事物影響最顯著的呢祠饺,這個(gè)時(shí)候我們可以使用方差分析诅岩。
方差分析的基本思想是判斷樣本均值的變異是受因素的不同水平還是純粹由隨機(jī)因素造成的声离。根據(jù)影響因素的多少可以分為章办,單因素方差分析是檢驗(yàn)單一因素對(duì)因變量在不同水平上的影響是否顯著长窄。多因素方差分析是對(duì)一個(gè)因變量是否受多個(gè)因素影響進(jìn)行分析。
本文重點(diǎn)就單因素方差分析進(jìn)行討論纲菌。
理論
方差分析的原理是認(rèn)為因素的不同水平(對(duì)因素按照某個(gè)維度進(jìn)行的分組)的均數(shù)間的差別基本來(lái)源組間差異和組內(nèi)差異。其中組間差異是由實(shí)驗(yàn)水平和隨機(jī)誤差構(gòu)成疮绷,而組內(nèi)誤差完全由隨機(jī)誤差構(gòu)成翰舌。
總體的離差平方和SST是組間離差平方和SSA與組內(nèi)離差平方和SSE構(gòu)成,將SSA與SSE分別與自己自由度之比就得出相應(yīng)的方差冬骚,在拿方差之比即可得出方差分析的統(tǒng)計(jì)量F椅贱,所以方差分析也成F檢驗(yàn)懂算。
統(tǒng)計(jì)量F用來(lái)檢驗(yàn)因素對(duì)因變量的顯著性。如果因素對(duì)結(jié)果沒(méi)有影響則F接近于1庇麦。
Spass實(shí)戰(zhàn)
方差齊表:可行性檢驗(yàn)即计技,原假設(shè)各分組組內(nèi)無(wú)差異∩介希可以看到顯著性都是大于0.05的垮媒,也就是不能拒絕原假設(shè),即組內(nèi)是無(wú)差異的航棱,可以進(jìn)行方差分析睡雇。
方差表:原假設(shè)是組間無(wú)差異∫迹可以看到表p值小于0.05它抱,說(shuō)明是小概率事件,所以可以拒絕原假設(shè)朴艰,接受H1假設(shè)观蓄,即組件存在顯著差異。
python實(shí)戰(zhàn)
import statsmodels.api as sm
import pandas as pd
from statsmodels.formula.api import ols
group1 = [29.6, 24.3, 28.5, 32.0]
group2 = [27.3, 32.6, 30.8, 34.8]
group3 = [5.8, 6.2,11.0, 8.3]
group4 = [21.6, 17.4, 18.3, 19.0]
group5 = [29.2, 32.8, 25.0, 24.2]
num = sorted(['g1', 'g2', 'g3','g4', 'g5']*4)
data = group1 + group2 + group3 + group4 + group5
df = pd.DataFrame({'num':num, 'data': data})
mod = ols('data ~ num', data=df).fit()
ano_table = sm.stats.anova_lm(mod, typ=2)
print(ano_table)
可以看到統(tǒng)計(jì)庫(kù)中得出的值跟Spass一致祠墅。結(jié)論不再贅述侮穿。