통계공부/Stata

[Stata] Do file 작성법(혹은 팁)

대학원생A씨 2020. 3. 3. 19:42
728x90
반응형

이번 포스팅에서는 Stata 프로그램의 Do file에 대한 내용을 작성하고자 한다.

먼저, do file이란 stata로 통계를 돌릴 때 사용한 명령어를 정리할 수 있는 파일이다.

 

Stata 프로그램을 켰을 때, 상단 메뉴에서 빨간 네모를 클릭하면 Do-file editor가 열린다.

왼쪽 사진에 빨간 네모를 클릭하면, 오른쪽 사진과 같은 창이 뜬다.

 

오른쪽 사진에서와 같이 메모장 같은 공간에 명령어들을 적고 저장할 수 있다.

그런데 Do file을 작성해야 하는 이유는 무엇일까?

사실 간단한 분석을 돌릴 때는 그냥 syntax만 입력하여(혹은 클릭을 통해) 통계를 돌리기만 해도 괜찮다.

하지만 논문 투고를 위해 데이터를 돌리거나, 반복 syntax 작업이 많은 경우, 혹은 syntax를 기억해두면 좋은 경우(다른 분석에서 또 쓸 일이 많을 것 같은 경우) 등에는 do file을 작성하여 작업 과정을 기록해둘 필요가 있다.

 

예를 들어, 연구자가 논문 투고를 했다고 치자이 때, 논문 심사평을 듣고 데이터를 다시 돌려야 하는 경우가 발생할 수 있는데, 대부분 논문제출 후 심사까지 기간이 꽤 걸려 do file을 저장해놓지 않으면 내가 어떻게 코드를 입력하여 데이터를 돌렸는지 까먹는 경우가 다반사다. 코드를 기억한다 하더라도 사실 같은 작업을 반복해야 하므로 매우 번거롭지 않을 수 없다. 그래서 처음 데이터 분석할 때부터 Do file을 정성스럽게 작성하여 저장해두면 두고두고 편하다특히 패널자료를 많이 돌리는 대학원생이라면, 사실상 쓰는 패널은 한정되어 있으므로 do file을 잘 저장해두면 여러모로 편리하다.

 

 

그렇다면 do file은 어떻게 작성하는 것이 좋을까?

Do file 작성은 연구자마다 자신만의 스타일이 있으며, 여러 번 do file을 작성하다보면 본인만의 노하우가 생길 것이다. 그래서 이후 설명할 팁(?)들은 참고하여 자신의 스타일에 맞게 수정하여 적용하는 것을 추천한다.

 


 

 

1. 첫 부분에 통계분석과 관련된 기본 정보 기입하기

Do file의 처음 부분에는 통계분석과 관련된 기본 정보를 입력해두면 좋다.

예를 들어해당 분석의 목적(통계수업 실습용, 논문 투고를 위한 분석, 학술대회 준비 등) 분석 날짜, 그리고 원데이터를 적어두면 좋다. 또한 코드를 공유할 경우에는 본인의 이름이나 메일 주소를 기입하기도 한다. 굳이 이걸 적어두지 않아도 대충 코드를 보면 기억이 날 수 있지만, 나중에 통계프로그램을 많이 돌리다보면 do file이 수없이 축적되는데 그걸 시간들여가며 보고 있는 것도 일이기 때문에 처음에는 귀찮지만 이렇게 간단한 정보만 기입해두어도 꽤 편리하다. 포맷은 자기 마음이니, 원하는 스타일을 하나 지정해서 계속 복사해서 붙여넣고 쓰면 편할 것이다.

 

 

2. 분석 단계별로 간단한 설명 붙이기

데이터를 분석하는 과정을 단계별로 정리해두면 나중에 do file만 보고 분석이 어떻게 이루어졌는지 파악하기 쉽다. 물론 처음부터 do file을 깔끔하게 정리하면서 데이터를 돌리는게 쉽지는 않지만, 통계를 다시 돌려야 하는 경우가 많이 발생하기 때문에 귀찮더라도 처음부터 자신의 분석 과정을 잘 정리해두는 것을 추천한다.

 

참고로 Do file에서는 줄 맨 처음에 * 혹은 / 을 붙이면 문장 전체가 초록색이 되는데, 이는 해당 줄이 코드로 인식되지 않고 실행이 되지 않는 것을 의미한다. , 앞에 *이나 / 코드를 설명하거나 부연 설명을 덧붙일 때 사용하면 유용하다. , 문장 처음에 붙여야지 중간에 붙이면 얘를 코드의 일부로 인식해버려 코드를 실행했을 때 오류가 뜬다.

