概率基础——多元正态分布

概率基础——多元正态分布

介绍

多元正态分布是统计学中一种重要的多维概率分布,描述了多个随机变量的联合分布。在多元正态分布中,每个随机变量都服从正态分布,且不同随机变量之间可能存在相关性。本文将以二元标准正态分布为例,介绍多元正态分布的理论和公式。

理论及公式

对于二元标准正态分布,假设随机变量 X X X Y Y Y都服从均值为0,方差为1的标准正态分布,并且随机变量 X X X Y Y Y之间的协方差为0。这意味着 X X X Y Y Y是相互独立的。其概率密度函数(PDF)为:

f ( x , y ) = 1 2 π e − x 2 + y 2 2 f(x,y) = \frac{1}{2\pi} e^{-\frac{x^2+y^2}{2}} f(x,y)=2π1e2x2+y2

其中, ( x , y ) (x, y) (x,y)表示二维平面上的一个点, π \pi π是圆周率。

对于 n n n 元标准正态分布,如果向量 Z Z Z由若干个遵从标准正态分布的独立通分布随机变量 Z 1 , Z 2 , … , Z n Z_1, Z_2, \ldots, Z_n Z1,Z2,,Zn组成,则向量 Z Z Z服从 n n n 元标准正态分布。

参数说明

在二元标准正态分布中,参数已经确定为均值为0,方差为1,并且协方差为0。这意味着随机变量 X X X Y Y Y之间不存在线性相关性,即它们是相互独立的。这些参数的设置使得二元标准正态分布的形状符合常见的二维高斯分布的特征。

Python实现

下面是使用Python绘制二元标准正态分布的示例代码:

import numpy as np
import matplotlib.pyplot as plt

mean = np.array([0, 0])
conv = np.array([[1, 0], [0, 1]])

x, y = np.random.multivariate_normal(mean, conv, size=5000).T

plt.figure(figsize=(10, 10))
plt.plot(x, y, 'bo', alpha=0.5)
plt.gca().axes.set_xlim(-4, 4)
plt.gca().axes.set_ylim(-4, 4)
plt.grid(ls='--')
plt.show()


在代码中,生成了均值为0,方差为1,随机变量间协方差为0的二元正态分布,随机变量X和Y,
一共生成了5000组样本,结果如图所示。
在这里插入图片描述

从图中可以发现,在均值点(此处对应原点)附近,样本出现的概率较高,远离均值点的地方样本出现的概率较低(此处设置的样本点透明度为0.2,颜色越深表示样本点个数越多),在中心附近概率密度最高,随着离中心点的距离增加,概率密度逐渐减小。

import numpy as np
import matplotlib.pyplot as plt

mean = np.array([0, 0])
conv_1 = np.array([[1, 0], [0, 1]])
conv_2 = np.array([[4, 0], [0, 0.25]])

x_1, y_1 = np.random.multivariate_normal(mean, conv_1, size=5000).T
x_2, y_2 = np.random.multivariate_normal(mean, conv_2, size=5000).T

plt.figure(figsize=(10, 10))
plt.plot(x_1, y_1, 'bo', alpha=0.05)
plt.plot(x_2, y_2, 'ro', alpha=0.05)
plt.gca().axes.set_xlim(-6, 6)
plt.gca().axes.set_ylim(-6, 6)
plt.grid(ls='--')
plt.show()

通过调整参数,可以逐渐将二元正态分布变换为二元一般正态分布,可以调整的参数主要由3个方面:

  1. 调整多个随机变量自身的均值,让样本整体在二维平面上进行平移;
  2. 调整随机变量X和Y的方差,当然此时还是保留它们互相之间彼此独立的关系,以下先观察一下样本图像的特点。
    与标准正态分布对照,
    在这里插入图片描述
  3. 保持随机变量的方差不变,通过改变协方差的值,来观察协方差的变换给随机变量间的相关特性带来的影响以及图像上的变换。
import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots(2, 2, figsize=(10, 5))
mean = np.array([0, 0])

conv_1 = np.array([[1, 0], [0, 1]])
conv_2 = np.array([[1, 0.3], [0.3, 1]])
conv_3 = np.array([[1, 0.85], [0.85, 1]])
conv_4 = np.array([[1, -0.85], [-0.85, 1]])

