创建相关矩阵我需要创建一个相关矩阵用于某些模拟。我希望相关性的所有非对角线元素都具有相同的值。这里有一个简单的脚本可以做到这一点,但我想知道是否有更简单的方法可以做到这一点。
names default to here(1);
// create correlation matrix with specified correlation
k=5;
r=0.9;
corr_matrix=J(k,k,r);
// diagonal elements equal to 1 by adding (1-r)
corr_matrix=corr_matrix + diag(J(k,1,1-r));
This creates the matrix
[1 0.9 0.9 0.9 0.9,
0.9 1 0.9 0.9 0.9,
0.9 0.9 1 0.9 0.9,
0.9 0.9 0.9 1 0.9,
0.9 0.9 0.9 0.9 1]
</CODE></P>
<BR />
<PRE><CODE class=" language-jsl">
自动化和脚本回复:创建相关矩阵我不知道有没有更简单的方法,但是如果您想要一种更简单的方法,因为您计划经常使用代码,那么您可以将其变成一个函数,如下例所示。然后,每次调用它都会更简单。
//function
make_cm = function ({k,r},
corr_matrix=J(k,k,r);
// diagonal elements equal to 1 by adding (1-r)
corr_matrix=corr_matrix + diag(J(k,1,1-r));
);
//call the function
make_cm (5, .9);