用Python进行单样本T检验(附数据)

编程语言: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)