建立相關矩陣我需要創建一個相關矩陣來用於一些模擬。我希望相關性的所有非對角線元素都是相同的值。這是一個可以實現這一目標的簡單腳本,但我想知道是否有更簡單的方法可以實現這一目標。
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);