方差检验
F = s 1 2 / σ 2 2 s 2 2 / σ 2 2 F = \frac{s^2_1 / \sigma^2_2}{s^2_2 / \sigma^2_2} F=s22/σ22s12/σ22
例:
尽管存在争议,但大多数科学家认为,使用含有高纤维的谷类食物有助于降低癌症发生的可能性。然而一个科学家提出,如果人们在早餐中食用高纤维的谷类食物,那么平均而言,与早餐没有食用谷物的人群相比,食用谷物这在午餐中摄取的热量将会减少。如果这个观点成立,谷物食品的生产商又将获得一个很好的机会,他们会宣传说:“多吃谷物吧,早上也吃,这样有助于减肥。”为了检验这个假设,随机抽取了35人,询问他们早餐和午餐的通常食谱,根据他们的食谱将其分为两类,一类为经常谷类食用者(A组),一类为非经常谷类食用者(B组),然后测度没人午餐的大卡摄取量。经过一段时间的实验,得到的结果如下:
import pandas as pd
import numpy as np
import scipy as sp
from scipy import stats
A = pd.Series([568,496,589,681,540,646,636,539,596,607,529,617,555,562,584])
B = pd.Series([650,637,563,723,569,628,580,651,622,706,711,569,630,617,480,709,596,624,688,632])
现以a=0.05的显著性水平检验两个总体的方差是否相等。
假设:
σ 1 1 = σ 2 1 \sigma^1_1 = \sigma^1_2 σ11=σ21
σ 1 1 ≠ σ 2 1 \sigma^1_1 \neq \sigma^1_2 σ11=σ21
# 由题可得
s1_2 = A.var()
s2_2 = B.var()
n1 = len(A)
n2 = len(B)
a = 0.05
计算F分布值
# 自由度
df1 = n1-1
df2 = n2-1
f_a2 = stats.f.isf(a/2,df1,df2)
f_1_a2 = stats.f.isf(1-a/2,df1,df2)
计算公式
F = s1_2/s2_2
F
print('本例中,两个临界点分别为{:.3f},{:.3f},F={:.3f}没有落入拒绝域,故不能拒绝H0'.format(f_1_a2,f_a2,F))
本例中,两个临界点分别为0.350,2.647,F=0.662没有落入拒绝域,故不能拒绝H0