【概率统计】如何理解概率密度函数及核密度估计

news2024/12/27 12:24:09

文章目录

    • 概念回顾
    • 浅析概率密度函数
      • 概率值为0?
      • PDF值大于1?
      • 一个栗子
    • 核密度估计
      • 如何理解核密度估计
      • 核密度估计的应用
    • 总结

概念回顾

  1. 直方图(Histogram):直方图是最直观的一种方法,它通过把数据划分为若干个区间,并统计每个区间的数据个数,从而得到每个区间的频数。这样就形成了一个个的矩形,高度代表频数,宽度代表区间,面积代表数据量。但是直方图的缺点是对区间的选择敏感,不同的区间选择会得到不同的图形。

  2. 分布函数(Distribution function):分布函数通常是指累积分布函数,它表示随机变量小于等于某个值的概率。分布函数是非递减的,且在负无穷处值为0,在正无穷处值为1。然而,分布函数并非直观,数据的分布形状可能并不容易从中看出。

  3. 概率密度函数(Probability Density Function, PDF):概率密度函数是连续随机变量的分布函数的导数。它的值在任何单点上都可能大于1,但其在整个定义域上的积分(即面积)等于1。概率密度函数可以直观地反映出随机变量在各个取值上的可能性大小。

  4. 核密度函数(Kernel Density Function, KDF):核密度函数是核密度估计中所使用的核函数,常见的如高斯核函数、Epanechnikov核函数等。在核密度估计中,每一个数据点都会放置一个核函数,然后这些核函数会被叠加起来,得到一个平滑的概率密度估计。

  5. 核密度估计(Kernel Density Estimation, KDE):核密度估计是一种非参数的概率密度估计方法。它通过在每个观测数据点处放置一个核函数(即平滑函数),然后把这些核函数叠加起来,从而获得一个平滑的估计。相比于直方图,核密度估计可以得到更为平滑的密度曲线。

浅析概率密度函数

概率值为0?

PDF描述了一个连续随机变量在某个特定值上的可能性。但是,对于连续随机变量来说,取任何特定的一个值其概率本身都是0,**所以我们说PDF在某个点的值,实际上是表示随机变量落在这个点附近非常小的区间内的概率。**这是因为对于连续型随机变量来说,其取值范围是连续的,理论上可以取到无穷多个值。因此,任何一个具体的值被取到的概率都是无穷小的,可以视为0。

以一个简单的例子来说明,假设我们有一个从0到1均匀分布的连续随机变量,那么它可以取到任何在0到1之间的实数。那么它取到0.5的概率是多少呢?因为在0和1之间有无穷多个实数,所以取到0.5的概率就是1除以无穷大,即0。

尽管如此,我们仍然可以使用概率密度函数来描述连续随机变量在某个值附近的可能性。比如在上面的例子中,虽然取到0.5的概率为0,但是我们可以说在0.5附近(比如在0.499和0.501之间)取到值的概率是0.002。这个概率是通过PDF计算的。

PDF值大于1?

当我们说PDF的值在某个单点上可能大于1时,这个“大于1”是指的PDF的函数值,而不是概率。**对于连续随机变量的PDF,它的值并不直接代表概率,而是概率密度。**比如说,如果概率密度函数(PDF)在某点的值为2,那么这个2并不直接表示概率为2,而是表示单位长度(或者说,非常小的区间)内的概率密度为2。这个值越大,表示随机变量落在这个位置的可能性越大。但这并不意味着PDF的值就是概率,真正的概率是通过在某个区间内积分PDF得到的。

而当我们说PDF在其定义域上的积分(即面积)等于1时,这是因为所有可能的事件(也就是所有的小区间)的概率之和必须等于1。这个面积,就是把所有小区间的概率都加起来,所以必须等于1。所以,尽管PDF在某个单点上的值可能大于1,但是当你把所有的点(也就是所有的可能事件)都考虑进去后,总的概率还是1。

一个栗子

进一步,可以通过一个简单的例子来理解。假设我们有一组数据,它们服从标准正态分布(也就是均值为0,标准差为1的正态分布)。

首先,我们可以画出这个正态分布的概率密度函数。demo如下:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

x = np.linspace(-5, 5, 100)
y = norm.pdf(x, 0, 1)

