자료관리분석업무 노하우

39
5년전에 미리알았더라면 좋았을 자료관리 업무 노하우 제주대학교병원 응급의학과 임상조교수 서울대학교병원 의생명연구원 응급의료연구실 연구위원 송성욱

Upload: -

Post on 17-Jul-2015

190 views

Category:

Data & Analytics


1 download

TRANSCRIPT

5년전에 미리알았더라면 좋았을 자료관리 업무 노하우

제주대학교병원 응급의학과 임상조교수

서울대학교병원 의생명연구원 응급의료연구실 연구위원

송성욱

개요: 자료관리/분석 업무 흐름

Entry  Data   Cleaning  Data   Analysis   Presen1ng  

Results  Preserving  your  work  

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 2

Planning the work!Organization: files & materials!Documentation!Executing!

Accuracy !Efficiency !Simplicity !

Standardization !Automation !

Usability!

계획, 정리, 문서화하기 Planning, Organizing & Documenting

•  계획하기 What? – 자료원, 변수명/라벨, 결측자료, 분석, 문서화, 백업

•  정리하기 – 프로젝트 시작부터 일찍하자 !! – 일관성(Consistency) 과 일치성(Uniformity) – 필요할때 찾을 수 있나??

•  문서화하기: 오늘하는것이 내일하는것보다 항상 빠르다. – 자료원, 자료변경결정사항, 통계분석, 소프트웨어……

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 3

1. 정리하기: 파일과 폴더들

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 4

이런 곤란한 상황들..

•  여러 버전의 파일들이 있어서 무엇이 무엇인지 알수가 없다. –  심정지_최종.exel, 심정지_last.exel, 심정지_최종수정.exel

•  원하는 파일을 찾을 수가 없다. 혹시 지워버렸나?

•  동료들과 내가 갖고 있는 파일 중 어느 것이 가장 최근것인가?

•  자료입력을 위한 질문지 파일이 두개다. ㅠ.ㅠ

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 5

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 6

잘 짜여진 프로젝트 폴더구조로 해결해보자  

큰 규모, 한명이 관리하는 프로젝트 Directory   Contents  

\Administra1on   프로젝트 운영을 위한 파일들

\Budget   예산관련 쉬트 , 파일

\Correspondence   중요한 편지/메일, 전달사항, 공문등

\Proposal   프로젝트 제안서/계획서 및 관련 자료

\Documenta1on   프로젝트 진행 사항 문서화 파일들

\Posted  

\DataClean   정리된 자료

\DataSets   \Derived   원자료에서 만들어진 자료원

\Source   변형되지 않은 초기 원자료

\DescStats   기술분석(descriptive)

\Figures   그래프 코드 및 파일

\PanelModels   모델링 분석을 위한 자료원

\Text   보고서 작성 파일

\Readings   참고문헌이나 자료

\Work   현재 작업중인 문서나 분석파일

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 7

\Work & \Posted: 지켜야 하는 원칙

•  The Share Rule – 자료/결과 공유는 관련 파일/자료등을 전달한 후에만

•  The no-change rule – 한번 보낸 파일은 절대 변경하지 않는다.

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 8

프로젝트 폴더 구조 계획/문서화하기

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 9

몇 가지 간단한 Tip

