이것은 프로그래밍 관련 질문이지만 통계 배경을 먼저 설명해 드리겠습니다. 이 질문은 혼합 효과 위치 스케일 모델 (즉, 이질적 분산)에 대한 데이터 시뮬레이션의 일부를 지칭합니다. IML의 RANDNORMAL 함수를 사용하여 두 MVN 분산 구성 요소를 시뮬레이션하려고합니다. 두 분산 구성 요소가 이기종이므로 RANDNORMAL에서 사용하는 분산은 사람마다 다릅니다. 따라서 IML을 사용하여 특정 행 (예 : 행 1 = 사람 1)을 선택하고 다음 행으로 이동하기 전에 RANDNORMAL 함수를 사용하는 등의 작업이 필요합니다.SAS/IML : RANDNORMAL에서 개별 분산 구성 요소를 사용하는 방법
아래 예제 코드는 2 인분입니다. DO를 사용하여 각 개인의 특정 분산 구성 요소 (VC1 및 VC2)를 반복합니다. 오류가 발생합니다 : "모듈 RANDNORMAL 이전 호출에서 종료하기 전에 다시 전화." DO 루프에서 BREAK 또는 EXIT 함수가 필요하다고 가정하고 있지만 아무 것도 시도하지 않았습니다.
PROC IML;
ColNames = {"ID" "VC1" "VC2"};
A = {1 2 3,
2 8 9};
PRINT A[COLNAME=ColNames];
/*Set men of each variance component to 0*/
MeanVector = {0, 0};
/*Loop through each person's data using THEIR OWN variances*/
DO i = 1 TO 2;
VC1 = A[i,2];
VC2 = A[i,3];
CovMatrix = {VC1 0,
0 VC2};
CALL RANDSEED(1);
U = RANDNORMAL(2, MeanVector, CovMatrix);
END;
QUIT;
도움을 주시면 감사하겠습니다. 아, SAS 9.4를 사용하고 있습니다.
총 2 행 또는 1 인당 2 행을 생성합니까? (또한 IML을 사용하는 경우 올바른 태그를 사용하십시오. - Rick은 [tag : sas-iml] 질문에 대답하지만 그는 [tag : sas] 만 보는지 모르겠습니다.) – Joe
각 행은 한 사람입니다. . 아, 그리고 그들은 1500의 평판을 가지고 있지 않기 때문에 유일한 "IML"태그를 사용하지 않을 것입니다 ... –
그것은 [tag : sas-iml]이기 때문에입니다. – Joe