如何在Python中绘制置信区间?

2024-01-31 19:12
文章标签 python 绘制 置信区间

本文主要是介绍如何在Python中绘制置信区间?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

置信区间是从观测数据的统计量计算的一种估计值,它给出了一个可能包含具有特定置信水平的总体参数的值范围。

平均值的置信区间是总体平均值可能位于其间的值的范围。如果我预测明天的天气在零下100度到+100度之间,我可以100%肯定这是正确的。然而,如果我预测温度在20.4到20.5摄氏度之间,我就不那么有信心了。注意置信度如何随着区间的减小而减小。这同样适用于统计置信区间,但它们也依赖于其他因素。

一个95%的置信区间,会告诉我,如果我们从我的总体中取无限多个样本,每次计算区间,那么在95%的区间中,区间将包含真正的总体均值。因此,对于一个样本,我们可以计算样本均值,并从中得到一个区间,该区间最有可能包含真实的总体均值。

在这里插入图片描述
置信区间(Confidence Interval)的概念是由Jerzy Neyman在1937年发表的一篇论文中提出的。置信区间有多种类型,最常用的是:平均值CI,中位数CI,平均值差异CI,比例CI和比例差异CI。

使用linepot()计算给定底层分布的CI

Seaborn中提供的lineplot()函数是一个Python数据可视化库,它最适合显示一段时间内的趋势,但它也有助于绘制置信区间。

sns.lineplot(x=None, y=None, hue=None, size=None, style=None, data=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None, size_norm=None, dashes=True, markers=None, style_order=None, units=None, estimator=’mean’, ci=95, n_boot=1000, sort=True, err_style=’band’, err_kws=None, legend=’brief’, ax=None, **kwargs,)

默认情况下,该图在每个x值处聚合多个y值,并显示集中趋势的估计值和该估计值的置信区间。

示例

# import libraries 
import numpy as np 
import seaborn as sns 
import matplotlib.pyplot as plt # generate random data 
np.random.seed(0) 
x = np.random.randint(0, 30, 100) 
y = x+np.random.normal(0, 1, 100) # create lineplot 
ax = sns.lineplot(x, y)

在上面的代码中,变量x将存储从0(含)到30(不含)的100个随机整数,变量y将存储来自高斯(正态)分布的100个样本,该分布以0为中心,扩展/标准偏差为1。NumPy操作通常在逐个元素的基础上对数组对进行。在最简单的情况下,两个数组必须具有完全相同的形状,如上面的示例所示。最后,在seaborn库的帮助下创建一个默认为95%置信区间的线图。置信区间可以很容易地通过改变位于[0,100]范围内的参数“ci”的值来改变,这里我没有传递这个参数,因此它认为默认值为95。

在这里插入图片描述
浅蓝色阴影表示该点周围的置信水平,如果置信度较高,则阴影线将更粗。

使用regplot()计算给定底层分布CI

seaborn.regplot()帮助绘制数据和线性回归模型拟合。此功能还允许绘制置信区间。

seaborn.regplot( x, y, data=None, x_estimator=None, x_bins=None, x_ci=’ci’, scatter=True, fit_reg=True, ci=95, n_boot=1000, units=None, order=1, logistic=False, lowess=False, robust=False, logx=False, x_partial=None, y_partial=None, truncate=False, dropna=True, x_jitter=None, y_jitter=None, label=None, color=None, marker=’o’, scatter_kws=None, line_kws=None, ax=None)

基本上,它包括散点图中的回归线,并有助于查看两个变量之间的任何线性关系。下面的例子将展示如何使用它来绘制置信区间。

# import libraries 
import numpy as np 
import seaborn as sns 
import matplotlib.pyplot as plt # create random data 
np.random.seed(0) 
x = np.random.randint(0, 10, 10) 
y = x+np.random.normal(0, 1, 10) # create regression plot 
ax = sns.regplot(x, y, ci=80)

regplot()函数的工作方式与lineplot()相同,默认情况下置信区间为95%。置信区间可以通过改变位于[0,100]范围内的参数“ci”的值来容易地改变。这里我传递了ci=80,这意味着绘制的置信区间不是默认的95%,而是80%。

在这里插入图片描述
淡蓝色阴影的宽度表示回归线周围的置信水平。

使用Bootstrapping计算CI

Bootstrapping是一种使用随机抽样和替换的测试/度量。它给出了准确性的度量(偏差、方差、置信区间、预测误差等)抽样估计。它允许使用随机抽样方法估计大多数统计量的抽样分布。它也可以用于构建假设检验。

# import libraries 
import pandas 
import numpy 
from sklearn.utils import resample 
from sklearn.metrics import accuracy_score 
from matplotlib import pyplot as plt # load dataset 
x = numpy.array([180,162,158,172,168,150,171,183,165,176]) # configure bootstrap 
n_iterations = 1000 # here k=no. of bootstrapped samples 
n_size = int(len(x)) # run bootstrap 
medians = list() 
for i in range(n_iterations): s = resample(x, n_samples=n_size); m = numpy.median(s); medians.append(m) # plot scores 
plt.hist(medians) 
plt.show() # confidence intervals 
alpha = 0.95
p = ((1.0-alpha)/2.0) * 100
lower = numpy.percentile(medians, p) 
p = (alpha+((1.0-alpha)/2.0)) * 100
upper = numpy.percentile(medians, p) print(f"\n{alpha*100} confidence interval {lower} and {upper}")

导入所有必要的库后,创建一个大小为n=10的样本S,并将其存储在变量x中。使用简单的循环生成1000个样本(=k),每个样本大小m=10(因为m<=n)。这些样本称为bootstrapped样本。计算它们的中位数并将其存储在列表“medians”中。借助matplotlib库绘制1000个bootstrapped样本的中位数直方图,并使用样本统计量的公式置信区间计算基于样本数据计算的指定置信水平下统计量总体值的上限和下限。

在这里插入图片描述

这篇关于如何在Python中绘制置信区间?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/664778

相关文章

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

基于Python打造一个可视化FTP服务器

《基于Python打造一个可视化FTP服务器》在日常办公和团队协作中,文件共享是一个不可或缺的需求,所以本文将使用Python+Tkinter+pyftpdlib开发一款可视化FTP服务器,有需要的小... 目录1. 概述2. 功能介绍3. 如何使用4. 代码解析5. 运行效果6.相关源码7. 总结与展望1

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整