•  폴더이름에는 한글이나 공백은 넣지 말자! . use d:\Workflow\my data\auto.dta invalid `data’ r(198);

•  각 프로젝트를 기억하기 쉬운 축약된 이름으로! – cws: cohort, work and health – sdsc: sex differences in the scientific career

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 10

실제 적용

•  폴더 template 을 미리 만들어놓았다가 사용

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 11

2. 문서화하기

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 12

Documentation

1.  The research log 2.  Codebooks 3.  Dataset documentation

•  오늘 당장 하고 나중에 확인한다.

•  문서화 파일들은 \Documentation 폴더에

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 13

Research Log

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 14

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 15

Dataset 문서화

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 16

3. 자료관리와 자료분석 작업 분리하기

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 17

Dual Workflow

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 18

data01.do  

data01.dta  

data02.do  

data02.dta  

data03.do  

data03.dta  

data04.do  

data04.dta  

stat01a.do  

stat01b.do  

stat01c.do  

stat02a.do  

stat02b.do  

stat03a.do   stat03b.do  

자료관리    

자료분석    

•  자료관리 관련 do 파일은 분석과 독립적 •  분석관련 do 파일은 자료구조에 변화 X

실행: Master do-files

dual-dm.do

do  data01.do  do  data02.do  do  data03.do  do  data04.do  exit  

dual-sa.do *descrip1ve  sta1s1cs  do  stat01a.do  do  stat01b.do  do  stat01c.do  *logit  model  do  stat02a.do  do  stat02b.do  *graph  do  stat03a.do  do  stat03b.do  

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 19

Dual Workflow

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 20

data01.do  

data01.dta  

data02.do  

data02.dta  

data03V2.do  

data03V2.dta  

data04V2.do  

data04V2.dta  

stat01a.do  

stat01b.do  

stat01c.do  

stat02aV2.do  

stat02bV2.do  

stat03aV2.do   stat03bV2.do  

자료관리    

자료분석    

실행: Master do-files

dual-dm.do

do  data01.do  do  data02.do  do  data03V2.do  do  data04V2.do  exit  

dual-sa.do *descrip1ve  sta1s1cs  do  stat01a.do  do  stat01b.do  do  stat01c.do  *logit  model  do  stat02aV2.do  do  stat02bV2.do  *graph  do  stat03aV2.do  do  stat03bV2.do  

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 21

4. 이름 정하기

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 22

do 파일 이름짓기

•  이름자체로 무슨작업을 수행하는지 알수 있으면 좋다.

•  입력하기 쉬워야 한다.

•  Run order rule – 자료가 생성되고 분석이 진행되는 순서와 일치하도록 do-file

이름을 가나다(알파벳)순으로 지어야 한다.

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 23

do-파일 이름 서식

•  project[-task]: 프로젝트 축약명 + 작업내용 cws-clean: cohort, work & health 프로젝트의 자료 클리닝

•  step & [letter]: 두자리숫자(작업순서) + 알파벳문자(복잡한작업) cws-clean01, cws-clean02: cws프로젝트 자료클리닝 1번째/2번째 작업 cws-desc01a, cws-desc01b

•  Version: 기존 do-파일의 수정/편집을 한 경우 기존파일에 추가 cws-desc01aV2.do: cws-desc01a.do 파일을 변경한 2번째 버전

•  [-description]: 설명이 추가되어야 하면 끝에…… cws-desc01a-SES.do: cws 프로젝트 기술분석 중 사회경제수준변수만 분석

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 24

project [-task] step [letter] [Version] [-description].do

dataset 이름정하기

dataset-name##.dta •  중요한 점은 다른내용이 포함된 dataset 을 같은 이름으로

replace(대체)하지 않는 것이다.

•  현재 버전에서 약간의 변화라도 발생하면 dataset 의 버전을 하나씩 증가시켜 저장한다.

•  많은 자료가 저장이 될 수 있지만 현재 하드드라이브의 가격은 매우 저렴하다. 나중에 필요한 버전의 자료가 없어서 고생하는 것보다 낫다.

•  절대 dataset 이름에 최종(final)이라는 문구를 사용하지 않는다.

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 25

변수이름 정하기

•  Clear, Informative & Easy to use

•  매우 따분한 작업이지만 잘못 이름을 만들었다간 나중에 매우 고생하게 된다.

1.  Sequential naming systems: v1, v2 … , v59

2.  Source naming systems: q1, q2, q3

3.  Mnemonic naming systems: id, educ, female

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 26

변수이름 정하기: 원칙들

•  변수 탐색을 고려하여 이름을 정한다.

•  간단하고 모호하지 않게 정한다. – 되도록 짧게 정한다. (최대 12자, 변경표시를 대비 10)

– 간결하고 일관성있는 축약형태: ed ß education

– 변수값을 알수있는 변수명: gender à female

– 대문자 사용은 특수한 의미를 부여하여 사용한다.

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 27

Bad example Good Example

hsed, coled, phded edhs, edcol, edphd

friendsd, marrysd, worksd, neighbsd sdfriend, sdmarry, sdwork, sdneighb

변수명 내 대문자 의미부여

Le<er   Meaning   Example  

B   Binary  variable   highschlB  

I   Indicator  variable   edIhs,  edIcol  

L   Value  Labels  used  by  mul1ple  variable   Lyesno  

M   Indicator  of  data  being  Missing   educM  

N   a  Nega1vely  coded  scale   sdworkN  (1=good,  2=neutral,  3=bad)  

O   not  recommend  to  use  

P   a  Posi1vely  coded  scale   sdkidsP  (1=bad,  2=neutral,  3=good)  

S   the  unchanged  Source  variable   educS,  Seduc  

V   Version  number  for  modified  variables   marstatV2  

X   a  temporary  variable   Xtemp  

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 28

5. 업무의 자동화

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 29

반복되는 자료관리: 해결을 위한 도구들

•  Macro

•  Saved results •  Loops •  The include command

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 30

Macro

•  긴 문자열이나 숫자들을 축약하여 대치 logit y var1 var2 var3

local rhs “var1 var2 var3”

logit y `rhs’

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 31

summarize lfp k5 k618 age wc hc lwg inc logit lfp k5 k618 age wc hc lwg inc local myvar “lfp k5 k618 age wc hc lwg inc” summarize `myvar’ logit `myvar’

macro 기능의 활용 예

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 32

Saved Results

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 33

•  .

Loop 구문(1): 반복작업 패턴을 찾아라.

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 34

•  세금은 수입의 10%이다. 각 달마다 내야되는 세금변수(taxinc1~12)를 만들어라.

Loop 구문(1): 반복작업 패턴을 찾아라.

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 35

•  세금은 수입의 10%이다. 각 달마다 내야되는 세금변수(taxinc1~12)를 만들어라.

Loop 구문(2): 반복작업 패턴을 찾아라.

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 36

•  지난달보다 수입이 적으면 1 같거나 높으면 0 의 값을 갖는 변수(lowinc2~12)를 만들어라.

Loop 구문(2): 반복작업 패턴을 찾아라.

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 37

•  지난달보다 수입이 적으면 1 같거나 높으면 0 의 값을 갖는 변수(lowinc2~12)를 만들어라.

만약 (inc2 < inc1) à lowinc2=1 이다.

만약 (inc2 >= inc1) à lowinc2=0 이다.

Take Home message

•  자료를 관리/분석하는 것은 체계적이어야 한다.

•  계획/정리/문서화 하기는 따로따로가 아닌 동시에 통합된 원칙아래에서 이루어져야 한다.

•  자료조작과 분석작업은 별도로 하는 것이 중요하다.

•  자료관리/분석에는 왕도가 없지만 덜 고생하는 방법은 분명 존재한다.

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 38

경청해주셔서 감사합니다.

April 2, 2015 2015 상반기 퇴원손상 및 심정지 조사팀 워크샵 39