Emacs as a text editor for STATA

STATA 2010. 4. 26. 19:23

STATA를 제대로 사용하려면, 최소한 .do file은 작성할 줄 알아야 한다. 해본 사람은 알겠지만 STATA로 하는 작업이라는게 .do 파일에서 단순하게 one by one으로 명령을 batch식으로 실행하는 것에만 사용하더라도 예사로 5,60 줄이 넘어가기 마련이다. 이런 do 파일을 실행해보고, 어딘가 고쳐야 할 데가 있으면 다시 do 파일을 다시 수정해서 실행하고 하는 일을 반복해야 한다. 이런 일을 조금이라도 효율적으로 하기 위해서는 어쩔 수 없이 text editor를 필요로 하게 된다.

STATA가 제공하는 do file editor가 첫번째 선택이 될 수 있다. 나는 이것을 써보지 않았다. 그다지 좋은 놈이 아니기도 하고, 다른 사람들도 쓰는 것을 본 일이 없다. 나 또한 이 놈을 배우거나 사용하고 싶은 생각은 별로 없고, 그다지 추천할만 것도 되지 못한다.

그다음, windows에서 제공하는 notepad가 있겠다. 이놈을 사용하느니 차라리 STATA가 나을 수도 있다.

앞의 둘은 철저하게 비추천의 에디터이다.

내가 오랜동안 사용한 것은 상용 텍스트 에디터의 하나인 Ultraedit이다. 오랜동안 10판을 썼고, 요즘은 15판도 넘어 간 것으로 보인다. 버전이 올라갈면서 프로그램이 무거워진 것이 문제이다. 내가 이놈을 좋아했던 이유 중의 하나는 column 단위 로 문서처리를 할 수 있었던 것과, 속도가 좋았다는 점이다. 그러나 역시 최고의 문제는 이 놈이 상용이라는 것이다. 

그래서, 최근 ultraedit의 대안으로 notepad++을 한번 써봤다. 돈 내지 않고 사용할 수 있는 장점이 있고 인터페이스도 좋았지만, 문서내 검색기능은 최악이었다.

다시 적절한 텍스트에디터가 무엇인가를 찾아보고 있는 중에, 결국 emacs를 다시 한 번 만져보기로 했다.
emacs는 소위 프로그래머들에게는 어떤 면에서는 종교적 신앙으로 떠받들여지는 단지 텍스트 에디터가 아닌, 그 이상의 그 무엇이다. 그러나 나같은 문외한이 사용하기에는 진입장벽이 너무 높은 것도 사실이다. 이것 저것 소개하는 글을 읽어봐도, 처음에 익숙해지기까지 적지 않은 노력이 필요한 것으로 보인다. 나 또한 같은 이유로 몇 번 사용을 시도했다가 접었다. 

그러나 다시 한 번 시도해봐야겠다는 생각이 들게 하는 매력을 느끼게 하는 내용들을 아래와 같이 확인하게 되었다.

1. http://ess.r-project.org/
이 emacs add-ons이 STATA를 비롯한 statistics tools의 scripting language의 syntax를 지원한다는 사실을 알았다. 상당히 꾸준히 노력봉사하는 것으로 보아, 신뢰가 가는 것이고 써보고 싶은 것이다. 

이 아저씨의 글을 보면서, 이 아저씨가 추구하는 연구를 전후방적으로 통합하려는 노력에 왠지 매력을 느끼게 되었다. 사실 나 또한 이런 "컴퓨터의 도움을 받으면서, 또한 상업적인 이유에서 오는 그 어떤 제약도 피할 수 있는 통합적 연구환경"에 대한 욕심이 있는 것도 한몫했다. 첨부파일 같이 넣은 이 아저씨가 쓴 글을 읽으면서도 나도 저래봤으면 싶은 생각이 들었다.

3. 어쨌거나 세상에는 비상용이면서도 내가 하는 종류의 공부에 필요한 것들이, 적어도 컴퓨팅의 환경에서 완벽 이상으로 제공되고 있다는 사실이다. 상용 컴퓨터  프로그램에 의존하여 일을 하다보면 언제나 한계에 부딪히는게 사실이다. 예를 들어 지금 내가 사용하는 통계패키지인 STATA의 경우도 그렇다. STATA는 그 명령어 하나를 파악하는데 필요한 정보를 얻는 것이 너무나 어렵다. STATA를 제작하여 판매하는 회사의 비즈니스 모델이 프로그램의 카피라이트에는 무심한 반면, 그 프로그램을 돌리는데 필요한 사용법 강좌, 책자들에 관해서는 대단히 엄격하게 저작권을 방어할 뿐 아니라, 일단 그것들이 아직 학생인 내가 감당하기에는 너무 비싸다는 점이 언제나 한계가 된다. 어차피 STATA의 프로그래밍 언어를 일일이 익혀야지만, 그것을 제대로 활용할 수 있다는 점을 고려한다면, 이렇게 매번 명령어 하나 더 익히려고 할 때마다 그 정보를 얻는 것에서 삐걱거리는 현상황을 유지하는 것이 과연 얼마나 내게 유리한지가 의심스럽기도 하다. 일단 "돈"으로 사람의 발목을 잡아매는 것이 못마땅한 것도 사실이다.

