计算协方差矩阵在MATLAB与给定的概率
问题描述:
以我MATLAB程序,我有以矩阵给出的m维变量X的发生作为计算协方差矩阵在MATLAB与给定的概率
X = [x_11 x_12 ... x_1m;
x_21 x_22 ... x_2m;
.
.
.
x_n1 x_n2 ... x_nm;]
,其中每个为X的情况下
和每种情况的概率由下式给出:
pX = [p_x1 p_x2 ... p_xn];
我正在寻找一种简单的方法来计算X(即表示X的尺寸如何关系到一个矩阵的协方差矩阵 彼此)。
我希望有一个简单的方法来计算它在MATLAB,就像它的计算方法是X的期望值:
EX = pX * X;
编辑:
X是离散的随机变量X矩阵指定的事件。 pX显示每次发生的概率。
答
EX = px*X;
nmeas = size(X,1);
XB = X - repmat(EX,nmeas,1);
PD = zeros(nmeas, nmeas);
PD(logical(eye(size(PD)))) = px; % thanks http://stackoverflow.com/questions/3963565/matlab-how-to-assign-values-on-the-diagonal
CX = XB'*PD*XB;
PDij是获得测量值xi和xj的联合概率,如果j = i,则为pXj,否则为0。
所以
CX1,1 = PX1 *^XB11 2 + PX2 * XB21^2 + ...
CX2,1 = CX1,2 = PX1 * XB11 * XB12 + PX2 * XB21 * XB22 + ...
这是协方差的定义。
你的问题不是很清楚:什么是“发生概率”?基于什么?为什么pX和pY具有列的维数,而你称之为“发生概率”,这是沿着行的?如果你谈论概率(而不是密度),是否意味着x和y是离散的? – 2010-11-28 10:55:31
我编辑问题来解决这个问题。但谈论概率时,X矩阵指定每个事件本身,而pX向量指定发生的概率。 – Isaac 2010-11-28 11:07:28