大家好,欢迎来到IT知识分享网。
1. 什么是概率密度
概率密度到底在表达什么?
外卖在20-40分钟内送达的概率
随机变量落在[20,40]之间的概率。下图中,对总面积做规范化处理,令总面积=1, f ( x ) f(x) f(x)则成为概率密度。
所谓概率密度,是经过了规范化(令总面积为1)之后,所得到的一个函数。经过规范化后,此时,概率密度就成了帮助我们计算概率的工具。
若要计算某变量落在一个区间的概率,就可以直接拿 f ( x ) f(x) f(x)在相应的区间做积分就可以了。因为已经让总面积为1,所以只求阴影部分的面积就可以了。
由联合概率密度求概率
联合概率密度投影
由下图TI和alp2的联合概率密度,怎么求单变量概率密度(截面的感觉)
# 筛选 DataFrame 以仅包含 TI 和 alp2 都不为 null 的行 filtered_data = df[['TI', 'alp2']].dropna() # Extract the filtered data for plotting ti_data = filtered_data['TI'] alp2_data = filtered_data['alp2'] # Create a meshgrid for the 3D plot x = np.linspace(ti_data.min(), ti_data.max(), 100) y = np.linspace(alp2_data.min(), alp2_data.max(), 100) X, Y = np.meshgrid(x, y) positions = np.vstack([X.ravel(), Y.ravel()]) # 计算核密度估计值 values = np.vstack([ti_data, alp2_data]) kernel = gaussian_kde(values) Z = np.reshape(kernel(positions).T, X.shape) # 绘制 3D 表面 fig = plt.figure(figsize=(12, 8)) ax = fig.add_subplot(111, projection='3d') ax.plot_surface(X, Y, Z, cmap='viridis', edgecolor='none') ax.set_xlabel('TI (湍流)') ax.set_ylabel('alp2 (风切变)') ax.set_zlabel('Density') ax.set_title('TI和alp2的联合概率密度函数的三维图') plt.show()
从联合概率密度函数中求出单变量概率密度函数,可以通过对另一个变量进行积分来实现。这相当于在联合概率密度曲面上进行“投影”。具体来说,如果我们有联合概率密度函数 f ( x , y ) f(x, y) f(x,y),那么变量 X X X 的边缘概率密度函数 f X ( x ) f_X(x) fX(x)可以通过以下方式获得:
f X ( x ) = ∫ − ∞ ∞ f ( x , y ) d y f_X(x) = \int_{-\infty}^{\infty} f(x, y) \, dy fX(x)=∫−∞∞f(x,y)dy
同样地,变量 (Y) 的边缘概率密度函数 f Y ( y ) f_Y(y) fY(y) 可以通过以下方式获得:
f Y ( y ) = ∫ − ∞ ∞ f ( x , y ) d x f_Y(y) = \int_{-\infty}^{\infty} f(x, y) \, dx fY(y)=∫−∞∞f(x,y)dx
在实际操作中,我们可以对计算出的联合概率密度函数进行数值积分来得到边缘概率密度函数。
下面是一个Python示例代码,演示如何通过数值积分从联合概率密度函数中求出单变量的概率密度函数:
from scipy.integrate import simps # Integrate over the y-axis to get the marginal density for TI marginal_ti_density = simps(Z, y, axis=0) # Integrate over the x-axis to get the marginal density for alp2 marginal_alp2_density = simps(Z, x, axis=1) # Plot the marginal densities fig, ax = plt.subplots(1, 2, figsize=(12, 6)) # Plot marginal density for TI ax[0].plot(x, marginal_ti_density, label='TI (湍流)') ax[0].set_xlabel('TI (湍流)') ax[0].set_ylabel('Density') ax[0].set_title('TI的边缘概率密度函数') ax[0].legend() # Plot marginal density for alp2 ax[1].plot(y, marginal_alp2_density, label='alp2 (风切变)') ax[1].set_xlabel('alp2 (风切变)') ax[1].set_ylabel('Density') ax[1].set_title('alp2的边缘概率密度函数') ax[1].legend() plt.tight_layout() plt.show()
在这个代码中:
simps
函数用于对联合概率密度Z
进行数值积分。- 第一个积分计算的是
TI
的边缘概率密度,第二个积分计算的是alp2
的边缘概率密度。 - 最后,我们将边缘概率密度函数绘制出来。
请注意,这个示例假设已经计算出了联合概率密度函数 Z
,并且 x
和 y
是相应的网格点。完整的代码需要结合前面的联合概率密度计算部分一起运行。
参考链接
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121491.html