Korrelationsmatrix erstellenIch muss eine Korrelationsmatrix für einige Simulationen erstellen. Alle nichtdiagonalen Elemente der Korrelation sollen den gleichen Wert haben. Hier ist ein einfaches Skript dafür, aber ich habe mich gefragt, ob es eine einfachere Möglichkeit gibt.
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">
Automatisierung und SkriptingBetreff: Korrelationsmatrix erstellenIch kenne keine einfachere Möglichkeit, aber falls Sie eine einfachere Lösung wünschen, weil Sie Ihren Code häufig verwenden möchten, könnten Sie ihn wie im folgenden Beispiel in eine Funktion umwandeln. Dann ist der Aufruf jedes Mal einfacher.
//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);