import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols
读取 Excel 文件
data = pd.read_excel('9.4.xlsx')
定义模型
model = ols('产量 ~ C(品种) + C(化肥) + C(品种):C(化肥)', data=data).fit()
进行方差分析
anova_table = sm.stats.anova_lm(model, typ=2)
print(anova_table)
根据 p 值判断是否有显著影响
if anova_table.loc['品种', 'PR(>F)'] < 0.05:
print("品种对小麦产量有显著影响")
else:
print("品种对小麦产量没有显著影响")
if anova_table.loc['化肥', 'PR(>F)'] < 0.05:
print("化肥对小麦产量有显著影响")
else:
print("化肥对小麦产量没有显著影响")
if anova_table.loc['品种:化肥', 'PR(>F)'] < 0.05:
print("品种和化肥的交互作用对小麦产量有显著影响")
else:
print("品种和化肥的交互作用对小麦产量没有显著影响")