어쨌거나, 
Emacs를 사용해서 STATA do, ado 등의 파일을 작성하는 것을 시작하는 것으로 종국에 상용프로그램에서 완전히 자유로워지는 상황에 이르는 첫걸음을 하는 것이 좋겠다 싶다.



:

Social Network Analysis module of Python

STATA 2010. 4. 21. 20:54

많은 양의 Network data를 다뤄야 하는 경우, UCINET같은 기존의 패키지를 사용하는 것이 시간이 걸리는 때가 있다. 이런 경우 뭔가 프로그래밍을 통해서 작업을 자동화하고 싶은 마음이 들기 마련이다.

나는 최근 보나치치 파워를 STATA (ver.9 이상)에서 제공하는 matrix 연산 전문 프로그램인 mata를 통해서 계산하였다. 보나치치 파워 메저의 경우 다행히 비교적 간단한 행렬연산으로 산출이 가능하기 때문에 mata 언어로 구현이 가능했다.

그런데, Freeman이 제시한 Betweenness centrality 의 경우 algorithm 을 통해서 연산할 수 밖에 없고 이는 기존의 연구자들이 제시한 좋은 알고리즘이 있기는 하지만, 그것을 이해해서 프로그래밍 언어로 구현하는 것은 무엇보다도 시간이 들기 마련이다. 처음부터 모두 직접 다시 만드는 노력을 한다는 것은 찾아보면 이미 누군가 사용할 수 있는 프로그램들을 제시하고 있는 경우가 많은 요즘에 적절한 일은 아니라 하겠다.

그래서 나도 혹시 내가 사용할 수 있는 비교적 간편한 프로그램 코드가 없을까를 살펴보았고, 아래와 같은 것을 발견하였다.

Python.  약간만 검색해보면 최근 Python이 얼마나 다양한 분야에서 사용하고 있는 프로그래밍 언어인지 알 수 있다. Python의 가장 큰 강점 중의 하나는 엄청나게 많은 "이미 만들어진 모듈"들이 인터넷 위에 완전 무료로 존재한다는 것이다. 그 언어 자체의 간편, 명료한 것에 덤으로 세상에 널려 있는 다양한 모듈들은 python을 떠오르는 프로그래밍 언어로 만들어 주고 있다.

그런 모듈들 중에 Social Network Analysis를 전문으로 하는 것들도 있고, 그 중 한 가지를 발견하였다.

Networkx (http://networkx.lanl.gov/)가 바로 그 중 하나이다. 
지금 이 모듈을 이용하여 약간 기초적인 것으로 내가 원하는 네트워크 연산을 실시해보았는데, 괜찮아 보였다. 

Networkx를 설치하려고 하니, python egg라는 파일로 설치해야 하는데, 이 놈은 

networkx의 그림 그리기 기능을 사용하기 위해서는, 
http://matplotlib.sourceforge.net/users/installing.html 도 함께 설치해주어야 한다.

그리고 matplotlib이 실행되기 위해서는 numpy http://numpy.scipy.org/ 도 설치되어야 한다. 

이렇게 따로 따로 다 설치해줘야 하다보니 적응하기 전까지는 분명히 복잡하다. 

Python도 최근 3.x 버전으로 업그레이드하면서 2.x 버전과의 호환성을 단절했기 때문에 2.6이하의 python을 설치해야지만 networkx를 사용할 수 있다. networkx는 아직 3.x 버전을 지원하지 않기 때문이다. 








:

엑셀로 차트 그리기에 관한 좋은 자료

STATA 2010. 3. 15. 17:48

누가 뭐라고 해서 마이크로소프트 엑셀은 현재 가장 많이 사용되는 스프레드시트 프로그램이다.

그리고 자료를 정리하는 데도 많이 사용되는 것인데, 의외로 공부하는 사람들이 엑셀을 제대로 사용하지 못해서 낭패를 보는 경우가 있다. 스프레드시트가 익숙해지기 전까지는 도통 어떻게 사용해야 하는 것인지를 모를 수밖에 없는데, 엑셀로 차트 그리는 것도 그런 쉽게 이해하기 어려운 것 중의 하나가 아닌가 싶다. 

첨부되어 있는 자료는 일전에 내가 인터넷에서 발견한 엑셀 차트그리기를 그래도 쉽게 잘 설명하고 있는 자료이다. 50페이지 정도에 각종 차트 그리는 법을 의외로 쉽게 설명하고 있어 도움이 된다.


'STATA' 카테고리의 다른 글

마이크로 엑셀 2003 매크로 작성에 관한 정보  (0) 2010.04.27
Emacs as a text editor for STATA  (0) 2010.04.26
Social Network Analysis module of Python  (0) 2010.04.21
유용한 사이트  (0) 2010.03.13
이 블로그에서 하려는 일  (0) 2010.03.11
: