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

时间:2014-08-01 16:54:24

标签: matlab distribution probability normal-distribution data-fitting

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

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

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

3 个答案:

答案 0 :(得分:1)

不需要专门的装配功能;分布的均值和方差的最大似然估计只是样本均值和样本方差。即,计算样本均值和样本方差,你就完成了。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

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