Python实现常用的假设检验 !

Python实现常用的假设检验 开门见山。 这篇文章,教大家用Python实现常用的假设检验! 服从什么分布,就用什么区间估计方式,也就就用什么检验! 比如:两个样本方差比服从F分布,区间估计就采用F分布计算临界值(从而得出置信区间),最终采用F检验。 建设检验的基本步骤: 前言 假设检验用到的Python工具包 •Statsmodels是Python中,用于实现统计建模和计量经济学的工具包,主要包括描述统计、统计模型估计和统计推断 •Scipy是一个数学、科学和工程计算Python工具包,主要包括统计,优化,整合,线性代数等等与科 阅读详情

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入


这篇文章,教大家用Python实现常用的假设检验!

 

 

服从什么分布,就用什么区间估计方式,也就就用什么检验!

比如:两个样本方差比服从F分布,区间估计就采用F分布计算临界值(从而得出置信区间),最终采用F检验。

 

 

建设检验的基本步骤:

 

假设检验用到的Python工具包

  • Statsmodels是Python中,用于实现统计建模和计量经济学的工具包,主要包括描述统计、统计模型估计和统计推断
  • Scipy是一个数学、科学和工程计算Python工具包,主要包括统计,优化,整合,线性代数等等与科学计算有关的包

导入数据


from sklearn.datasets import load_iris
import numpy as np
#导入IRIS数据集
iris = load_iris()
iris=pd.DataFrame(iris.data,columns=['sepal_length','sepal_width','petal_legth','petal_width'])
print(iris)

一个总体均值的z检验


np.mean(iris['petal_legth'])
'''
原假设:鸢尾花花瓣平均长度是4.2
备择假设:鸢尾花花瓣平均长度不是4.2

'''

import statsmodels.stats.weightstats
z, pval = statsmodels.stats.weightstats.ztest(iris['petal_legth'], value=4.2)
print(z,pval)


'''
P=0.002 <5%, 拒绝原假设,接受备则假设。
'''

一个总体均值的t检验

import scipy.stats
t, pval = scipy.stats.ttest_1samp(iris['petal_legth'], popmean=4.0)
print(t, pval)

'''
P=0.0959 > 5%, 接受原假设,即花瓣长度为4.0。 
'''

模拟双样本t检验


#取两个样本
iris_1 = iris[iris.petal_legth >= 2]
iris_2 = iris[iris.petal_legth < 2]
print(np.mean(iris_1['petal_legth']))
print(np.mean(iris_2['petal_legth']))

'''
H0: 两种鸢尾花花瓣长度一样
H1: 两种鸢尾花花瓣长度不一样

'''

import scipy.stats
t, pval = scipy.stats.ttest_ind(iris_1['petal_legth'],iris_2['petal_legth'])
print(t,pval)

'''
p<0.05,拒绝H0,认为两种鸢尾花花瓣长度不一样
'''

练习

数据字段说明:

  • gender:性别,1为男性,2为女性
  • Temperature:体温
  • HeartRate:心率
  • 共130行,3列
  • 用到的数据链接:pan.baidu.com/s/1t4SKF6

本周需要解决的几个小问题:

1.人体体温的总体均值是否为98.6华氏度?
2.人体的温度是否服从正态分布?
3.人体体温中存在的异常数据是哪些?
4.男女体温是否存在明显差异?
5.体温与心率间的相关性(强?弱?中等?)

1.1 探索数据


import numpy as np
import pandas as pd
from scipy import stats
data = pd.read_csv("C:\\Users\\baihua\\Desktop\\test.csv")
print(data.head())
sample_size = data.size #130*3
out:
   Temperature  Gender  HeartRate
0         96.3       1         70
1         96.7       1         71
2         96.9       1         74
3         97.0       1         80
4         97.1       1         73

print(data.describe())
out:
 Temperature      Gender   HeartRate
count   130.000000  130.000000  130.000000
mean     98.249231    1.500000   73.761538
std       0.733183    0.501934    7.062077
min      96.300000    1.000000   57.000000
25%      97.800000    1.000000   69.000000
50%      98.300000    1.500000   74.000000
75%      98.700000    2.000000   79.000000
max     100.800000    2.000000   89.000000

人体体温均值是98.249231

1.2 人体的温度是否服从正态分布?


'''
人体的温度是否服从正态分布?
先画出分布的直方图,然后使用scipy.stat.kstest函数进行判断。

'''
%matplotlib inline
import seaborn as sns
sns.distplot(data['Temperature'], color='b', bins=10, kde=True)


