我正在尝试将多元正态分布拟合到我收集的数据中,以便从中获取样本。我知道如何使用fitdist
函数(带有'Normal'
选项)来拟合(单变量)正态分布。
如何为多元正态分布做类似的事情?
不是在每个维度上单独使用fitdist
都假定变量不相关吗?
不需要任何专门的拟合功能;分布的均值和方差的最大似然估计值只是样本均值和样本方差。也就是说,计算样本均值和样本方差就可以了。
用mean
估计平均值,用cov
估计方差-协方差矩阵。然后,您可以使用mvnrnd
生成随机数。也可以使用fitmgdist
,但仅对于多元正态分布,mean
和cov
就足够了。
是,在每个维度上分别使用fitdist
假定变量是不相关的,这不是您想要的。
您可以使用[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