绘制一维正态分布代码
% 给定的均值和标准差
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−ρ21exp(−2(1−ρ2)1[(σXx−μX)2−2ρ(σ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辅助创作