stats.kstest(data['Temperature'], 'norm')
out:
KstestResult(statistic=1.0, pvalue=0.0)
'''
p<0.05,不符合正态分布
'''

判断是否服从t分布


'''
判断是否服从t分布:

'''

np.random.seed(1)
ks = stats.t.fit(data['Temperature'])
df = ks[0]
loc = ks[1]
scale = ks[2]
t_estm = stats.t.rvs(df=df, loc=loc, scale=scale, size=sample_size)
stats.ks_2samp(data['Temperature'], t_estm)

'''

 pvalue=0.4321464176976891 <0.05,认为体温服从t分布
'''

判断是否服从卡方分布


'''
判断是否服从卡方分布:

'''
np.random.seed(1)
chi_square = stats.chi2.fit(data['Temperature'])
df = chi_square[0]
loc = chi_square[1]
scale = chi_square[2]
chi_estm = stats.chi2.rvs(df=df, loc=loc, scale=scale, size=sample_size)
stats.ks_2samp(data['Temperature'], chi_estm)

'''
pvalue=0.3956146564478842>0.05,认为体温服从卡方分布

'''

绘制卡方分布直方图


'''
绘制卡方分布图

'''

from matplotlib import pyplot as plt
plt.figure()
data['Temperature'].plot(kind = 'kde')
chi2_distribution = stats.chi2(chi_square[0], chi_square[1],chi_square[2])
x = np.linspace(chi2_distribution.ppf(0.01), chi2_distribution.ppf(0.99), 100)
plt.plot(x, chi2_distribution.pdf(x), c='orange')
plt.xlabel('Human temperature')
plt.title('temperature on chi_square', size=20)
plt.legend(['test_data', 'chi_square'])

1.3 人体体温中存在的异常数据是哪些?


'''
已知体温数据服从卡方分布的情况下,可以直接使用Python计算出P=0.025和P=0.925时(该函数使用单侧概率值)的分布值,在分布值两侧的数据属于小概率,认为是异常值。
'''
lower1=chi2_distribution.ppf(0.025)
lower2=chi2_distribution.ppf(0.925)
t=data['Temperature']
print(t[t<lower1] )
print(t[t>lower2])

out:

0     96.3
1     96.7
65    96.4
66    96.7
67    96.8
Name: Temperature, dtype: float64
63      99.4
64      99.5
126     99.4
127     99.9
128    100.0
129    100.8
Name: Temperature, dtype: float64

1.4 男女体温差异是否显著


'''
此题是一道两个总体均值之差的假设检验问题,因为是否存在差别并不涉及方向,所以是双侧检验。建立原假设和备择假设如下:
H0:u1-u2 =0  没有显著差
H1:u1-u2 != 0  有显著差别

'''
data.groupby(['Gender']).size() #样本量65
male_df = data.loc[data['Gender'] == 1]
female_df = data.loc[data['Gender'] == 2]

'''
使用Python自带的函数,P用的双侧累计概率
'''


import scipy.stats
t, pval = scipy.stats.ttest_ind(male_df['Temperature'],female_df['Temperature'])
print(t,pval)
if pval > 0.05:
    print('不能拒绝原假设,男女体温无明显差异。')
else:
    print('拒绝原假设,男女体温存在明显差异。')

out:
-2.2854345381654984 0.02393188312240236
拒绝原假设,男女体温存在明显差异。

1.5 体温与心率间的相关性(强?弱?中等?)


'''

体温与心率间的相关性(强?弱?中等?)

'''

heartrate_s = data['HeartRate']
temperature_s = data['Temperature']
from matplotlib import pyplot as plt
plt.scatter(heartrate_s, temperature_s)


stat, p = stats.pearsonr(heartrate_s, temperature_s)
print('stat=%.3f, p=%.3f' % (stat, p))
print(stats.pearsonr(heartrate_s, temperature_s))

'''
相关系数为0.004,可以认为二者之间没有相关性

'''
python 假设检验 使用python进行假设检验,涉及假设检验中的原理,常见的统计量以及具体的使用案例 阅读详情

相关推荐

利用Python做假设检验、参数估计、方差分析、线性回归