x_1, y_1 = np.random.multivariate_normal(mean, conv_1, size=5000).T
x_2, y_2 = np.random.multivariate_normal(mean, conv_2, size=5000).T
x_3, y_3 = np.random.multivariate_normal(mean, conv_3, size=5000).T
x_4, y_4 = np.random.multivariate_normal(mean, conv_4, size=5000).T

ax[0][0].plot(x_1, y_1, 'bo', alpha=0.5)
ax[0][1].plot(x_2, y_2, 'bo', alpha=0.5)
ax[1][0].plot(x_3, y_3, 'bo', alpha=0.5)
ax[1][1].plot(x_4, y_4, 'bo', alpha=0.5)

ax[0][0].grid(ls='--')
ax[0][1].grid(ls='--')
ax[1][0].grid(ls='--')
ax[1][1].grid(ls='--')

plt.show()

在这里插入图片描述
在代码中,生成了4组二元正态分布,其中第一组是作为对比的二元标准正态分布,第二组的协方差为0.3,第三组的协方差为0.85,第四组的协方差为-0.85。
与二元标准正态分布呈圆形相比,协方差不为0的二元正态分布呈现一定斜率的椭圆,且协方差越大,椭圆越窄;协方差为正和为负,椭圆的方向是相反的,对应于随机变量之间的正相关和负相关。

总结

本文介绍了多元正态分布及Python实现,叙述了每个随机变量都服从正态分布,且不同随机变量之间可能存在相关性的多元正态分布理论,并通过调整参数,将二元正态分布变换为二元一般正态分布。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PVLAN组网实验

一,PVLAN类型 主VLAN 主VLAN可以由多个辅助私用VLAN组成,而这些辅VLAN与主VLAN属于同一子网。 辅助VLAN ① 团体VLAN:如果某个端口属于团体VLAN,那么它就不仅能够与相同团体VLAN中的其他端口进行通信,而且还能够与…

【5G 接口协议】GTP-U协议介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

HTML~

HTML HTML是一门语言,所有的网页都是用HTML这门语言编写出来的HTML(HyperText Markup Language):超文本标记语言 超文本:超越了文本的限制,比普通文本更强大。除了文字信息,还可以定义图片、音频、视频等内容 标记语言:由标签构成的语言 …

SpringBoot源码解读与原理分析(三十八)SpringBoot整合WebFlux(一)WebFlux的自动装配

文章目录 前言第13章 SpringBoot整合WebFlux13.1 响应式编程与Reactor13.1.1 命令式与响应式13.1.2 异步非阻塞13.1.3 观察者模式13.1.4 响应性13.1.5 响应式流13.1.6 背压13.1.7 Reactor13.1.7.1 Publisher13.1.7.2 Subscriber13.1.7.3 Subscription13.1.7.4 Processor13.1.7.…

Python爬虫——解析常用三大方式之Xpath

目录 Xpath 安装xpath 安装lxml库 导入lxml库 解析本地文件 etree.parse() 解析服务器响应文件 etree.HTML() xpath基本语法 小案例:获取百度首页的百度一下 大案例:爬取站长素材图片 总结 Xpath 安装xpath 首先要学会安…

大模型(LLM)的量化技术Quantization原理学习

在自然语言处理领域,大型语言模型(LLM)在自然语言处理领域的应用越来越广泛。然而,随着模型规模的增大,计算和存储资源的需求也急剧增加。为了降低计算和存储开销,同时保持模型的性能,LLM大模型…

【排序算法】冒泡排序

目录 概述 冒泡排序原理 冒泡排序的Java实现 总结 概述 冒泡排序是一种简单但低效的排序算法。它重复地走访要排序的元素列,一次比较两个元素,如果它们的顺序错误就交换它们,直到没有元素需要交换。这个过程类似于气泡在水中上浮的过程&am…

开源模型Mistral 7B+Amazon SageMaker部署指南