plt.plot(x, y)
plt.title('Probability Density Function of Standard Normal Distribution')
plt.xlabel('x')
plt.ylabel('PDF')
plt.grid(True)
plt.show()

运行这段代码后将会画出一个标准的正态分布曲线。可以看到,曲线在x=0的地方达到最高点,大约为0.4。但这并不意味着x=0的概率为0.4,而是表示在x=0附近的概率密度最高。

然后,我们可以计算PDF在整个定义域(这里是[-5, 5])上的积分,也就是面积:

area = np.sum(y) * (x[1] - x[0])
print(area)  # 输出:1.0

运行这段代码后计算的是所有小区间(这里是100个点之间的小区间)的概率之和,结果应该接近1(由于数值计算的精度问题,可能不会完全等于1,但应该非常接近1)。

核密度估计

核密度估计是一种非参数的统计方法,用于估计连续随机变量的概率密度函数。也就是说,它不需要对数据的分布形状做出任何假设,这使得核密度估计能够适应各种不同的数据分布,从有限的样本中估计出整体的概率密度函数。

另外,核密度估计可以被看作是直方图平滑的一种方式,它在每个数据点位置放置一个以该点为中心的"核"(通常是正态分布形状),然后将所有核加起来并进行归一化,得到一个平滑的、连续的概率密度估计。

需要注意的是:核密度估计的结果不依赖于区间的划分,而是依赖于核的形状和宽度(即带宽)。带宽过小可能会导致过拟合,即在数据点位置有过高的峰值,而在数据点之间则几乎为0;带宽过大则可能会导致估计过于平滑,无法捕捉到数据的真实分布。

如何理解核密度估计

大数定律告诉我们,随着样本数量的增加,样本的平均值会趋近于总体的期望值。中心极限定理告诉我们,大量独立随机变量的和(或者平均值)会服从正态分布。而在核密度估计中,我们就是在每个数据点位置放置一个正态分布,然后将这些正态分布加起来并进行归一化,得到的便是一个平滑的、连续的概率密度估计。

可以这么理解,假设我们有一些数据点,它们分布在一条直线上。如果我们在每个点上都放置一个小山丘(正态分布可以看成是山丘的形状),然后将这些山丘叠加起来,我们就得到了一个连续的地形。这个地形就反映了数据的分布特征。山丘越高,说明数据在这个位置的密度越高,也就是说在这个位置附近取到值的概率越高。

进一步,以下代码展示了如何使用seaborn库进行核密度估计及核函数叠加过程:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

from scipy import stats
from scipy.stats import norm


mu = 0
sigma = 1

# 创建一个x轴上的点集
x = np.linspace(mu - 6*sigma, mu + 6*sigma, 100)
# 画出标准正态分布
plt.plot(x, stats.norm.pdf(x, mu, sigma))

data = np.array([1, 2, 2, 2, 3, 3, 4, 4, 4, 4])
# 画出直方图
plt.hist(data, bins=4, density=True, alpha=0.5)
# 画出核密度估计曲线
sns.kdeplot(data, color='b')


# 在每一个数据点的位置上放一个正态分布,然后将它们叠加
total = np.zeros(len(x))
for point in data:
    total += norm.pdf(x, point, 1)  # 这里1是正态分布的标准差

total /= len(data)
# 画出叠加后的核密度估计曲线
plt.plot(x, total, color='r')
plt.show()

在这里插入图片描述

可以看出核密度估计的步骤:

  1. 选择一个核函数,通常可以选择正态分布函数。
  2. 在每个数据点的位置放置一个以该点为中心的核。
  3. 将所有的核叠加起来,并进行归一化,使得得到的函数在全体实数上的积分为1,这样就得到了一个平滑的、连续的概率密度估计。

核密度估计的应用

  1. 数据分析:核密度估计是数据分析中非常重要的工具,它可以用于数据的平滑处理,提供数据的概率分布信息,使得数据更加平滑,更便于分析。

  2. 图像处理:在图像处理中,核密度估计可以用于图像的平滑处理,消除图像中的噪声。同时,还可以用于图像的分割和边缘检测。

  3. 机器学习:在机器学习中,核密度估计是一种重要的非参数学习方法。它可以用于分类、聚类、异常检测等任务。

  4. 信号处理:在信号处理中,核密度估计可以用于信号的平滑处理,提高信号处理的准确性。

  5. 生物信息学:在生物信息学中,核密度估计可以用于基因表达数据的分析,帮助研究者更好地理解基因的功能。

  6. 金融:在金融领域,核密度估计可以用于估计金融资产的价格分布,帮助投资者做出更好的投资决策。

  7. 地理信息系统:在地理信息系统中,核密度估计可以用于空间数据的分析,例如人口分布、犯罪率等。

  8. 医学:在医学领域,核密度估计可以用于疾病的早期检测和预后评估