目录 参数估计 方差比的置信区间 均值差的置信区间 一个正态总体方差的点估计和置信区间 一个正态总体均值的点估计和置信区间 单样本t检验的SciPy实现方式 单样本t检验的statsmodels实现方式 两样本t检验SciPy的实现方式 两样本t检验statsmodels的实现方式 配对t检验的SciPy实现 方差分析 单因素方差分析的SciPy实现 事后检验 非参数方法 SciPy实现有符号秩和检验 SciPy实现秩和检验 一元线性回归 参数估计 方差比的置信区间

m0_64336780的博客 7799

ks检验与s-w 检验_Python进行单变量的样本分布检验

DATApython进行样本分布检验0引言问题:如何检验数据的抽样的某个维度是符合某种分布的?譬如,是否是正态分布,是否与总体的分布相同等?工具:python。接下来一起看看数据分析中重要的一环“单变量的样本分布检验”。01思路探索数据变量之间是否存在某种关系/关联。大致思路有:①确认变量的类型:[类别型、数值型];②可视化给出可能的方向:[散点图、箱型图、直方图、…];③需建立更严格的...

weixin_39996739的博客 1121

python实现Shapiro-Wilk正态分布检验

python实现Shapiro-Wilk正态分布检验 Shapiro-Wilk检验 Shapiro-Wilk检验等显著性假设检验方法,则从统计学意义上将样本分布与正态分布进行比较,以确定数据是否显示出与正态性的偏离或符合。 SW检验有两个基本假设: H0:样本所来自的总体分布服从正态分布 H1:样本所来自的总体分布不服从正态分布 两个假设互斥最终仅有一个成立。哪一个成立呢,我们直接看统计软件帮我们计算得到显著性概率sig值或p值,当p值>0.05时,没有理由拒绝H0,则认为..

data+scenario+science+insight 4946

ks检验与s-w 检验_Python实现「统计学」常用的假设检验

文末扫码领取【Python开源项目包】上篇文章→:数据分析5大软件「优势PK」:Python、Excel、R、SAS、SPSS你最爱哪个?作者 | 求知鸟来源 | 知乎开门见山。这篇文章,教大家用Python实现常用的假设检验!服从什么分布,就用什么区间估计方式,也就用什么检验!比如:两个样本方差比服从F分布,区间估计就采用F分布计算临界值(从而得出置信区间),最终采用F检验。假设检验的基本步骤:...

weixin_39828457的博客 1482

Ollama模型路径迁移实战:Windows/Mac/Linux三平台保姆级教程(附常见问题排查)

本文提供了一份详细的Ollama模型路径迁移教程,涵盖Windows、macOS和Linux三大平台。通过设置OLLAMA_MODELS环境变量或创建符号链接,指导用户将模型从默认路径安全迁移至新位置,以释放系统盘空间或提升性能。教程包含迁移前的准备、分平台步骤、迁移后的验证以及常见问题排查,确保迁移过程平滑可靠。

js777的博客 1184

Qt 5.9.1 32位下,手把手搞定周立功CAN二次开发库的加载与配置(含常见错误排查)

本文详细介绍了在Qt 5.9.1 32位环境下配置周立功CAN二次开发库的完整流程,包括环境准备、项目配置、常见错误排查及性能优化建议。特别针对MinGW 32bit环境,提供了.pro文件的精准配置和DLL部署策略,帮助开发者快速解决库文件匹配、编译报错和运行时问题,实现高效的CAN总线通信开发。

weixin_28717431的博客 356

python scale函数_Python GUI 08----Scale

Scale为输出限定范围的数字区间,可以为之指定最大值,最小值及步距值。Scale组件默认为垂直,最大值100,最小值0,步距为11.创建一个Scalefrom tkinter import *root = Tk()Scale(root).pack()root.mainloop()2.改变缺省值from tkinter import *root = Tk()Scale(root,from_ = -...

weixin_35689877的博客 5139

【RT-DETR实战】117、华为昇腾CANN部署探索:从模型转换到推理踩坑实录

本文总结了RT-DETR模型在昇腾310B芯片上部署的关键挑战与解决方案。主要遇到四大问题:1)模型转换时需注意ONNX导出设置,建议先固定尺寸验证;2)内存布局差异导致推理异常,需精确匹配NHWC/NCHW格式;3)流水线并发优化中内存复用和异步处理是关键;4)调试阶段需利用专用工具逐层比对。作者提出六条实用建议,包括小尺寸验证、预处理对齐、内存池设计等,强调部署是持续适配过程,需建立完整的测试体系应对工具链迭代。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 192

假设检验_Python实现常用的假设检验!

