编程语言:python
数据来源:选择的R语言自带数据库birthwt,大家可以自己去导出,本次也提供了数据(见附件)
目的:使用Python进行对 birthwt数据 里面 bwt 变量进行单样本的T检验
使用的Python库:pandas 、scipy、numpy
前提知识:进行T检验的数据需要先符合正态分布,因此需要
导入库:
import numpy as np
import pandas as pd
import scipy.stats as stats
打开文件:
birthwt = pd.read_csv("F:\\临时项目\\数据处理助手\\birthwt.csv")
步骤:①进行正态性检验:
使用Shapiro-Wilk检验(使用scipy库的stats里面的shapiro方法可以很方便的对变量做正态性检验):
处理代码:
result1 = stats.shapiro(birthwt.bwt)
print(result1)
结果:
ShapiroResult(statistic=0.9924418330192566, pvalue=0.43540576100349426)
从上面可以看到P值为0.435>0.05,可以认为bwt服从正态分布
② 假设研究总体中bwt的平均值为3000克,使用单样本T检验检验birthwt数据集里面的bwt和总体均值有误统计学差异:
使用方法使用scipy库的stats里面的ttest_1samp方法进行单样本的T检验
处理代码:
result2 = stats.ttest_1samp(birthwt.bwt, 3000)
结果:
TtestResult(statistic=-1.04468420299874, pvalue=0.29751034076282334, df=188)
返回内容:statistic是统计值,pvalue是P值, df是自由度
根据结果可以看到:P值大于0.05,所以birthwt数据集中bwt数据和总体平均值3000没有显著差异(P=0.298)