矩阵作为二维概率分布:得到中心矩

时间:2012-06-18 23:24:40

标签: matlab matrix distribution probability

我有一个矩阵,它在Matlab中给我一个二维离散分布(N 2 - > R)。

Matlab(R2011b,统计工具箱)中是否有内置函数给出中心矩和均值?如果它们存在于(R 2→R)的函数中,它也可以。否则我将不得不自己建造它们,但我不想重新发明轮子。

谢谢

1 个答案:

答案 0 :(得分:2)

快速浏览一下,我无法发现任何功能,但这无论如何都不是事实。

然而,从头开始,并假设你的意思是一个矩阵,如:

    % x=1  x=2  x=3
P = [ 0.1  0.2  0.1        % y = 1  
      0.1  0.1  0.2        % y = 2
      0.0  0.0  0.2 ]      % y = 3

你的意思是这描述了联合离散分布(联合概率质量函数)。也就是说,(X,Y)处的条目包含(X,Y)发生的概率。

我也假设您在数学符号中使用N表示自然数。如果是这样,那么您可以使用以下代码。

平均:

 meanX = sum(P,1) * (1:size(P,2))'; 
 meanY = sum(P,2)' * (1:size(P,1))';

中心时刻K,LK对应于XL对应Y):

 [X,Y] = meshgrid(1:size(P,2),1:size(P,1));
 integrandXY_KL = (X - meanX).^K .* (Y-meanY).^L .* P;
 momentXY_KL = sum(integrandXY_KL(:));

如果X的值是任意的(而不仅仅是自然数),你可以进一步推广它,如下所示。如果Xvals = [ 1 2 4 ]Yvals = [ 4 5 6 ]。以上所有内容仍然有效,您只需将1:size(P,2)的所有出现替换为Xvals,将所有出现的1:size(P,1)替换为Yvals