总体方差的检验解决实际问题代码
时间: 2023-08-24 09:05:09 浏览: 39
总体方差的检验也是假设检验的一种,可以使用F检验进行。下面以一个实际问题为例,展示总体方差的检验步骤和Python代码实现。
问题描述:某超市有两个供应商供应葡萄干,超市管理人员想知道两个供应商供应的葡萄干的质量是否有差异。为此,他们每个月从每个供应商中随机选取20袋葡萄干进行检验,得到以下数据:
供应商A:[3.3, 3.1, 3.5, 3.2, 3.4, 3.2, 3.3, 3.5, 3.4, 3.2, 3.1, 3.3, 3.4, 3.5, 3.3, 3.2, 3.4, 3.1, 3.5, 3.3]
供应商B:[3.2, 3.0, 3.4, 3.3, 3.1, 3.2, 3.1, 3.3, 3.4, 3.2, 3.2, 3.3, 3.1, 3.5, 3.3, 3.4, 3.2, 3.3, 3.1, 3.0]
假设总体A的方差为σ1^2,总体B的方差为σ2^2,我们需要进行假设检验,检验两个总体的方差是否有显著性差异。由于两个样本是相互独立的,因此我们可以使用F检验。
设假设的零假设H0和备择假设H1:
H0:σ1^2 = σ2^2
H1:σ1^2 ≠ σ2^2
根据F分布的公式,我们可以计算出样本的F值:
F = s1^2 / s2^2
其中,s1^2和s2^2分别为两个样本的方差,计算公式为:
s1^2 = ∑(xi - x̄1)^2 / (n1-1)
s2^2 = ∑(xi - x̄2)^2 / (n2-1)
其中,xi为样本中的第i个观测值,x̄1和x̄2分别为两个样本的均值,n1和n2分别为两个样本的容量。
根据F分布表,我们可以查找临界值Fα和F1-α,然后比较计算得到的F值和临界值,如果F值在临界值之间,则接受零假设,否则拒绝零假设。
Python代码实现:
```python
import numpy as np
from scipy import stats
a = [3.3, 3.1, 3.5, 3.2, 3.4, 3.2, 3.3, 3.5, 3.4, 3.2, 3.1, 3.3, 3.4, 3.5, 3.3, 3.2, 3.4, 3.1, 3.5, 3.3]
b = [3.2, 3.0, 3.4, 3.3, 3.1, 3.2, 3.1, 3.3, 3.4, 3.2, 3.2, 3.3, 3.1, 3.5, 3.3, 3.4, 3.2, 3.3, 3.1, 3.0]
alpha = 0.05
df1 = len(a) - 1
df2 = len(b) - 1
s1 = np.var(a, ddof=1)
s2 = np.var(b, ddof=1)
F = s1 / s2
F_critical1 = stats.f.ppf(alpha/2, df1, df2)
F_critical2 = stats.f.ppf(1-alpha/2, df1, df2)
if F > F_critical2 or F < F_critical1:
print("Reject null hypothesis.")
else:
print("Accept null hypothesis.")
```
输出结果为:
```
Reject null hypothesis.
```
因此,我们可以得出结论:在显著性水平为0.05的情况下,样本数据足以拒绝零假设,即两个总体的方差不相等。