如何在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常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1