方差分析
試驗指標:試驗中要考察的指標,即收入
因素:影響試驗指標的條件,如性別,年齡
水平:因素所處的狀態,比如性別的分為男,女
單因素試驗:在一項試驗中只有一個因素改變
多因素試驗:在一項試驗中有多個因素改變
單因素方差分析
方差分析(Analysis of Variance,簡稱ANOVA),又稱F檢驗,用於兩個及兩個以上樣本均數差別的顯著性檢驗。方差分析主要是考慮各組之間的均數差別。
單因素方差分析(One-wayAnova),是檢驗由單一因素影響的多組樣本某因變量的均值是否有顯著差異。
當因變量Y是數值型,自變量X是分類值,通常的做法是按X的類別把實例成分幾組,分析Y值在X的不同分組中是否存在差異。
from scipy import stats
a = [47,56,46,56,48,48,57,56,45,57] # 分組1
b = [87,85,99,85,79,81,82,78,85,91] # 分組2
c = [29,31,36,27,29,30,29,36,36,33] # 分組3
print(stats.f_oneway(a,b,c))
返回結果的第一個值為統計量,它由組間差異除以組間差異得到,上例中組間差異很大,第二個返回值p-value=6.2231520821576832e-19小於邊界值(一般為0.05),拒絕原假設, 即認為以上三組數據存在統計學差異,並不能判斷是哪兩組之間存在差異 。只有兩組數據時,效果同 stats.levene 一樣。
多因素方差分析
- 多因素方差分析用來研究兩個及兩個以上控制變量是否對觀測變量產生顯著影響。多因素方差分析不僅能夠分析多個控制變量對觀測變量的獨立影響,更能夠分析多個控制變量的交互作用能否對觀測變量產生顯著影響,最終找到利於觀測變量的最優組合
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
import pandas as pd
X1 = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]
X2 = [1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2]
Y = [76,78,76,76,76,74,74,76,76,55,65,90,65,90,65,90,90,79,70,90, 88,76,76,76,56,76,76,98,88,78,65,67,67,87,78,56,54,56,54,56]
data = {'T':X1, 'G':X2, 'L':Y}
df = pd.DataFrame(data)
formula = 'L~T+G+T:G' # 公式
model = ols(formula,df).fit()
print(anova_lm(model))