상관 행렬 생성시뮬레이션에 사용할 상관 행렬을 만들어야 합니다. 상관 관계의 모든 비대각 요소가 같은 값이 되기를 원합니다. 이를 수행하는 간단한 스크립트가 있지만 더 간단한 방법이 있는지 궁금합니다.
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">
자동화 및 스크립팅Re: 상관 행렬 생성더 간단한 방법은 모르겠지만, 코드를 자주 사용할 계획이라 더 간단한 방법을 원하신다면 아래 예처럼 함수로 만들 수 있습니다. 그러면 매번 호출하는 것이 더 간단해집니다.
//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);