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

问题描述 投票:4回答:3

我正在尝试将多元正态分布拟合到我收集的数据中,以便从中获取样本。我知道如何使用fitdist函数(带有'Normal'选项)来拟合(单变量)正态分布。

如何为多元正态分布做类似的事情?

不是在每个维度上单独使用fitdist都假定变量不相关吗?

matlab distribution probability normal-distribution data-fitting
3个回答
1
投票

不需要任何专门的拟合功能;分布的均值和方差的最大似然估计值只是样本均值和样本方差。也就是说,计算样本均值和样本方差就可以了。


0
投票

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

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


0
投票

您可以使用[sigma,mu] = robustcov(X)函数,其中X是您的多元数据,即X = [x1 x2 ... xn],而xi是列向量数据。

然后您可以使用Y = mvnpdf(X,mu,sigma)获得估计的正常概率密度函数的值。

https://www.mathworks.com/help/stats/normfit.htmlhttps://www.mathworks.com/help/stats/mvnpdf.html

© www.soinside.com 2019 - 2024. All rights reserved.