python方差分析
程序员文章站
2024-01-19 15:31:58
...
一元方差分析
一元单因素方差分析
场景:5种不同像素的数码相机(单因素)对销量(研究的因变量)是否有显著差异
G = dc_sales['pixel'].unique()
args = []
for I in list(G):
args.append(dc_sales[dc_sales['pixel']==I]['sales'])
#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
多重比较检验
from statsmodels.stats.multicomp import pairwise_tukeyhsd
ds_sales_anova_post=pairwise_tukeyhsd(dc_sales['sales'],dc_sales['pixel'].alpha=0.5)
dc_sales_anova_post.summary()
# 对5种不同像素两两对比,10个结果,看meandiff和P值即可
# 当然多重检验会有问题,这里有多重检验校正之类的
一元多因素方差分析