Python统计学:独立样本t检验~均值差的检验

独立样本与配对样本的区分:

独立样本:指的是两组样本的数据来源互不干扰,例如两组不同的人或者两组不同的实验数据。

配对样本:指的是两组样本的数据是成对出现的,例如同一组人在不同时期或在不同条件下的实验数据。

选择检验方式的区别:

独立样本:大样本用z检验,小样本用t检验;

配对样本:都用t检验。

在计算p值的时候的区别:

独立样本t检验:关注重点是两组数据均值的差;

配对样本t检验:先求数据的差值再进行单样本t检验。

举个例子:

独立样本的均值差的检验案例:为了检验男生和女生的数学成绩有没有差异,某学习随机抽了20名学生。由于样本量小于30,属于小样本的假设检验,而男女两组样本数据属于 独立样本,因此小样本的独立样本的均值差检验应该 选择t检验。

处理样本数据:

# 导入数据
students_data = {
'name':['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T'],
'gender':['male','male','female','male','female','male','male','female','female','female','male','female','male','male','female','male','female','male','female','male'],
'grades':[76,82,86,82,35,77,76,91,76,91,96,88,96,78,86,78,67,91,76,89]}
# 转换格式
students_test_data = pd.DataFrame(students_data,columns=['name','gender','grades']) 
# 筛选两组样本的值
male = students_test_data.query('gender == "male"')["grades"]
female = students_test_data.query('gender == "female"')["grades"]
# 转化为数组型
male = np.array(male)
female = np.array(female)
print(male)
print(female)

代码详解:

导入数据采用的是字典,{}表示的是字典格式。以键值对的形式呈现,键和值中间用冒号分隔:{"name": "Tom", "age": 18}。

DataFrame()可以把数据转为DataFrame 格式,columns参数则指定了数据框中每列的名称。

query()表示从DataFrame中选择符合特定条件的行,括号里的'gender == "male"'表示筛选gender的值为male的行。query()[]表示筛选行和列,筛选gender的值为male的行对应的grades列。

计算t值和p值:

stats.ttest_ind(male, female, equal_var = False)

计算出的p值0.34远大于0.05,说明两组样本并没有差异。结果是男女成绩并没有差异。

猜你喜欢

转载自blog.csdn.net/Sukey666666/article/details/130353849