출처: https://3months.tistory.com/307 [Deep Play]

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 복합표본자료분석 - 2. 자료준비 (R)
    R 2019. 12. 18. 21:42

     이전 포스트에서는 복합표본분석 에 대한 기본 개념에 대해 알아보았다.  이제부터 분석을 위한 자료 준비에 들어가 보자.

     

     

    1. 국건영 자료 다운로드

     

      국건영 홈페이지에 들어가면 간단한 이메일 인증만으로 자료를 다운로드 받을 수 있다. 누누히 얘기 하는 내용이지만 자료 분석 전 홈페이지에 있는 원시자료 이용지침서를 충분히 숙독한 후 분석을 진행해야 한다. 국건영 자료가 굉장히 좋은 자료임에도 불구하고 자료에 대한 이해도가 부족한 상태에서 날림으로 만들어진 논문들이 범람하고 있다. 분석에 R을 사용하는 연구자라도 국건영 자료는 SPSS 파일을 받아서 분석을 시행해야 할 뿐 아니라 변수에 대한 세부적인 내용을 파악하기 위해서 홈페이지에 있는 SPSS 이용지침서, 그리고 분석하려는 변수가 들어있는 해당 년도 자료의 분석 지침서를 충분히 읽어본 후 분석을 진행해야 한다. 

     

     

    2. 자료의 가로결합

     

      국건영과 같이 대형 자료는 통상적으로 한 해의 분석 자료일지라도 몇 개의 파일로 나누어져 있다. 이렇게 나누어져 있는 자료를 id를 기준으로 하나의 파일로 묶는 것을 가로결합이라고 말하며, 가로결합이 된 이후의 2016년 및 2017년 자료를 하나의 자료로 만드는 것을 세로결합이라고 말한다. 즉 가로결합은 연구대상의 id를 기준으로 추가 변수를 만들어 주는 것이며, 세로결합은 케이스를 늘리는 것이라고 할 수 있다.

      자료의 가로결합에서 문제가 되는 것은 기준이 되는 원본자료와 추가 변수가 존재하는 추가자료에서 동일한 id를 가져야 한다는 점이다. 

    library(dplyr)
    df1 <- data.frame(x=c(1,2,3,5,6), y1=1:5)
    df2 <- data.frame(x=c(1,2,3,4,6), y2=6:10)
    df3 <- left_join(df1,df2)
    df1;df2;df3
    

    dplyr package의 left_join 명령어는 아래 그림과 같이 왼쪽 data frame을 기준으로 결합을 만들어 준다.

    결합의 key variable을 지정해 주는 것이 낫겠지만 구태여 꼭 지정해 주지 않아도 알아서 잘 결합시켜 주는 것 같다. 그리고 국건영 자료의 경우 id를 기준으로 1:1로 매치가 되어 있으니 가로결합에서 큰 문제는 없다.

     

    한가지 팁을 말하자면, 파일을 결합하기 전에 필요없는 변수들은 미리 지우는 것이 좋다. 결합에 걸리는 시간도 늘어나고... 무엇보다 나중에 세로 결합할 때 결합할 두개의 파일은 변수명이 같아야 한다. 연구계획을 짤 때 필요한 변수를 미리 고민했다가 결합 전에 필요없는 변수들은 미리 정리하는 것이 좋은 것 같다. 물론 지금 단계에서 필요 없다고 생각한 변수가 나중에 필요할 수 있겠지만 그건 차라리 그때 새로 만드는게 나을 수 있다.

     

     

     

    3. 자료의 세로결합

     

      국건영 자료를 세로결합은 다른 년도의 자료를 합치기 위해서 필요하다. 국건영 자료의 경우 매년 수천명의 자료인데 구태여 다른 년도의 자료를 합칠 필요가 있을까라는 생각이 들 수도 있겠지만, 연구대상이 일반 인구집단이 아니라 어떤 특정 조건을 만족하는 집단일 경우 (특정 질환 보유자 혹은 특정 인구집단...) 한 해분 자료로 부족한 경우도 있다. 이런 경우 세로결합(케이스 추가)이 필요한데... 문제는 각기 다른 년도 자료의 결합이다보니 변수명이 달라지는 경우도 있고 어느해에는 측정되었던 자료가 다른해에는 존재하지 않을 수도 있다. 

     

      이런 문제를 피하기 위해 세로결합 전 미리 연구계획을 세워 어떤 변수가 필요한지 고민을 한 후에 연구를 진행해야 한다. 변수의 측정방식 혹은 변수의 표현방식이 중간에 바뀌었다면 이를 미리 해결해줄 필요가 있으며, 어떤 변수가 어느 시점부터 측정되지 않았다면 이 변수를 제외하고 n수를 늘리는 것이 나을지 아니면 변수를 포함하고 n수를 줄이는게 나을지에 대한 고민이 필요하다.

    df4 <- data.frame(x=1:5, y1=1:5, y2=1:5)
    df5 <- data.frame(x=6:10, y2=6:10, y1=6:10)
    df6 <- rbind(df4,df5)

    세로결합은 base R의 rbind 명령어로 충분하다. 위의 예제를 보면 알겠지만 df4와 df5의 변수 순서(y1, y2)가 다르다. 그럼에도 불구하고 정싱적으로 결합이 됨을 확인할 수 있다.

     

    그리고 세로결합에 중요한 부분 중 하나가 psu, kstrata, weight 변수의 처리이다.

    psu변수의 경우 따로 고민할 필요가 없다.

    kstrata 변수의 경우도 일반적인 경우 그대로 두면되지만, 국건영 초반 자료(2012년 이전자료)를 분석할때에는 다른 변수(kstrata0, kstrata1...)을 써야 하는 경우도 발생한다.       

     

    마지막으로 가중치의 경우 세로결합을 하게 되면 적절한 수정을 가해 줘야 한다.

    국건영 자료는 한국인 전체집단을 대표하는 자료이기 때문에  대상자들의 가중치를 모두 합하면 한국인의 인구수가 된다. 그런데 만약 자료를 세로결합하는 경우에는 만약 2년치 자료라면 인구의 2배, 3년치 자료라면 인구수의 3배가 되기 때문에 적절히 나눠줄 필요가 생긴다.

    그런 의미에서 만약 2016년과 2017년 자료를 세로결합한다면 각각의 가중치 자료에 0.5를 곱해서 나눠주면, 대상자의 수는 2배가 되었지만 대상자 가중치의 총합은 일정하게 유지된다. 

    분석하려는 자료가 일정기간 동안에만 시행된 검사라면 (안/이비인후과 검사, 골밀도/체지방검사) 위의 그림과 같이 약간 다른 방식의 계산이 필요하기도 하다. 

     

    여기까지 하면 분석 준비가 끝나게 된다. 이제부터는 본격적인 분석으로 들어가게 된다.

     

    'R' 카테고리의 다른 글

    복합표본자료분석 - 3. EDA (R)  (0) 2019.12.28
    복합표본자료분석 - 2½. EDA 도중에 포기한 예 (R)  (0) 2019.12.19
    생존분석 (R)  (2) 2019.11.15
    로지스틱회귀분석 (R)  (0) 2019.09.10
    다변수분석법 (R)  (0) 2019.09.07

    댓글

Designed by Tistory.