본문 바로가기

R-PAGO 노트

UCLA 대학원 합격을 위한 필요 Spec.은?

UCLA 대학원 합격을 위한 Spec.은?(로지스틱 회귀)


GRE, GPA, Rank(출신 학부 대학의 명성)로 구성된 UCLA 대학원 입학생 자료 400개를 가져온다. 데이터는 총 400개로 합격자 127명, 불합격자 273명으로 구성되어 있다. 


최종 목적인 ROC를 구하기 위해, 훈련 데이터(train)와 테스트 데이터(test)의 구분이 필요하다.

UCLA 대학원 Report를 통해 10년간 합격률이 약 25%임을 확인할 수 있다. 따라서 테스트 데이터의 합격과 불합격 비율을 1:3로 하고 훈련 데이터는 1:1로 해야 타당하다. 결론적으로 훈련 데이터는 총 80개, 테스트 데이터는 320개를 구성된다. 이 경우 테스트 데이터의 합격률은 27%가 된다.


그러나 문제는 훈련 데이터 수가 많지 않아(80개) 단 1번의 무작위 훈련 데이터 생성으로 선정된 변수와 회귀 계수를 최종 결론으로 봐도 될 지가 의문이 든다. 실제 훈련 데이터를 생성해 보니 선정되는 변수는 훈련 데이터의 무작위에 따라 매번 달라지는 걸 확인하게 된다. 따라서 설명 변수 선정은 최소한 훈련 데이터가 아닌 전체 데이터 400개를 통해 확정하는 것이 타당해 보인다.



Step 1: 변수 선택 및 이상값 진단

AIC기준의 3가지 방법을 통해 변수를 선택한다. 


> formula(backwards); formula(forwards); formula(stepwise);

admit ~ gpa + gre + rank

admit ~ rank + gpa + gre

admit ~ rank + gpa + gre


3가지 방법 모두 5개 변수 모두가 포함되었 때의 AIC가 가장 낮다. 5개 변수 모든 포함시의 p값을 확인한다. 



모든 변수의 p 값이 유의하다. 참고로 glm 함수는 Wald Z 통계를 사용한다.


더미 변수 Rank가 전체 모델에 유의한가에 대한 분석이 필요하다. 이를 위해 wald test를 시행한다. wald test를 위해 aod package를 설치한다.[각주:1] 


wald.test(b = coef(full), Sigma = vcov(full), Terms = 4:6)

vcov는 error의 variance covariance matrix이고 term은 테스트 하고 싶은 항을 의미한다. 따라서 위 식은 4~6번째 항(Rank 더미)이 전체 모델 영향에 유의한 가를 보는 것이 된다.


Wald test:

----------

Chi-squared test:

X2 = 20.9, df = 3, P(> X2) = 0.00011


이번에는 대학에 대한 정성적인 계급 구별(rank)이 유의미한가를 테스트 한다. 여기서는 rank 2와 rank3간을 확인한다. rank2와 rank3 차이가 유의한지 알기 위해 두 값을 빼야하므로 l vector를 1과 -1로 설정한다. (rank1과 rank2의 차이가 유의한지 확인 위해서는 rank1이 레퍼런스 더미이므로 (0,0,0,1,0,0) 으로 하면 되는지 확인이 필요함) 


l <- cbind(0,0,0,1,-1,0)

wald.test(b = coef(full), Sigma = vcov(full), L = l)

Wald test:

----------

Chi-squared test:

X2 = 5.5, df = 1, P(> X2) = 0.019


두 경우 모두 유의미함을 알 수 있다. 

최종 식은 admit ~ gpa + gre + rank가 된다. 


마지막으로 hatvalue를 통해 이상값 진단을 한다. 


   373    356     11     292     17       217     295    287    289     35 

0.0492 0.0413 0.0385 0.0335 0.0333 0.0316 0.0313 0.0311 0.0310 0.0305 


373번 데이터의 hatvalue가 크나 상대적으로 크지 않아 추가적인 이상값 제거는 필요 없다.



Step 2: 훈련 데이터 만들기


무작위를 통해 훈련 데이터를 추출한다. 테스트 데이터는 자동적으로 전체 데이터에서 훈련 데이터를 제외한 나머지가 된다. 무작위 추출을 반복 수행해 기 선정된 GPA, GRE, RANK 모두 포함될 경우에 유의성을 가지는 데이터 set을 저장한다. 우연성을 확인하기 위해 1개가 아닌 5개의 훈련 데이터 set을 확보한다.  (검증셋 기법은 데이터를 훈련과 테스트 데이터로 같은 수로 나누나 여기선 data smart에서 제시한 방법을 적용한다. 이 방법의 단점은 sample에 따라 편향이 크다는 것이다.)



Step 3: ROC로 모델 정확성 판단


5개 변수 모두가 포함된 훈련 데이터를 뽑아 p값이 모두 유의한(여기선 느슨한 기준인 p<0.2로 한다) 5개의 sample을 추출한다. 각 sample별 회귀식을 자동적으로 산출된 테스트 데이터에 적용하여 ROC를 그리면 다음과 같다.  



Step 4: 로지스틱 회귀의 해석


