请给出一个用python写的单因素方差分析的案例,并给出代码
时间: 2024-02-18 14:04:34 浏览: 150
单因素方差分析是一种用于比较两个或多个组的均值是否相等的统计方法。以下是一个使用Python进行单因素方差分析的简单案例:
假设我们有三组数据,分别为A组、B组和C组,每组数据有10个样本。我们想要比较这三组数据的均值是否相等。
```python
import pandas as pd
import scipy.stats as stats
import statsmodels.api as sm
from statsmodels.formula.api import ols
# 创建一个数据框
data = {'Group': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B',
'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C'],
'Value': [12, 18, 9, 15, 21, 16, 10, 8, 13, 11,
22, 25, 27, 20, 26, 24, 23, 19, 28, 29,
35, 31, 33, 30, 38, 39, 34, 32, 36, 37]}
df = pd.DataFrame(data)
# 进行单因素方差分析
model = ols('Value ~ Group', data=df).fit()
anova_table = sm.stats.anova_lm(model, typ=2)
# 输出方差分析表
print(anova_table)
```
在这个例子中,我们首先创建了一个包含三组数据的数据框。然后,我们使用`ols()`函数建立一个线性模型,其中`Value`是因变量,`Group`是自变量。`fit()`函数用于拟合模型并生成结果。最后,我们使用`anova_lm()`函数进行单因素方差分析,并将分析结果存储在`anova_table`中。通过输出`anova_table`可以查看方差分析表,包括组间平方和、组内平方和、总平方和、自由度和F值等信息。
需要注意的是,上述代码中使用了`statsmodels`库进行方差分析,而不是使用`scipy.stats`库中的函数。这是因为`statsmodels`库提供了更全面的分析结果。
阅读全文