<p>在方差分析中,您基本上计算RSS中的差异。
您可以在<a href="https://www.statsmodels.org/dev/examples/notebooks/generated/interactions_anova.html" rel="nofollow noreferrer">vignette for ANOVA in statsmodels</a>下查看更多信息:</p>
<pre><code>import pandas as pd
import seaborn as sns
import numpy as np
iris = sns.load_dataset('iris')
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
iris.head()
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
</code></pre>
<p>我们运行两个模型并进行方差分析:</p>
<pre><code>full_lm = ols("sepal_length ~ petal_length+petal_width", data=iris).fit()
reduced_lm = ols("sepal_length ~ petal_length", data=iris).fit()
anova_lm(reduced_lm,full_lm)
df_resid ssr df_diff ss_diff F Pr(>F)
0 148.0 24.525034 0.0 NaN NaN NaN
1 147.0 23.880694 1.0 0.64434 3.9663 0.048272
</code></pre>
<p>它抛出了一些警告(你可以在我上面链接的网站上看到),因为对于第一行,它无法计算F等</p>
<p>注意,这与另一个答案中建议的Rsquare计算不同。需要注意的一个重要问题是,如果包含更多的项,理论上的R平方会增加,你想看看这些项是否能显著解释额外的方差,这就是为什么你要使用方差分析</p>