python统计分析——单样本t检验

参考资料:用python动手学统计学

1、导入库

python 复制代码
## 导入库
# 用于数值计算的库
import numpy as np
import pandas as pd
import scipy as sp
from scipy import stats
# 用于绘图的库
from matplotlib import pyplot as plt
import seaborn as sns
sns.set()

2、准备基础数据

python 复制代码
data=np.array([58.5298199 , 52.35303878, 74.4461695 , 52.98326296, 55.87687873,
        67.65984894, 47.72614076, 50.26690674, 56.50082581, 52.36104034,
        45.4578831 , 53.36098792, 52.12936842, 59.82777282, 41.68169176,
        49.3985677 , 64.21112808, 69.85864806, 42.91056354, 60.15878009])

3、提出假设

零假设:data的均值为50

备择假设:data的均值不是50

4、计算t统计量

python 复制代码
# 计算样本均值
mu=np.mean(data)
# 计算样本自由度
df=len(data)-1
# 计算平均数标准误
sigma=np.std(data,ddof=1)
se=sigma/np.sqrt(len(data))
# 计算t值
t_value=(mu-50)/se
print(t_value)

5、计算p值

假设总体服从正态分布,那么t值就服从t分布,所以可以使用t分布的累计分布函数。

双尾检验:p=(1-α)×2,这里的α不是显著性水平,而是用累计分布函数求出的当总体均值等于50(本例是50,在实际应用中看零假设对应的值)时的累计概率值,此值越大越好。

python 复制代码
alpha=stats.t.cdf(t_value,df=df)
p=(1-alpha)*2
print(p)

6、单样本t检验函数介绍

使用scipy.stats.ttest_1samp()函数可以方便进行t检验。

python 复制代码
stats.ttest_1samp(data,50)

常用参数介绍如下:

(1)a,数据源,相当于本例的data

(2)popmean,就是假设检验的总体均值,效果如下:

(3)nan_policy,当数据中存在空值nan时的处理方式。propagate表示nan参与计算;omit表示忽略nan;raise表示报错。

(4)alternative用于设置双尾检验/单尾检验。默认为双尾检验。可选设置有:'two-sided', 'less', 'greater'。

'two-sided'表示备择假设为样本均值与给定总体均值不同;

'less'表示备择假设为样本均值小于给定总体均值;

'greater'表示备择假设为样本均值大于给定总体均值。

注意观察下面p值的变化:

相关推荐
java1234_小锋27 分钟前
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 神经网络基础原理
python·深度学习·tensorflow·tensorflow2
JJJJ_iii28 分钟前
【深度学习03】神经网络基本骨架、卷积、池化、非线性激活、线性层、搭建网络
网络·人工智能·pytorch·笔记·python·深度学习·神经网络
JJJJ_iii37 分钟前
【深度学习05】PyTorch:完整的模型训练套路
人工智能·pytorch·python·深度学习
程序员小远2 小时前
常用的测试用例
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
IT学长编程2 小时前
计算机毕业设计 基于EChants的海洋气象数据可视化平台设计与实现 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
大数据·hadoop·python·毕业设计·课程设计·毕业论文·海洋气象数据可视化平台
辣椒http_出海辣椒2 小时前
Python 数据抓取实战:从基础到反爬策略的完整指南
python
荼蘼2 小时前
使用 Flask 实现本机 PyTorch 模型部署:从服务端搭建到客户端调用
人工智能·pytorch·python
(时光煮雨)2 小时前
【Python进阶】Python爬虫-Selenium
爬虫·python·selenium
小政同学3 小时前
【Python】小练习-考察变量作用域问题
开发语言·python
Lynnxiaowen3 小时前
今天我们开始学习python3编程之python基础
linux·运维·python·学习