关于一维,二维正态分布的绘制

绘制一维正态分布代码

% 给定的均值和标准差  
mu = 0; % 例如,你可以改变这个值  
sigma = 1; % 例如,你可以改变这个值  
  
% 定义x的范围(例如,从mu-3*sigma到mu+3*sigma,步长为0.1)  
x = mu - 3*sigma:0.1:mu + 3*sigma;  
  
% 计算正态分布的PDF值  
y = normpdf(x, mu, sigma);  
  
% 绘制图形  
figure; % 创建一个新的图形窗口  
plot(x, y, 'LineWidth', 2); % 绘制PDF图像  
grid on; % 添加网格线  
xlabel('x'); % x轴标签  
ylabel('f(x)'); % y轴标签  
title(['服从X~N(', num2str(mu), ',', num2str(sigma), ')的正态分布']); % 标题,包含mu和sigma值  
  
% 如果需要,可以添加正态分布曲线下的阴影部分来表示概率  
hold on; % 保持当前图形  
fill([x(1), x, x(end)], [0, y, 0], 'r'); % 填充阴影部分  
hold off; % 释放图形

计算二维正态分布联合概率密度

二维正态分布的概率密度函数(PDF)可以用两个一维正态分布的随机变量 X X X Y Y Y 的均值 μ X , μ Y \mu_X, \mu_Y μX,μY,标准差 σ X , σ Y \sigma_X, \sigma_Y σX,σY,以及它们之间的相关系数 ρ \rho ρ 来表示。相关系数 ρ \rho ρ 是协方差 Cov ( X , Y ) \text{Cov}(X,Y) Cov(X,Y) 和两个随机变量标准差的乘积的比值,即 ρ = Cov ( X , Y ) σ X σ Y \rho = \frac{\text{Cov}(X,Y)}{\sigma_X \sigma_Y} ρ=σXσYCov(X,Y),其值范围在 [ − 1 , 1 ] [-1, 1] [1,1] 之间。

对于二维正态分布,其联合概率密度函数 f ( x , y ) f(x,y) f(x,y) 可以写作:

f ( x , y ) = 1 2 π σ X σ Y 1 − ρ 2 exp ⁡ ( − 1 2 ( 1 − ρ 2 ) [ ( x − μ X σ X ) 2 − 2 ρ ( x − μ X σ X ) ( y − μ Y σ Y ) + ( y − μ Y σ Y ) 2 ] ) f(x,y) = \frac{1}{2\pi\sigma_X\sigma_Y\sqrt{1-\rho^2}} \exp\left(-\frac{1}{2(1-\rho^2)}\left[\left(\frac{x-\mu_X}{\sigma_X}\right)^2 - 2\rho\left(\frac{x-\mu_X}{\sigma_X}\right)\left(\frac{y-\mu_Y}{\sigma_Y}\right) + \left(\frac{y-\mu_Y}{\sigma_Y}\right)^2\right]\right) f(x,y)=2πσXσY1ρ2 1exp(2(1ρ2)1[(σXxμX)22ρ(σXxμX)(σYyμY)+(σYyμY)2])

这里, exp ⁡ \exp exp 表示自然指数函数。这个公式体现了 X X X Y Y Y 之间的线性关系强度和方向,由相关系数 ρ \rho ρ 控制。当 ρ = 0 \rho = 0 ρ=0 时, X X X Y Y Y 是独立的,其联合分布可以分解为各自边际分布的乘积;当 ρ = 1 \rho = 1 ρ=1 ρ = − 1 \rho = -1 ρ=1 时,表明 X X X Y Y Y 完全正相关或完全负相关,即一个变量的增加(减少)总是伴随着另一个变量按确定比例的增加(减少)。通过调整 ρ \rho ρ,可以在保持各自分布形态不变的情况下,描述两个随机变量之间不同的依赖关系。
绘制二维正态分布代码如下

% 定义二维正态分布的均值向量和协方差矩阵  
mu = [0 0]; % 均值向量  
Sigma = [1 0.5; 0.5 2]; % 协方差矩阵  
  
% 定义x和y的范围和步长  
[x, y] = meshgrid(-5:0.1:5, -5:0.1:5); % 创建一个网格  
  
% 使用mvnpdf函数计算二维正态分布的PDF值  
z = mvnpdf([x(:) y(:)], mu, Sigma);  
  
% 将z重新塑形为与x和y相同的维度  
z = reshape(z, size(x));  
  
% 使用surf函数绘制三维图像  
figure;  
surf(x, y, z);  
xlabel('X');  
ylabel('Y');  
zlabel('Probability Density');  
title('Two-dimensional Normal Distribution');  
  
% 使用contour函数绘制等高线图  
figure;  
contour(x, y, z);  
xlabel('X');  
ylabel('Y');  
title('Contour Plot of Two-dimensional Normal Distribution');

这里的协方差矩阵为
( σ X 2 ρ σ X σ Y ρ σ X σ Y σ Y 2 ) \left( \begin{matrix} \sigma _{X}^{2}& \rho \sigma _X\sigma _Y\\ \rho \sigma _X\sigma _Y& \sigma _{Y}^{2}\\ \end{matrix} \right) (σX2ρσXσYρσXσYσY2)
效果如下
概率分布
等高线图

若要算某一点的概率密度,代码如下

% 给定参数
mu_X = 0; mu_Y = 0; sigma_X = 1; sigma_Y = 1; rho = 0.5;
x = 1; y = 1;

% 计算概率密度
pdf_value = bivariateNormalPDF(x, y, mu_X, mu_Y, sigma_X, sigma_Y, rho);

fprintf('在点 (%.2f, %.2f) 处的概率密度为: %.4f\n', x, y, pdf_value);
function pdf_val = bivariateNormalPDF(x, y, mu_X, mu_Y, sigma_X, sigma_Y, rho)
    % 计算标准化变量
    z_X = (x - mu_X) / sigma_X;
    z_Y = (y - mu_Y) / sigma_Y;
    
    % 计算概率密度函数的值
    exponent = -(1/(2*(1-rho^2))) * (z_X^2 - 2*rho*z_X*z_Y + z_Y^2);
    normalization_constant = 1 / (2*pi*sigma_X*sigma_Y*sqrt(1-rho^2));
    pdf_val = normalization_constant * exp(exponent);
end

本文采用AI辅助创作

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bhZ567

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值