总结

直方图、分布函数、概率密度函数和核密度函数都是描述数据分布特性的工具或技术,它们之间有一定的联系和区别。

  1. 直方图是一种最简单的对数据分布进行可视化的方法,但它对数据的划分方式(即箱宽)比较敏感,不同的划分方式可能会得到完全不同的图像。

  2. 分布函数(一般指累积分布函数)给出了随机变量取值小于等于某个数的概率。在连续的情况下,分布函数的导数就是概率密度函数。

  3. 概率密度函数给出了随机变量落在某个小区间内的概率。直方图可以看作是对概率密度函数的一种简单粗糙的估计。

  4. 核密度估计则是一种更为精细的对概率密度函数的估计。它通过在每个数据点处放置一个核函数(类似于一个“平滑”的直方图),然后将这些核函数叠加起来,从而得到一个平滑的估计。

所以,这四者可以看作是从不同角度、不同精度去描述数据分布特性的方法。从直方图到核密度函数,描述的越来越精细;从分布函数到概率密度函数,描述的越来越具体。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LINUX 嵌入式C编程--信号编程

基本概念 信号是事件发生时对进程的通知机制,也可以把它称为软件中断。信号与硬件中断的相似之处在于能够打断程序当前执行的正常流程,其实是在软件层次上对中断机制的一种模拟。信号提供了一种处理异步事件的方法。 信号目的 **信号的目的是用来通信…

基于深度学习的肺炎CT图像检测诊断系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习在肺炎CT图像检测诊断方面具有广泛的应用前景。以下是关于肺炎CT图像检测诊断系统的介绍: 任务…

正确理解MySQL的MVCC及实现原理

!首先声明,MySQL 的测试环境是 5.7 MVCC是MySQL实现RC(读已提交)、RR(可重复读)隔离级别的原理之一。 前提概要 什么是 MVCC 什么是当前读和快照读? 当前读,快照读和 MVCC 的关系 MVCC 实现原理 隐式字段 undo日志 Read Vie…

【linux】信号——信号保存+信号处理

信号保存信号处理 1.信号保存1.1信号其他相关概念1.2信号在内核中的表示 2.信号处理2.1信号的捕捉流程2.2sigset_t2.3信号集操作函数2.4实操2.5捕捉信号的方法 3.可重入函数4.volatile5.SIGCHLD信号 自我名言:只有努力,才能追逐梦想,只有努力…

C/C++---------------LeetCode第876. 链表的中间结点

链表的中间结点 题目及要求双指针在main内使用 题目及要求 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 示例 2: 双指针 思路:分别定义快慢指针…

2023.11.30 关于 MyBatis 动态 SQL 的使用

目录 引言 if 标签 trim 标签 where 标签 set 标签 foreach 标签 引言 动态 sql 是 MyBatis 的强大特性之一允许你根据输入的参数动态地构建 sql 语句从而在运行时根据不同的条件生成不同的 sql 核心思想 基于提供的数据和条件,能够修改、增加、删除 sql…

canvas 凸包效果

前言 微信公众号:前端不只是切图 代码运行的最终效果在文章最后 什么是凸包 本篇文章主要阐述如何在canvas上实现凸包的效果,我们先来看看下什么是凸包,先上附图 从上面的图可以看出,图中的内容包含点p0-点p12,而红框部…

企业网盘在医疗行业资料管理中的应用与优势

随着企业网盘的广泛应用,医疗行业正逐渐实现资料安全存储和智能化管理。海量应用的推动下,医院管理正朝着线上化、智能化发展迈进。然而,医疗行业仍面临着诸多挑战。 医疗行业的痛点在于病例、档案、药品资料繁多且保存周期长。这些资料的整理…

读书笔记:《Effective Modern C++(C++14)》