- 点击上方“中国统计网”订阅我吧!-在上篇文章中,介绍了假设检验的基本方法和原理,并在文章的最后用Excel实现了主要的假设检验,见下文:数据分析 | 统计之参数假设检验这篇文章,用Python实现常用的假设检验!服从什么分布,就用什么区间估计方式,也就就用什么检验!比如:两个样本方差比服从F分布,区间估计就采用F分布计算临界值(从而得出置信区间),最终采用F检验。建设检验的基本步骤:...

weixin_35965498的博客 209

Cleo Synchronization接口任意文件读取漏洞CVE-2024-50623 附POC

微信公众号搜索:南风漏洞复现文库该文章 南风漏洞复现文库 公众号首发Cleo。

nnn2188185的博客 480

新政下的绿电直连项目经济性分析:模式创新与价值重构

随着全球气候治理与低碳转型进程不断加速,绿电直连作为新能源就近消纳的创新模式,正成为破解新能源消纳瓶颈、规避碳关税壁垒的核心路径。2025年9月,国家发展改革委、国家能源局发布《关于完善价格机制促进新能源发电就近消纳的通知》(1192号文),为绿电直连项目的经济性分析与效益测算提供了明确的政策依据。本文将基于新政框架,深入解析绿电直连项目的经济性影响因素、盈利模式与优化路径,并结合案例与量化模型,为项目投资决策提供系统参考。

getusushu的博客 140

python假设检验和区间估计_Python实现常用的假设检验!

原标题:Python实现常用的假设检验!在上篇文章中,介绍了假设检验的基本方法和原理,并在文章的最后用Excel实现了主要的假设检验,见下文: 数据分析 | 统计之参数假设检验这篇文章,用Python实现常用的假设检验! 服从什么分布,就用什么区间估计方式,也就就用什么检验!比如:两个样本方差比服从F分布,区间估计就采用F分布计算临界值(从而得出置信区间),最终采用F检验。 建设检验的基本步骤: ...

weixin_39799646的博客 192

搞定ESD(九):静电放电之PCB设计

不同信号参考地平面应尽量保持完整,减小静电电流流过参考地平面时造成的电位差,防止电位差导致的信号传输电平错误.主芯片GPIO信号布线应保持最短化,减小与参考地平面之间的电场耦合,同时也防止因信号环路面积较大耦合静电放电噪声干扰。外部端子接地引脚顶层采用分地设计,最好是直接过孔到完整参考地平面接地,避免与顶层信号包地、其它包地相连,防止顶层串扰耦合到其它信号,造成ESD问题。

记得诚 1951

python scale()函数_Python实现常用的假设检验!

- 点击上方“中国统计网”订阅我吧!-在上篇文章中,介绍了假设检验的基本方法和原理,并在文章的最后用Excel实现了主要的假设检验,见下文:数据分析 | 统计之参数假设检验这篇文章,用Python实现常用的假设检验!服从什么分布,就用什么区间估计方式,也就就用什么检验!比如:两个样本方差比服从F分布,区间估计就采用F分布计算临界值(从而得出置信区间),最终采用F检验。建设检验的基本步骤:...

weixin_39632379的博客 468

基于数字图像处理方法的迷宫问题图解 : 基于骨架提取、四邻域

问题是,这条红色的线是人为标记出来的能通的路线,对计算机来看,黑色和红色的线没有任何差异,所以之前的想法压根不起作用。对应于数字图像的表达,就是从远离主干的分支端点出发,如果4邻域中只有一个可以通的道路,那么这个点在分支上。闪电划过,有一道连接了天空和大地,就是迷宫的解,其余的分支就是迷宫中对应的死路。类似这个闪电图,假设图中最粗的主干(迷宫解的路线)是最先形成的,其余的细小的分支是慢慢从主干上形成的。因此,只要在端点的4邻域中,找到可以走的道路,那么一定就是分支,也就是要移除的路线。

Henry的博客 2074

SAP 采购员参数及权限配置

若要控制采购员的参数缺省值或者权限,可以通过以下方式实现: 1、定义采购员缺省值(EVO) 路径:后台----物料管理---采购---环境数据---定义采购员的缺省值 点击图标,显示如下,查看参数配置ID: 查询到配置“定义采购员的缺省值”是通过ID “EVO”来配置的。进入页面建立配置: 按照需要配置新条目: 事务代码SU01进入用户配置页面,在用户“参数”页面配置前面设...

willieyuan的博客 7600

