为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能,从而更快地掌握解决问题所需的能力。
(以下练习题来源于《统计学—基于Python》。联系我获取完整数据和Python代码。)
假设检验的基本分析思路
第一步,看检验总体的什么参数(总体均值、总体比例、总体方差);
第二步,看检验一个总体的参数还是两个总体的参数(总体均值和总体比例是之差,总体方差是之比);
第三步,看是大样本还是小样本,这将决定抽样分布;
第四步,确定采用的检验的方法和检验统计量。
练习题
一种联合收割机的金属板的平均重量为25千克。对某企业生产的20块金属板进行测量,得到的重量数据(单位:千克)如下。
(1)采用S-W检验和K-S检验两种方法,检验该企业生产的金属板的重量是否服从正态分布(α=0.05)。
(2)假定金属板的重量服从正态分布,检验该企业生产的金属板是否符合要求(α=0.05)。
(3)计算效应量并分析差异程度。
题目分析:
(1)题考查正态性检验,采用S-W检验和K-S检验两种方法。先提出假设:H0:重量服从正态分布;H1:重量不服从正态分布。
(2)题考查一个总体均值的检验(小样本的情形下,总体方差未知,采用t检验)。先提出假设:H0:μ = 25;H1:μ ≠ 25。
(3)题考查单样本t检验的效应量的计算。
(1)正态性检验Python代码
# S-W检验
import pandas as pd
from scipy.stats import shapiro
exercise7_2 = pd.read_csv('exercise7_2.csv')
# exercise7_2.head()
W,p_value = shapiro(exercise7_2['重量'])
print(f"统计量W={W:.4f}, p值={p_value:.4g}")
S-W检验计算结果:统计量W=0.9706, p值=0.7684
结果分析:在该项检验中,W=0.9706, p值=0.7684,由于p值>0.05,不能拒绝原假设,没有证据显示该公司生产的金属板的重量不服从正态分布。
# K-S检验
import pandas as pd
from scipy.stats import kstest
exercise7_2 = pd.read_csv('exercise7_2.csv')
x = exercise7_2['重量']
D, p_value = kstest(x, 'norm', alternative = 'two-sided', mode = 'asymp',
args = (x.mean(), x.std()))
print(f"统计量D={D:.4f}, p值={p_value:.4g}")
K-S计算结果:统计量D=0.1081, p值=0.9736
结果分析:在该项检验中,统计量D=0.1081, p值=0.9736,由于p值>0.05,不能拒绝原假设,没有证据显示该公司生产的金属板的重量不服从正态分布。
(2)一个总体均值假设检验Python代码
# 一个总体均值的检验(小样本的情形下,总体方差未知,采用单样本t检验)
import pandas as pd
from scipy.stats import ttest_1samp # 单样本t检验
exercise7_2 = pd.read_csv('exercise7_2.csv')
t, p_value = ttest_1samp(a = exercise7_2['重量'], popmean = 25) # popmean为假设的总体均值
print(f"样本均值={exercise7_2['重量'].mean():.2f}, t统计量={t:.4f}, 双尾p值={p_value:.4g}")
假设检验计算结果:样本均值=25.51, t统计量=1.0399,双尾p值=0.3114
结果分析:p值=0.3114,不拒绝原假设,没有证据表明重量不等于25,即可以认为金属板是否符合要求。
(3)计算效应量Python代码
mu = 25
xbar = exercise7_2['重量'].mean()
sd = exercise7_2['重量'].std()
d = abs(xbar - mu) / sd
print(f"效应量 = {d:.4f}")
效应量计算结果:效应量 = 0.2325
结果分析:样本的平均重量标准重量(25千克)相差0.2325个标准差。根据Cohen准则,该检验结果属于小的效应量。