3

我可能有点密集,但我不是很数学,似乎无法理解创建多元数据的协方差元素。

我在两列随机数据(代表两个相关变量)之后。

我认为我需要使用 mvnrnd 函数是正确的,并且我理解“mu”必须是我的平均向量的一列。因为我的数据中需要 4 个不同的类,所以它们将是 (1, 1) (-1 1) (1 -1) 和 (-1 -1)。我假设我每次都必须使用不同的平均向量列执行 4x 函数,然后将它们组合起来以获得我的完整数据集。

我不明白我应该为 SIGMA 放什么 - Matlab 帮助告诉我它必须是“d 乘 d 对称半正定矩阵,或 d 乘 d 乘 n 数组”,即协方差矩阵。我不明白如何为尚未生成的数字创建协方差矩阵。

任何建议将不胜感激!

4

2 回答 2

1

假设我正确理解了您的情况,我会这样做:

data = [normrnd(0,1,5000,1),normrnd(0,1,5000,1)]; %% your starting data series
MU = mean(data,1);
SIGMA = cov(data);

现在,应该可以mvnrndMUand喂食了SIGMA

r = mvnrnd(MU,SIGMA,5000);
plot(r(:,1),r(:,2),'+') %% in case you wanna plot the results

我希望这有帮助。

于 2013-04-18T12:02:42.687 回答
0

我认为您的目标是生成模拟的多元高斯分布数据。例如,我使用

k = 6; % feature dimension mu = rand(1,k); sigma = 10*eye(k,k);

单位矩阵乘以 10 是一个对称的半正定矩阵。并且高斯分布会比其他类型的 sigma 更圆。

然后您可以将其用作上述 mvnrnd 函数的示例并查看该图。

于 2015-01-13T13:27:44.557 回答