gpt4 book ai didi

Python - 从 numpy 数组分布计算 pdf

转载 作者:行者123 更新时间:2023-12-05 09:18:08 24 4
gpt4 key购买 nike

给定一个值数组,我希望能够为其拟合密度函数并找到任意输入值的 pdf。这可能吗,我该怎么做?不一定有正常的假设,我不需要函数本身。

例如,给定:

x = array([ 0.62529759, -0.08202699,  0.59220673, -0.09074541,  0.05517865,
0.20153703, 0.22773723, -0.26229708, 0.76137555, -0.61229314,
0.27292745, 0.35596795, -0.01373896, 0.32464979, -0.22932331,
1.14796175, 0.17268531, 0.40692172, 0.13846154, 0.22752953,
0.13087359, 0.14111479, -0.09932381, 0.12800392, 0.02605917,
0.18776078, 0.45872642, -0.3943505 , -0.0771418 , -0.38822433,
-0.09171721, 0.23083624, -0.21603973, 0.05425592, 0.47910286,
0.26359565, -0.19917942, 0.40182097, -0.0797546 , 0.47239264,
-0.36654449, 0.4513859 , -0.00282486, -0.13950512, -0.05375369,
0.03331833, 0.48951555, -0.13760504, 2.788 , -0.15017848,
0.02930675, 0.10910646, 0.03868301, -0.048482 , 0.7277376 ,
0.08841259, -0.10968462, 0.50371324, 0.86379698, 0.01674877,
0.19542421, -0.06639165, 0.74500856, -0.10148342, 0.02482331,
0.79195804, 0.40401969, 0.25120005, 0.21020794, -0.01767013,
-0.13453783, -0.09605592, -0.88044229, 0.04689623, 0.09043851,
0.21232286, 0.34129982, -0.3736799 , 0.17313858])

我想知道 0.3 的值与上述所有值相比如何,以及它大于上述值的百分比。

最佳答案

我个人喜欢使用 scipy.stats 包。它有一个有用的核密度估计实现。基本上,它所做的是使用高斯(或其他)分布的组合来估计某些数据的概率密度函数。使用哪些分布是您可以设置的参数。在此处查看文档和相关示例:https://docs.scipy.org/doc/scipy/reference/tutorial/stats.html#kernel-density-estimation

关于 KDE 的更多信息:https://en.wikipedia.org/wiki/Kernel_density_estimation

构建 KDE 后,您可以对其执行相同的操作以获得概率。例如,如果您想计算一个值大于或等于 0.3 的概率,您可以执行以下操作:

kde = stats.gaussian_kde(np.array(x))

#visualize KDE
fig = plt.figure()
ax = fig.add_subplot(111)
x_eval = np.linspace(-.2, .2, num=200)
ax.plot(x_eval, kde(x_eval), 'k-')

#get probability
kde.integrate_box_1d( 0.3, np.inf)

长篇大论:计算一个 KDE,然后像使用 PDF 一样使用 KDE。

关于Python - 从 numpy 数组分布计算 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45464924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com