在无交互作用的双因素方差分析中,行因素和列因素对因变量的影响是相互独立的。但是如果两个因素搭配在一起对因变量的影响会形成一个新的效应,就需要考虑交互作用对因变量的影响, 这就是有交互作用的双因素方差分析。
书中的例子:
行变量有2个水平,即高峰期和低峰期;列变量有2个水平,即路段1和路段2;行变量的每一个水平有5行数据;列变量的每一个水平有2列数据,如下图:
excel输出结果使用statsmedols进行双因素方差分析
import pandas as pdfrom statsmodels.formula.api import olsfrom statsmodels.stats.anova import anova_lmroad_data = {'value':[26,19,24,20,27,23,25,22,25,21,20,18,17,17,22,13,21,16,17,12], 'level_0':['r1','r2','r1','r2','r1','r2','r1','r2','r1','r2','r1','r2','r1','r2', 'r1','r2','r1','r2','r1','r2'], 'level_1':['H','H','H','H','H','H','H','H','H','H', 'L','L','L','L','L','L','L','L','L','L']}df = pd.DataFrame(road_data)model = ols('value ~ C(level_0)+C(level_1)+C(level_0):C(level_1)', df).fit()anova_lm(model) df sum_sq mean_sq F PR(>F)C(level_0) 1.0 92.45 92.45 23.405063 0.000182C(level_1) 1.0 174.05 174.05 44.063291 0.000006C(level_0):C(level_1) 1.0 0.05 0.05 0.012658 0.911819Residual 16.0 63.20 3.95 NaN NaN
计算结果与excel输出一致!