一、Mistral 7B简述 Mistral AI 是一家总部位于法国的 AI 公司,其使命是将公开可用的模型提升至最先进的性能水平。他们专注于构建快速而安全的大型语言模型(LLM),此类模型可用于从聊天机器人到代码生成等各种任务。不久前其发布…

leetcode hot100 每日温度

在本题中,我们是通过单调栈来解决的,因为我们采用了栈的数据结构,并且,栈内存储的元素是单调的。 本题我们考虑,将气温数组元素的下标存入栈中,首先初始化要把0放入,0是下标的意思。然后我们拿…

谷歌seo推广哪里好优化?

大家都知道常规的SEO技巧,比如关键词优化、高质量的内容、外链建设之类的,这些是重点,但如果想锦上添花,我们可以尝试点不一样的 关注社区和参与论坛,这不仅是为了建立链接,更重要的是与目标群体建立连接&…

ZYNQ--MIG核配置

文章目录 MIG核配置界面多通道AXI读写DDR3MIG核配置界面 Clock Period: DDR3 芯片运行时钟周期,这个参数的范围和 FPGA 的芯片类型以及具体类型的速度等级有关。本实验选择 1250ps,对应 800M,这是本次实验所采用芯片可选的最大频率。注意这个时钟是 MIG IP 核产生,并输出给…

【Git】merge时报错:refusing to merge unrelated histories

文章目录 一、问题二、解决办法1、将feature分支的东西追加到master分支中2、将feature里的东西直接覆盖到master分支中 一、问题 今天将feature分支合并到master时报错:refusing to merge unrelated histories(拒绝合并无关历史) 报错原因&…

Python学习 day07(JSON)

JSON 各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型,而其他语言可能没有对应的字典,为了让不同的语言都能够相互通用的传递数据,JSON就是一种非常良好的中转数据格式,如下: JSON…

[线代]自用大纲

部分内容整理自张宇和网络 序 题型分布: 题型单题分值题目数量总分值选择题5315填空题515解答题12112 *一道大题可能用到六部分所有知识 矩阵 性质 k k k倍和乘积行列式 ∣ k A ∣ k n ∣ A ∣ |kA|k^n|A| ∣kA∣kn∣A∣ ∣ A B ∣ ≠ ∣ A ∣ ∣ B ∣ |AB|≠…

平台工程: 用Backstage构建开发者门户 - 2

本文介绍了如何使用开源Backstage构建自己的开发者门户,并基于此实践平台工程。本系列共两篇文章,这是第二篇。原文: Platform Engineering: Building Your Developer Portal with Backstage — Part 2 在本教程第一部分中我们了解了Backstage这个用于构…

【前端面试题5】利用 border 属性画一个三角形

举例1:利用 border 属性画一个三角形(小技巧) 完整代码如下: div{width: 0;height: 0;border: 50px solid transparent;border-top-color: red;border-bottom: none; }步骤如下: (1)当我们设…

手势识别应用介绍

目录 一、功能介绍 二、安装部署说明 2.1 文件目录说明 2.2 手势识别部分 一、功能介绍 这是一个通过摄像头捕获手势,根据不同的手势来做出不同操作的计算机程序。目前可以识别9种手势,可以根据识别到的手势,进行打开应用、增大音量、减小音量…

JProfiler 14 for Mac/win:Java开发者的性能分析利器

在Java开发的世界中,性能优化始终是一个不可忽视的议题。随着技术的不断进步,开发者对于工具的需求也日益增长。JProfiler 14,作为一款专为Java开发者设计的性能分析工具,无论是对于Mac用户还是Windows用户,都展现出了…

哈希表C++(Acwing)

代码&#xff1a; #include <iostream> #include <cstring>using namespace std;const int N 100003;int h[N], e[N], ne[N], idx;void insert(int x) {int k (x % N N) % N;//哈希,保证取模后为正数e[idx] x;ne[idx] h[k];h[k] idx; }bool find(int x) {in…

MySQL 常用优化方式

MySQL 常用优化方式 sql 书写顺序与执行顺序SQL设计优化使用索引避免索引失效分析慢查询合理使用子查询和临时表列相关使用 日常SQL优化场景limit语句隐式类型转换嵌套子查询混合排序查询重写 sql 书写顺序与执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM &…