python方差分析

2021-09-29 20:35:45 字數 3238 閱讀 5756

目錄

一元方差分析

一元單因素方差分析

一元多因素方差分析

協方差分析 

場景:5種不同畫素的數位相機(單因素)對銷量(研究的因變數)是否有顯著差異

g = dc_sales['pixel'].unique()

args =

for i in list(g):

# 將pixel變數轉化為分類變數並為其值掛標籤

dc_sales['pixel']=dc_sales['pixel'].astype('category')

dc_sales['pixel'].cat.categories=['500畫素以下','500-600萬畫素','600-800萬畫素','800-1000萬畫素','1000萬畫素以上']

dc_sales['pixel'].cat.set_categories=['500畫素以下','500-600萬畫素','600-800萬畫素','800-1000萬畫素','1000萬畫素以上']

若方差齊性檢驗不滿足

1、檢查某些特殊表現的觀測值,剔除

2、使用無方差齊性的多重比較方法

3、資料變換(log/正態)

4、非引數檢驗

#1.方差齊性檢驗

stats.levene(*args)【p越大越滿足方差齊性】

#2.f檢驗

stats.f_oneway(*args)

#2.2 更詳細的結果

from statsmodels.formula.api import ols

dc_sales_anova=sm.stats.anova_lm(ols('sales ~ c(pixel)',dc_sales).fit())

print dc_sales_anova

>> df sum_sq mean_sq f pr(>f)

>>c(pixcel) 4 10472 2618 19 1.5e-08

>>residual 35 4682 133 nan nan

組間離差平方和(ssa)=10472,組內離差平方和(sse)=4682

組間方差=10472/4,組內方差=4682/35

多重比較檢驗

f檢驗只能回答多組之間的均值不同,但不不能說是哪幾組不同

通過2組配對比較,可以看哪幾組均值存在差異

# 對5種不同畫素兩兩對比,10個結果,看meandiff和p值即可

# 當然多重檢驗會有問題,這裡有多重檢驗校正之類的

因素單獨對因變數產生的影響為主效應,因素之間共同對因變數產生的影響稱為互動作用

多因素方差分析假定因素和因變數之間的關係是線性關係

# 只考慮主效應

formula = 'space ~ c(education)+c(unit)+c(income)+c(type)'

house_anova = sm.stats.anova_lm(ols(formula,data=house).fit(),typ=3)

#typ=3代表作方差分析type3型檢驗

print house_anova

>> sum_sq df f pr(>f)

intercept 28663 1 89 1.5e-19

c(eudcation) 1519 3 1.58 1.9e-01

c(unit) 886 5 0.55 7.3e-01

c(income) 10545 4 8.25 1.99e-06

c(type) 9604 10 3 1.09e-03

residual 143477 449 nan nan

這個結果與直接ols很像,但是不一樣哦,比如income有四個型別,ols的結果會把這四個型別的每個p值等等也會顯現出來~

# 有互動效應

formula = 'space ~ c(income)*c(type)'

house_anova_inter=sm.stats.anova_lm(ols(formula,data=house).fit())

將方差分析與回歸分析結合【個人覺得協方差分析=廣義線性回歸】

方差分析:乙個或幾個因子(分類變數) 對y(連續變數)的影響

回歸分析:乙個或幾個變數(連續變數) 對y(連續變數)的影響

將那些難以控制的因素當作協變數,在排除協變數影響的條件下,分析可控因素對因變數的影響

注意:協變數往往是連續型變數

因變數=因素主效應+因素互動效應+協變數+隨機誤差

formula='sales~points+c(market)*c(warranty)'

sale_points_anova_cov=sm.stats.anova_lm(ols(formula,data=sale_points).fit())

注意理解這裡排除points,其實在ols中的結果每一條都是固定其他不變,這一條的單獨影響,所以協方差分析和ols如出一轍

雙因素方差分析 多因素方差分析

在前面我們講過簡單的單因素方差分析,這一篇我們講講雙因素方差分析以及多因素方差分析,雙因素方差分析是最簡單的多因素方差分析。單因素分析就是只考慮乙個因素會對要比較的均值產生影響,而多因素分析是有多個因素會對均值產生影響。需要注意的是乙個因素可能會有不同的水平值,即不同的取值。比如要判斷某一款藥對某種...

Python 多因素方差分析

在實際應用中,乙個實驗的指標往往受到多個因素的影響。例如飲料的銷量有可能受到銷售地區或者飲料顏色的影響。在方差分析中,若把飲料的顏色看做影響銷量的因素a,把銷售地區看做影響因素b。同時對因素a和因素b進行分析,就稱為雙因素方差分析。a b c a1 b1 20 a1 b2 22 a1 b3 24 a...

方差分析anova

參考 方差分析 analysis of variance,簡稱anova 方差分析 anova 又稱 變異數分析 或 f檢驗 是r.a.fister發明的,用於兩個及兩個以上樣本均數差別的顯著性檢驗。由於各種因素的影響,研究所得的資料呈現波動狀。造成波動的原因可分成兩類,一是不可控的隨機因素,另一是...