如何在MATLAB中将多元正态分布拟合到数据?

5

我正在尝试将多元正态分布拟合到我收集的数据中,以便从中取样。

我知道如何拟合(单变量)正态分布,使用fitdist函数(使用'Normal'选项)。

那么如何对多元正态分布进行类似的操作呢?

在每个维度上分别使用fitdist是否意味着假定变量不相关?


你尝试过使用 copulafit 吗?http://www.mathworks.com/help/stats/copulafit.html - amo
2
尝试使用gmdistribution.fit:http://www.mathworks.com/help/stats/gmdistribution.fit.html - rayryeng
1
@rayryeng 我认为 gmdistribution.fit 可以胜任。谢谢! - Shaked
@Shaked - 不用谢。祝你好运! - rayryeng
3个回答

1

不需要专门的拟合函数;分布的均值和方差的最大似然估计值就是样本均值和样本方差。也就是说,计算样本均值和样本方差即可。


我在单变量数据上使用fitdist的结果比手动计算均值和方差要好得多。 - Masterfool
@Masterfool,我很好奇您所说的“更好的结果”是什么意思。如果不是样本均值和方差,那么fitdist返回的是什么? - Robert Dodier
重要提示:我把matlab和R搞混了。话虽如此,fitdist可以使用该链接的详细信息部分中的任何方法。方法“mme”使用样本均值和方差,但其他方法使用某种数值优化。对我而言,拟合参数更好地适应了样本直方图。我的理解有点生疏,但我认为样本均值和方差实际上不是参数的最大似然估计,可以通过数值优化找到更高似然度的参数。 - Masterfool
1
@Masterfool 感谢更新。对于正态分布,样本均值和方差是分布均值和方差的极大似然估计,而 OP 确实特别提到了正态分布。但我同意,如果你扩大搜索范围来查看其他类型的分布,那么通常需要比样本均值和方差更多的东西。 - Robert Dodier
我的错;实际上我没有考虑到你的评论特别适用于正态分布。 - Masterfool

0

使用mean估计均值,并使用cov估计协方差矩阵。 然后,您可以使用mvnrnd生成随机数。 也可以使用fitmgdist,但对于仅多元正态分布,meancov就足够了。

是的,对每个维度分别使用fitdist假定变量不相关,这不是您想要的。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接