我有一个矩阵,它在Matlab中给我一个二维离散分布(N 2 - > R)。
Matlab(R2011b,统计工具箱)中是否有内置函数给出中心矩和均值?如果它们存在于(R 2→R)的函数中,它也可以。否则我将不得不自己建造它们,但我不想重新发明轮子。
谢谢
答案 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,L
(K
对应于X
和L
对应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
。