我在matlab中有一个关于多元核密度的问题,这是我第一次使用它。
我有一个三维样本数据(x,y,z在轴上(,想使用核密度估计来找到在某个体积中的概率。因此,我在matlab中使用了mvksdensity函数,得到了我决定的点的概率密度(估计函数值(。
我最初想做的是(如果我能精细化函数的话(对给定体积的多元函数进行三重积分。但是mvksdensity函数只返回密度估计,而不返回函数。我以为有一种简单的方法可以从密度计算概率,但我被卡住了。有人对此有什么有用的信息吗?提前谢谢。
我考虑过fitdist函数来寻找分布,但它只适用于单变量核分布。
我还尝试使用mvncdf,这是一个在设置均值和std后返回样本数据行的多元正态分布的cdf的函数。但随后我必须计算每个数据点中每个正态分布在给定体积的概率,然后将其相加,对于大量数据来说,这将是低效的,我不知道这是否是一种正确的方式。
我可以建议以下蒙特卡罗方法。您可以找到一个包含估计概率密度的整个质量的主体积。为了效率的考虑,这应该尽可能小。然后在主卷中生成大量测试点,可以在网格上生成,也可以根据均匀分布随机生成。特定体积V的概率含量可以通过V中的测试点的密度值之和与所有测试点的浓度值之和来估计。然而,我担心在3D中,你至少需要1E6个测试点,可能更多。如果你允许我查阅你的样品,我很乐意尝试一下我的建议。计算V.估计概率含量的标准误差也应该相当容易