그래서 위의 사진과 같이 위에 syntax를 입력하고, 해당 syntax를 설명하고 싶을 때 아랫줄로 내려가 * 혹은 /를 붙이고 코드 설명을 써주어야 한다. 설명은 자기가 편한 언어로 설정하면 되는데, 간혹 한글은 Stata 프로그램 버젼에 따라 깨져서 글씨가 안 보이는 경우가 있다

 

그런데 코드 한 줄 한 줄마다 저렇게 별 표를 붙여 설명을 달면 개인적으로는 지저분하게 느껴져, 맨 아래에 쭉 설명을 쓰는 것을 선호하는 편이다. 이것도 개인마다의 취향이니, 본인이 do file을 작성하면서 편한 방식을 채택하면 된다. 예시로 패널 데이터를 사용 중인데, 연구대상자로 15-24세를 선정하고 무응답을 제거했다는 내용을 간단히 기입하였다이렇게 해두면 나중에 코드를 보면서 오류가 있는지 없는지 확인하기도 쉽다.

 

참고로 저기 빨간 네모로 표시한 /// do file에서 긴 명령어를 보기 좋게 여러 줄로 나누어 작성하고 싶을 때 사용한다.

, ///을 사용하면 아래 코드까지 전체 하나의 코드로 인식을 해준다는 의미이다. 만약 저 ///을 쓰지 않으면 윗줄과 아랫줄의 코드를 한 줄의 syntax가 아닌 두 줄의 syntax, 즉 독립적인 syntax로 인식하여 오류가 발생한다.

 

 

3. Do file 공유에 대해 신중히 생각하기

아마 분석을 많이 돌려본 대학원생이라면 공감할 것인데, syntax를 얼마나 잘 작성하느냐도 연구자의 실력이다. 컴퓨터 프로그래밍 언어에 대해 잘은 모르지만, 같은 작업을 수행하는 코드를 작성한다 하더라도 A보다 B의 코드가 훨씬 간결하면 A보다 B가 실력이 있는 것이다. 여기서 통계 분석을 위해 작성하는 syntax도 마찬가지이다. 그래서 do file 공유에 관해서는 신중히 생각해 볼 필요가 있다... 물론 해외 저널 투고시 데이터를 조작하지 않고 제대로 돌렸는지 확인하기 위해 do file까지 요구하는 경우도 있다고 들었는데, 이런 경우를 제외하고는 do file을 굳이 공유할 필요가 있나 싶다. , 추가적으로 여러 명이 팀프로젝트를 통해 데이터 분석 작업을 공유하는 경우에도 물론 do file을 공유해야 한다(이런 경우에는 특히 더 do file을 모두가 알아볼 수 있게 자세한 설명과 보기 좋게 정리하는 것이 중요하다!). 사실상 통계 워크숍에 가면, do file 전체를 그냥 공유해서 나누어주기 보다는 수업 들은 사람들만 syntax를 알 수 있게 do file의 일부부만 공유하는 것이 다반사다(제일 중요한 핵심 부분은 수업을 들으면서 개인이 추가 작업을 하도록 유도하는 것이다). 이처럼 do file은 연구자 개인에게 중요한 자산?일 수 있으므로, do file 작업이 귀찮더라도 공을 들여 깔끔히 작성하고 공유에 대해서는 신중해야 한다고 개인적으로 생각한다.

 


 

처음 포스팅 내용을 구상할 때는, 워낙에 do file의 중요성에 대해 체감하는 바가 커서(개인적으로는 통계 분석시에는 무조건 do file을 작성하는 편이다) 쓸 내용이 많을 줄 알았는데 막상 쓰고 보니 작성과 관련하여 제공할 팁이 많지 않았다. 개인마다 자주 쓰는 syntax가 다르고, 여기서는 syntax를 설명할 것이 아니었기 때문이어서 그럴 수도 있지만, 사실상 do file은 직접 본인이 쓰면서 자신만의 습관을 기르는 것이 중요하다고 생각한다. 이번 포스팅에서 제공한 팁은 개인적으로 do file을 여러 번 작성하면서, do file을 작성할 때 이런 식으로 정리하면 좋다는 하나의 제안으로 받아들이면 좋을 것 같다

 

728x90
반응형