手把手教你使用Python实现常用的假设检验 !

开门见山。这篇文章,教大家用Python实现常用的假设检验!服从什么分布,就用什么区间估计方式,也就就用什么检验!比如:两个样本方差比服从F分布,区间估计就采用F分布计算临界值(从而得出...

tongtongjing1765的博客 2197

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

python假设检验和区间估计_手把手教你使用Python实现常用的假设检验 !

开门见山。这篇文章,教大家用Python实现常用的假设检验!服从什么分布,就用什么区间估计方式,也就就用什么检验!比如:两个样本方差比服从F分布,区间估计就采用F分布计算临界值(从而得出置信区间),最终采用F检验。建设检验的基本步骤:前言假设检验用到的Python工具包Statsmodels是Python中,用于实现统计建模和计量经济学的工具包,主要包括描述统计、统计模型估计和统计推断Scipy是...

weixin_39963341的博客 254

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python loc函数_手把手教你使用Python实现常用的假设检验 !

开门见山。这篇文章,教大家用Python实现常用的假设检验!服从什么分布,就用什么区间估计方式,也就就用什么检验!比如:两个样本方差比服从F分布,区间估计就采用F分布计算临界值(从而得出置信区间),最终采用F检验。建设检验的基本步骤:前言假设检验用到的Python工具包Statsmodels是Python中,用于实现统计建模和计量经济学的工具包,主要包括描述统计、统计模型估计和统计推断S...

weixin_39722921的博客 481

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

python 卡方分布值_手把手教你使用Python实现常用的假设检验 !

开门见山。这篇文章,教大家用Python实现常用的假设检验!服从什么分布,就用什么区间估计方式,也就就用什么检验!比如:两个样本方差比服从F分布,区间估计就采用F分布计算临界值(从而得出置信区间),最终采用F检验。建设检验的基本步骤:前言假设检验用到的Python工具包Statsmodels是Python中,用于实现统计建模和计量经济学的工具包,主要包括描述统计、统计模型估计和统计推断S...

weixin_39793098的博客 552

python 假设检验 区间估计_【一点资讯】Python实现常用的假设检验! www.yidianzixun.com...

-点击上方“中国统计网”订阅我吧!-在上篇文章中,介绍了假设检验的基本方法和原理,并在文章的最后用Excel实现了主要的假设检验,见下文:数据分析 | 统计之参数假设检验这篇文章,用Python实现常用的假设检验!服从什么分布,就用什么区间估计方式,也就就用什么检验!比如:两个样本方差比服从F分布,区间估计就采用F分布计算临界值(从而得出置信区间),最终采用F检验。建设检验的基本步骤:前言假设检验...

weixin_39910043的博客 155

常用假设检验方法及 Python 实现

假设检验摘要 假设检验是统计推断的核心方法,用于判断样本差异是否由抽样误差或本质差异引起。其基本步骤包括:设定原假设(H₀)和备择假设(H₁)、选择检验方法(如Z检验、t检验、卡方检验)、计算统计量、确定拒绝域并决策。关键概念包括显著性水平(α,通常取0.05)、P值(衡量反对H₀的证据强度)及两类错误(弃真和取伪)。 常见检验方法 卡方检验:分析分类变量的关联性或拟合优度,通过比较观测频数与期望频数的差异(χ²统计量),判断是否拒绝H₀。适用于列联表分析,要求期望频数≥5。 Z检验:基于正态分布,检验样本

2301_79886169的博客 1418

Python进行假设检验

2 Python进行假设检验 参考资料 知乎专栏文章: 假设检验

读万卷书 行万里路 1666

如何用python来做假设检验

我们再在进行数据分析时,简单的数据分析不能深刻的反映一组数据得总体情况,倘若我们用统计学角度来分析数据则会解决一些平常解决不了得问题. 本编文章将会给大家讲解 假设检验、置信区间、效应量. 其中假设检验包括:t检验,w检验,卡方检验,f检验 ,我将会一一在这篇文章中介绍并用python代码来进行对应实操. (话不多说,整起!) 无论是什么检验第一步永远是 设立假设! 就像我们初中学的一样已知一个非负数来求解.我们可以先认为它等于0,经过推到发现我们做得想法是错误的,从而推出该数是大于0的! 我们通常第

qq_43571429的博客 4894
上一篇: Python带你在朋友圈环球旅行
下一篇: Python的collections原来这么好用!
酸菜鱼编程
博客等级 码龄6年 155粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值