5개 ROC의 AUC는 다음과 같다.


     Roc1      Roc2       Roc3      Roc4        Roc5

0.6831927 0.638449 0.6483153 0.6546298 0.5756746


ROC1의 AUC가 가장 높다. ROC1을 가장 적합한 모델로 선정한다.
(5개 sampling을 통해 검증하는 것을 검증셋 기법(Validation Set Approach) 이라 한다. 이 글은 본 방법을 통해 ROC1을 선택하였으나 실제로 이것이 적합하다는 보장은 없다. 이 글에선 우선 ROC1으로 선정하여 결론을 내기로 하자.)


선형 회귀의 설명력(R2)에 해당하는 Pseudo R2을 확인해 보자.(pscl packages)

John Foreman이 추천하는 McFadden을 사용한다. 

 pR2(g1)

        llh     llhNull          G2    McFadden        r2ML        r2CU 

-48.9361120 -55.4517744  13.0313249   0.1175014   0.1503167   0.2004222 


McFadden은 11.8%, Maximum Likelihood r2는 15%, Cragg and Uhler's R2은 20%

로 설명력은 상당히 낮다. 즉, McFadden 기준으로 잔차를 11.7%만 설명해준다 할 수 있다. 

참고로 Log likelihood -48.93이다.  




(해석은 다른 변수를 고정할 경우를 전제로 한다.)

GPA 1점 상승시 합격을 위한 로그 오즈는 0.928 상승한다.

GRE 1점 상승시 합격을 위한 로그 오즈는 0.0036 상승한다.

Rank 2 대학교는 Rank 1대비 합격을 위한 로그 오즈는 1.18 하락한다.

Rank 3 대학교는 Rank 1대비 합격을 위한 로그 오즈는 1.75 하락한다.

Rank 4 대학교는 Rank 1대비 합격을 위한 로그 오즈는 1.99 하락한다.



각각의 계수를 exp하면 오즈에 대해 해석할 수 있다. 이 때 신뢰 또한 exp하면 오즈에 대해 나타낼 수 있다. 참고로 로지스틱 회귀의 confint 함수는 standard error가 아닌 log likelihood의 신뢰구간이다.

(standard error의 경우 confint.default(g1)을 사용한다. )

exp(cbind(OS = coef(g1), confint(g1)))

                    OS               2.5 %         97.5 %

(Intercept) 0.01943025   0.0001029556   2.4173202

gpa         2.53024035   0.6387413549  10.8942593

gre          1.00356524   0.9987627174   1.0087397

rank2       0.30722147   0.0563090440   1.3029324

rank3       0.17345068   0.0281023775   0.8407786

rank4       0.13626120   0.0195382175   0.7460044


(해석은 다른 변수를 고정할 경우를 전제로 한다.)

GPA 1점 상승시 합격을 위한 오즈는 2.53배가 된다. (오즈(4점)/오즈(3점) = 2.53)

GRE 1점 상승시 합격을 위한 오즈는 0.35% 상승한다. 

Rank 2 대학교의 합격 오즈는 Rank 1 합격 오즈의 30%이다.  (rank1이 2가 되면 하락한다는 뜻)

Rank 3 대학교의 합격 오즈는 Rank 1 합격 오즈의 17%이다.  (rank1이 3가 되면 하락한다는 뜻)

Rank 4 대학교의 합격 오즈는 Rank 1 합격 오즈의 13.6%가 된다  (rank1이 4가 되면 하락한다는 뜻)


Step 5 예측

만약 gpa와 gre점수는 지원자의 평균 수준인 어느 지원자들이 출신 학부만 다를 경우 출신 학부에 따른 합격률은 어떻게 변하는지 예측해 보자.


    gre    gpa     rank      Prob

1 587.7 3.3899    1    0.7854197

2 587.7 3.3899    2    0.5293034

3 587.7 3.3899    3    0.3883323

4 587.7 3.3899    4    0.3327780


Step 6 신뢰 구간 Plot


GPA는 평균인 각기 다른 학부 출신(rank=1~4)인 학생이 GRE점수에 따른 합격 률을 95% 신뢰구간으로 Plot하면 다음과 같다. 



Code: ucla_logistic.R



관련 자료 및 출처

StepwiseLogisticR.pdf

UCLA 대학원 입학 예제: http://www.ats.ucla.edu/stat/r/dae/logit.htm

UCLA 대학원 입학 통계: https://grad.ucla.edu/asis/report/arentire.pdf 



The model selection criteria that are most often used for GLMs are AIC and BIC Recall that these criteria were likelihood-based, and therefore extend readily to GLMs with no modification: AIC = −2` + 2p = D + 2p BIC = −2` + p log(n) = D + p log(n) 

  1. Wald Test는 모델내 설명변수가 유의미한지 확인하는 것으로 0 이라 가설 후 그것이 기각되면 유의미, 채택되면 무의미가 된다. 유의미하면 설명변수가 채택, 무의미하면 설명변수 제거해야한다. 만약 설명 변수가 1개일 경우 wald test는 t-test값과 같다. 일반적으로 설명변수는 많고 데이터수는 적을 때는 likelihood ratio가 더 효과적이다. http://blog.naver.com/gangzealot/100160765765 [본문으로]