사이트맵  |  Contact Us
 
홈 > SAS Tech & Tip > SAS Enterprise Guide
모수가 추정될 때 Pearson 적합도 검정 2012.12.26
MYSAS 5744 0
http://www.mysas.co.kr/SAS_tiptech/i_eg.asp?b_no=2388&gotopage=5&con=subject&keyword=&cmd=content&bd_no=28&gubun=

 

Pearson 적합도 검정은 변수들의 관측값에 대해 분포나 모형을 적합시키는 테스트를 제공한다. 이 검정은 분포와 모형의 예측값과 기대값을 비교한다. 범주형 변수에서 비교는 각 단계에서 이루어지고, 연속형 변수에 적합은 그것이 범주화 되었을 때 적합될 수 있다. Pearson 검정 통계량은 근사적으로 자유도 k-1(k는 범주 수)의 카이제곱 분포를 따른다. 그러나, 적합되는 분포와 모형의 모수는 추정되어야 하며, 검정 통계량의 자유도는 추정된 모수의 수 에 따라 감소되어야 한다.
예측값이 모수없이 얻어진다면, Pearson 검정은 one-way table과 TABLES 문장에서 CHISQ 옵션을 명시함으로써 PROC FREQ에서 실행될 수 있다. 예측값의 리스트는 TABLES 문장에서 TESTF= 또는 TESTP= 옵션을 통해 직접적으로 명시되어 진다.SAS 9.3 TS1M2를 시작하면서, TESTF=data-set-name 또는 TESTP=data-set-name 옵션은 사용자가 data set에서 변수들로부터 예측값을 읽을 수 있도록 하고, CHISQ옵션의 DF= 서브옵션은 사용자가 예측값이 추정된 모수를 이용해서 얻어질때 검정에서 적절한 자유도를 설정할 수 있게 한다. 총 수가 적은 table에서, exact chisq; 문장은 정확한 검정을 얻을 수 있게 하는 것이다.
Example
아래의 example은 count data 한 세트를 음이항분포에 적합시키는 Pearson 적합도 검정을 적용한 것이다. 데이터는 926개로부터 얻은 샘플의 달팽이 종에 대해 생산된 알의 수에 대한 것이다. 이 간단한 예시는 데이터가 공변량을 포함하지 않는다는 모형적합니다. 이러한 문장들은 data를 포함한 EGGS data set을 만든다. macro 변수 N은 sample size(926)를 유지하면서 생성된다.
         data eggs;
         input y freq;
         sum + freq;
         call symput('n',cats(sum));
         datalines;
         0 603
         1 112
         2 93
         3 53
         4 19
         5 21
         6 7
         7 6
         8 5
         9 2
         10 1
         11 2
         14 2
         ;
아래의 문장은 SAS/ETS 소프트웨어에서 PROC COUNTREG를 사용해서 음이항 모형에 적합한다. 모형은 (공변량이 아닌) 절편만 포함하기 때문에, 데이터는 단순 모집단에서의 샘플이라고 생각되어 진다. 절편은 link-transformed 음이항 평균을 추정한다. OUTPUT 문장에서 PRED= 옵션은 음이항 평균의 추정치를 제공하는 역함수를 쓴다. 음이항 분산 모수도 추정되어 진다. PROB= 옵션은 각 관측된 수에 예측된 확률을 제공한다. SAS/STAT 소프트웨어에서는 모형은 또한 PROC GENMOD를 사용해서 적합되어 질 수 있다는 것을 명심해라. 그러나 GENMOD는 관측된 수의 예측 확률을 저장하는 옵션은 제공하지 않는다.
 
proc countreg data=eggs;
model y = / dist=negbin;
output out=exp_nb prob=prob_nb pred=mu;
freq freq;
run;
 
두 모수는 위에서 설명된 것처럼, PROC COUNTREG에 의해서 추정된 것에 주목하시오.
DATA step에서, 예측 확률은 적합도 검정을 위한 예측 빈도를 얻기 위해서 각각 sample size에 의해서 곱해진다.
 
     data exp_nb;
         set exp_nb;
         exp_nb = &n * prob_nb;
         run;
 
적은 예측 빈도 때문에, 검정을 하기 이전에 몇몇은 결합한다. FORMAT과 MEANS step은 하나의 카테고리에서 8과 9을 결합하고, 다른 카테고리에서 10과 그 이상을 결합한다. 예측 빈도를 포함한 변수는 _TESTF_로 명명되었다.
 
      proc format;
         value yfmt    
           8-9     = "8 or 9"
           10-high = ">=10";
         run;
       
    proc means sum nway data=exp_nb;
         class y;
         var exp_nb;
         format y yfmt.;
         output out=exp_nb sum=_testf_;
         run;
 
10과 그 이상에 해당하는 예측 빈도는 관측여부에 관계 없이 10 과 그 이상에 해당하는 예측 빈도로 합쳐져야 한다. total sample size로부터 10 이하에 대한 예측 빈도의 합계를 빼면서 행해질 수 있다. 아래의 DATA step은 예측빈도를 누적하고 마지막 카운트와 예측 빈도의 차를 나타낸다.
 
      data exp_nb;
         set exp_nb;
         sumexp + _testf_;
         sumtolast = lag(sumexp);
         if y=10 then _testf_ = &n - sumtolast;
         run;
 
적합도 검정을 요구하는 PROC FREQ step의 CHISQ 옵션은 Y의 one-way table을 수행한다. WEIGHT 문장은 관측 빈도를 제공한다. TESTF= 서브옵션은 data set name(이 경우에는 EXP_NB)을 명시하고, PRCO FREQ는 이 데이터에서 변수이름 _TESTF_ 를 보면 된다. 이 변수는 예측 빈도를 제공한다.
관측되고 예측된 빈도로, CHISQ 옵션은 Pearson 적합도 검정을 수행할 수 있다. 그러나, 적합한 검정을 제공하기 위해서, 일반적인 적합도 검정의 자유도(k-1, Y 카테고리에 k개의 수)는 추정된 모수의 개수에 따라 줄어든다. PROC COUNTERG는 음이항 분포에서 두개의 모수를 추정하므로, DF=-2옵션은 두개에 의해 자유도를 줄이기 위해 사용한다. 대안적으로, 사용자는 k=10이고 두개의 모수가 추정되었기 때문에 DF=7로 구체화 해서 정확한 자유도를 제공할 수 있다. (10-1-2=7)
 
      proc freq data=eggs;
         table y / chisq(testf=exp_nb df=-2);
         format y yfmt.;
         weight freq;
         run;
 
검정의 결과는 음이항 모형이 데이타에 적합이 잘 되지 않았음을 의미한다.(p=0.0016)
 
 
 
 
 
 
휴대폰 번호
휴대폰 인증번호
 
 [Excel보다 쉬운 SAS, SAS EG 따라잡기]20. 산점도, 레이더 그래프, 타일 그래프
 [EG] 페이지 번호, 총 페이지 수, 날짜 넣기