正态分布联合密度分布概率函数以及微积分编程代码用jupyter实现
时间: 2024-09-07 10:05:05 浏览: 71
正态分布(也称高斯分布)是一种连续概率分布,其联合密度分布的概率密度函数(PDF)可以用公式表示:
对于二维正态分布 (X,Y),其联合概率密度函数(Joint Probability Density Function, JPDF)可以写作:
\[ f(X,Y) = \frac{1}{2\pi\sigma_X\sigma_Y\sqrt{1-\rho^2}} e^{-\frac{1}{2(1-\rho^2)} [(X-\mu_X)^2/\sigma_X^2 - 2\rho(X-\mu_X)(Y-\mu_Y)/(\sigma_X\sigma_Y) + (Y-\mu_Y)^2/\sigma_Y^2]} \]
其中,\( \mu_X \), \( \mu_Y \) 是均值,\( \sigma_X \), \( \sigma_Y \) 是标准差,而 \( \rho \) 是两个变量之间的相关系数。
在Jupyter Notebook中,你可以使用`scipy.stats.multivariate_normal`库来计算正态分布的联合概率。以下是一个简单示例:
```python
import numpy as np
from scipy.stats import multivariate_normal as mvn
import seaborn as sns
import matplotlib.pyplot as plt
# 参数设置
mean = [0, 0] # 均值
covariance = [[1, 0.5], [0.5, 1]] # 协方差矩阵
correlation = covariance[0][1] / np.sqrt(covariance[0][0] * covariance[1][1]) # 相关系数
# 创建数据网格
x, y = np.mgrid[-3:3:.01, -3:3:.01]
pos = np.empty(x.shape + (2,))
pos[:, :, 0] = x
pos[:, :, 1] = y
# 计算概率密度
rv = mvn(mean=mean, cov=covariance)
density = rv.pdf(pos)
# 绘制概率密度图
plt.figure(figsize=(8, 6))
sns.heatmap(density.T, cmap="Blues", annot=True, cbar=False,
linewidths=.5, square=True, xticklabels=np.arange(-3, 3.1),
yticklabels=np.arange(-3, 3.1))
plt.xlabel('X')
plt.ylabel('Y')
plt.title(r'Joint PDF of Normal Distribution with $\rho$ = {:.2f}'.format(correlation))
plt.show()
```
这个代码会生成一个二维热力图,展示指定正态分布下的联合概率密度。
阅读全文