통계 아는 척하면서 SPSS 언급하면, 그 분의 수준이 어느 정도인지 대충 짐작이 됨 (정확하다는 것은 아님).

 

학생들에게 SPSS 쓰지 말라고 얘기함. 저도 처음에는 SPSS로 시작했지만, 지금은 전혀 사용하지 않음. SPSS -> SAS -> Stata(R)의 경로로 프로그램을 배웠음. 새로 통계를 배운다면 선택은 Stata, R, Python 셋 중 하나. 이 중에서 Python은 아직 덜 발전되어 있어서, R이나 Stata를 선택하는게 일반적. 확실하지는 않지만 Stata의 재정 상태가 안좋다는 소문도 있음.  

 

SPSS를 추천하지 않는 가장 큰 이유는 명령어보다는 클릭을 주로 한다는 것. 설사 명령어를 쓰더라도 명령어가 다른 프로그램 보다 복잡하고 최신 기법이 잘 업데 안됨. 요즘 사회(경제/정치)학계에서 원로학자들 제외하고 쓰는 분 찾아보기 쉽지 않음.

 

SPSS를 추천하지 않는 다른 이유 중 하나는 가중치 부여 방식이 좋지 않다는 것. 아이러니하게도 SPSS에서 가중치 제대로 쓸 줄 아는 분 중에서 SPSS쓰는 분 거의 못봤음. 

 

최근에 뭔가 변화하지 않았다면, SPSS의 가중치는 Stata의 fweight 옵션에 해당함. 

 

모수분석에서 가중치의 기본은 "표본선택확률의 역수"로 조정해주는 것. 그런데 SPSS는 선택확률이 아닌 representative cases로 가중치를 주게끔 프로그램 되어 있음. SPSS에서 모수 추정을 할려면 가중치 값을 매 번 조정해줘야 함. 

 

좀 더 쉽게 설명하자면, 

 

(통계청에서 제공하는 거의 모든 데이터를 포함해서) 대부분의 확률표집 데이터는 전체 population의 frequency를 추정할 수 있도록 각 sample의 population representative 값을 제시함. 쉽게 얘기해서 센서스 데이터에 frequency weight를 부여하면 전체 인구수를 추정할 수 있도록 가중치를 제공함. 대략 <표본수 * 가중치 변수의 평균>을 계산하면 <전체 인구수>가 나옴. 

 

[ 모든 데이터가 이런 가중치를 제공하는 것은 아님. 조사회사의 여론조사는 대부분 표집확률의 역수(라기 보다는 인구비례에 따른 할당치의 조정값)를 가중치 값으로 제공함 ] 

 

여기서 문제는 이 frequency를 그대로 가중치로 쓰면 샘플사이즈가 인구수와 같아짐. coefficient estimated는 biased되어 있지 않지만, 샘플사이즈가 뻥튀기 되어서 표준오차가 크게 줄어듦. 그에 따라 거의 모든 계수추정값이 통계적으로 유의하게 인위적으로 변화함. 아주 가끔 Stata에서 인구수 추정 이외에도 fweight를 쓰는 분들이 있던데, 이거 통계적 치팅임. 

 

모수 추정에서 가중치의 기본은 가중치 부여 전후에 샘플수가 변화하면 안된다는 것. 이 때문에 SPSS에서는 분석 대상 표본만 뽑아서 가중치의 평균이 1이 되도록 재조정해야 함. 

 

이게 상당히 귀찮은 작업임. 분석 대상을 바꿀 때 마다 가중치를 재조정해야 함. 남녀를 모두 포함해서 분석할 때, 남자만 따로 분석할 때, 여자만 따로 분석할 때 등등, 분석 대상의 미세 조정이 필요할 때 마다 가중치도 재조정해야. 많은 SPSS 사용자들이 이걸 어떻게 하는지 모르고 쓰는 듯. 그래서 개인적으로 SPSS로 분석한 결과는 가중치에 대한 구체적 언급이 없으면 의심부터 하고 봄.  

 

굳뉴스라면 앞서도 언급했지만 가중치 조정 여부와 상관없이 계수값 추정치는 모두 동일함. 어떤 옵션을 쓰든 가중치를 부여하는 한 계수값은 변화하지 않음. 가중치를 주지 않으면 계수값이 biased되기 때문에 가중치는 주어야 함. 다만 가중치 부여 방법에 따라 계수 추정값 자체가 편향되게 바뀌는 일은 일어나지 않는다는 것. 바뀌는 것은 표준오차. 

 

Stata에서는 가중치 옵션만 제대로 선택하면 이런 문제가 없음. 기술통계에서는 aweight, 다변량/다변수 분석에서는 pweight를 쓰면 됨. 기술통계에서 pweight 옵션이 없는 이유는 필요가 없기 때문. 가중치 부여는 Stata가 가장 편하게 프로그램 되어 있음. 

 

 

 

Ps. 이 번 포스팅은 너무 기술적 문제라 트위터에 포스팅하지는 않음. 페이스북 등에서 가중치 문제로 고민하는 분들이 가끔 보이는데, SPSS 얘기가 나온김에 작성. 

Posted by 바이커 sovidence

댓글을 달아 주세요

  1. 질문 2019.12.17 15:30  댓글주소  수정/삭제  댓글쓰기

    게으른 질문입니다만.. 스타타에서 aweight이랑 pweight차이는 뭔가요?

    • 바이커 sovidence 2019.12.17 20:16 신고  댓글주소  수정/삭제

      aweight는 각 샘플이 representative 그룹의 평균값으로 가정해서 표준오차를 계산합니다. pweight는 샘플 추출의 확률의 역수로 가중치를 줍니다. 둘의 실질 차이는 heteroskedasticity를 어떻게 다루냐, 즉 robust s.e.냐 아니냐 입니다.