Effective Modern C(C14) GitHub - CnTransGroup/EffectiveModernCppChinese: 《Effective Modern C》- 完成翻译 Deducing Types 模版类型推导: 引用,const,volatile被忽略数组名和函数名退化为指针通用引用&#…

抓取检测(Grasp Dection)

抓取检测 抓取检测被定义为能够识别任何给定图像中物体的抓取点或抓取姿势。抓取策略应确保对新物体的稳定性、任务兼容性和适应性,抓取质量可通过物体上接触点的位置和手的配置来测量。为了掌握一个新的对象,完成以下任务,有分析方法和经验…

第二十二章 指定元素和属性的命名空间 - 指定被视为Global元素的对象的命名空间

文章目录 第二十二章 指定元素和属性的命名空间 - 指定被视为Global元素的对象的命名空间指定被视为Global元素的对象的命名空间指定映射为元素的属性的命名空间案例1:属性被视为本地元素案例2:属性被视为Global元素 第二十二章 指定元素和属性的命名空间 - 指定被视…

以热爱的态度对待生活,就是最自己的温柔

粉色系拼接款羽绒服 90白鸭绒+连帽立领设计 防风又保暖,柔软蓬松舒适感十足 衣服上加了时尚的字母印花元素 袖口做了魔术贴设计 下摆也做了可调节抽绳 防风保暖五部做到实处哦 宽松版型,很耐穿保暖性又很强 简单大方,搭配…

Filebeat使用指南

Filebeat介绍主要优势主要功能配置日志的解析Kibana中设置日志解析安装步骤安装Filebeat安装监控通过prometheus监控 Filebeat和Logstash的主要区别 Filebeat介绍 Filebeat是使用Golang实现的轻量型日志采集器,也是Elasticsearch stack的一员。它可以作为一个agent…

自定义Vue的DockPanel-Layout

创作来源 1、在vue项目中需要有停靠、浮动、面板布局等需求,如arcgis的界面布局 2、在npm中搜索了关于vue的docklayout组件,搜索后就一个组件imengyu/vue-dock-layout,截图如下,该组件没有停靠组件,没有浮动组件&…

python etree.HTML 以及xpath 解析网页的工具

文章目录 导入模块相关语法实战 导入模块 from lxml import etree相关语法 XPath(XML Path Language)是一种用于在XML文档中定位和选择元素的语言。XPath的主要应用领域是在XML文档中进行导航和查询,通常用于在XML中选择节点或节点集合。以…

C++模版

文章目录 C模版1、泛型编程2、函数模版2.1、函数模版概念2.2、函数模版格式2.3、函数模版原理2.4、函数模版的实例化2.5、模板参数的匹配原则 3、类模版3.1、类模版概念3.2、类模版格式3.3、类模板的实例化 C模版 1、泛型编程 泛型编程(Generic Programming&#x…

华清远见嵌入式学习——C++——作业4

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;class Stu {friend const Stu operator*(const Stu &L,const Stu &R);friend bool operator<(const Stu &L,const Stu &R);friend Stu operator-(Stu &L,const S…

2022年高校大数据挑战赛A题工业机械设备故障预测求解全过程论文及程序

2022年高校大数据挑战赛 A题 工业机械设备故障预测 原题再现&#xff1a; 制造业是国民经济的主体&#xff0c;近十年来&#xff0c;嫦娥探月、祝融探火、北斗组网&#xff0c;一大批重大标志性创新成果引领中国制造业不断攀上新高度。作为制造业的核心&#xff0c;机械设备在…

KEPserver和S7-200SMART PLC通信配置

KEPserver和S7-1200PLC通信配置,请查看下面文章链接: https://rxxw-control.blog.csdn.net/article/details/134683670https://rxxw-control.blog.csdn.net/article/details/134683670 1、OPC通信应用 2、选择Siemens驱动 3、添加S7-200设备

百度/抖音/小红书/微信搜索品牌形象优化怎么做?

搜索口碑是网络营销不可或缺的一部分&#xff0c;企业如何做好品牌搜索口碑优化呢&#xff1f;小马识途营销顾问建议从以下几方面入手。 1. 通过关键字优化提高自身知名度 通过对竞争对手和目标客户的关键字进行分析&#xff0c;企业可以确定哪些关键字可以提高自身品牌知名度。…