Korea University

KB Korea Hangeul Help Sitemap Calc Link



자료분석 소프트웨어 SAS와 Stata
이 문서는 고려대학교 컴퓨터클럽의 정기간행물인 오대호 (2002년 가을)에 게재될 원고이며 인디아나대학교의 컴퓨팅환경과 자료분석 소프트웨어들의 최근 경향을 SAS와 Stata 위주로 적고 있다.

차례

  1. 구세주가 된 자료분석 경험과 기술
  2. 인디아나대학교 컴퓨팅 환경
  3. 인디아나대학교에서 지원하는 자료분석 소프트웨어
  4. 종합자료분석 소프트웨어 SAS
  5. Stata: 작지만 빠르고 강하다
  6. Econometrics에 관심을 가진 후배들에게
  7. 좋은 목수의 연장

구세주가 된 자료분석 경험과 기술

가끔씩은 내가 대학에서 컴퓨터를 배우지 않았다면 어떠했을까 자문(自問)을 해본다. 그리고 최근에는 내가 자료분석방법과 관련 소프트웨어를 공부하지 않았다면 어떠했을까 하는 생각을 해본다. 그냥 다행이 아니라 정말 천만 다행이라는 생각에 안도의 한숨을 내쉬곤 한다.

Apple II에 이어 IBM-PC/XT가 보급되던 시절 학과공부보다 컴퓨터공부(혹은 동아리 생활)에 더 열중이었던 나는 학과 친구들에게 이단아(異端兒)로 보였음에 틀림없다. 비망록(備忘錄)을 읽는데 큰 장애를 주는 악필(惡筆) 중의 하나였던 내가 워드프로세서를 제일 먼저 배웠던 것은 당연한 일이었다. 중앙한글(for Apple II), 보석글, 바른글, 팔란티어, 그리고 한글과 컴퓨터의 하안글. 아직도 현도형(83학번 경영)이 동배(同輩)인 은주를 XT앞에 앉혀놓고 보석글II를 가르쳐주시던 기억이 난다. 누가 오든 컴퓨터에만 열중이시던 근호형(85학번 화공). 어느날 형은 나를 청계천 세운상가에 데려가 이것저것을 구경시켜 주셨다. 늦은 점심을 먹고 나서 뚱뚱한 남자배우가 나오는 절반은 코메디이고 절반은 액션인 홍콩영화를 보러 갔었다. 그리고 기영이형(86학번 통계)과 Lotus 1-2-3 책을 사서 Spreadsheet를 처음으로 공부하던 4층 구석의 동아리방 생각이 난다. 칸막이로 되어 있어서 컴퓨터를 케비넷에 넣어 보관했던 시절, 밤낮을 가리지 않고 우리는 얼마나 많이 컴퓨터를 넣고 빼고 했는지 모른다. 물걸레로 바닥청소를 시키고 나서 따뜻한 커피 한잔을 뽑아주시던 “엄마” 숙형누나(85학번 수교). 가을이었을까? Paintbrush가 든 5.25인치 디스크 한 장과 복사한 매뉴얼을 내게 건네던 동배 얼굴이 떠오른다. 다름 아닌 구준회군(87학번 지질)이다. 컴퓨터를 처음 공부하던 내게 더할 수 없는 의욕과 활력을 주었던 사람들이다.

많은 사람들이 Pascal이나 C를 공부하던 시절, 나는 각자 알아서 공부해도 된다고 간주되던 워드프로세서, Spreadsheet, Database에 더 많은 관심을 보였다. 그리고 통계분석과 SAS에 더 많은 열의를 보였다. 프로그래밍으로는 이공대에 다니는 동배들을 이길 수 없다고 판단했을까? 아마도 결정적인 이유는 그것이 학과공부(계량분석)에 많이 관련이 되기 때문이었다. 프로그래밍이 아니면 오락이나 그래픽(예컨대 Dr. Halo)에 사람들의 관심이 몰렸던 시절의 얘기다. 어디서 SAS를 구하고(스무장 쯤의 디스크로 복사해서) 마음 설레던 기억이 어렴풋이 떠오른다. 어떻게 날짜를 쉽게 바꿀 수 있을까 이리 저리 고민하던 기억들… 100 column이 넘는 관측치(observation)를 읽지 못해 안절부절이었을 때, 이런저런 설명없이 그냥 LRECL 옵션이 있다고만 일러주시던 문화형(78학번 산공), 전화를 끊자마자 이리저리 뒤져 겨우 사용법을 알아낸 뒤 느꼈던 강한 희열을 나는 기억한다. 수 천 개는 됨직한 데이터를 dBase III+로 간단히 처리하는 것을 보여주셨던 현도형의 자부심 가득한 표정 또한 잊지 못한다. 그리고… 알바이트한 돈으로 두툼한 dBase IV 매뉴얼 세권을 사서 동아리에 꽂아놓고 뿌듯해 하던 어느 겨울날의 내 모습을 또한 잊지 못한다. 개인적으로 어려웠던 시절, 차라리 끼니를 거르는 것이 더 행복했던 그 기억을…

누가 봐도 유치하기 짝없는 이러한 기억들을 굳이 여기에 적는 까닭이 있다. 3년이나 되는 이국생활에서 그 유치한 기억들이 내게 힘이 되고 보람이 되고 있기 때문이다. 한국을 도망치듯 떠나올 때 나는 늦어도 2년 내에 “자립”을 할 수 있을 것으로 기대했다. 아무리 외국인이라고 하지만 박사과정 학생들에게 장학금을 주지 않는다는 것은 상식 밖의 일이라고 믿었기 때문이다. 하지만 그 상식 밖의 일이 현실이 되었을 때(물론 학과별로 사정은 다르지만), 그리고 이런 저런 이유로 내게 불리하게 돌아가는 상황을 인식했을 때, 충격과 실망은 이루 말할 수 없는 것이었다. 더구나 내가 이제는 풋풋한 열정만으로도 자신 있게 살았던 스무살 시절이 더 이상 아님을 깨달았을 때, 상실감과 위기감으로 밤늦도록 잠을 이루지 못하였다. 다 때가 있는 법이라고… 그렇게 나는 스스로를 위로할 수밖에 없었다.

이곳에 와서 1년이 채 되지 않았을 때, 오래 동안 Nonprofit sector (한국에서는 NGO로 많이 알려진)에 많은 업적을 쌓아오신 Kirsten Gronbjerg 선생님의 최근 연구를 도와드릴 기회를 갖게 되었다. 다른 경쟁자를 두고 내게 기회를 주신 이유는 아마도 내가 가진 자료분석경험과 소프트웨어기술을 높이 사셨기 때문이리라. 영어를 잘하는 것도 아니며 주눅든 사람처럼 늘 움츠려있었던 당시의 나를 선택한 이유가 달리 있었을까? 거의 Full Tuition에 가까운 재정적인 도움을 주신 것은 그 당시 내게 큰 힘이 되었다. 하지만 무엇보다도 중요한 사실은 할머니 같은 선생님께서 의사소통이 원만하지 않은 것을 전혀 내색하지 않으시고 (항상 기다려주시면서) 꾸준한 믿음을 주신 것이고, 그래서 내가 자신감을 어느 정도 회복하게 된 것이다. 우연이었을까? 선생님댁으로 저녁식사를 하러 갔을 때, 선생님 남편께서 한국전쟁 때의 대구와 인천의 모습을 회고하시면서, 시카고 대학에서 지도한 한국인 제자가 있다며 돌아가면 안부를 전해달라고 당부하셨다. 바로 그 제자가 고대 사회학과의 윤인진 선생님이었다. 정말 미국도 좁단 말인가!

10만개에 달하는 Nonprofit organizations에 대한 자세한 정보를 처리하는 과정에서 나는 SAS가 가진 좋은 기능들을 최대한 활용했다. 다른 연구조교들에게 친숙한 database (MS ACCESS)와 spreadsheet (EXCEL)를 넘나들며 그때그때 필요한 자료분석을 수행해야 했다. 한걸음 더 나아가 MS SQL을 이용하여 선생님이 댁에서도 웹으로 필요한 분석을 할 수 있게끔 ASP와 PERL 스크립트도 작성했다. 데이터베이스의 웹연동은 내겐 새로운 것이었으나, 바로 그 “유치한” 경험들이 새로운 시도를 촉발시켰으며 또한 가능하게 했다. 인디아나 대학(IU)에서 제공하는 훌륭한 Computing Environment가 의욕을 돋구었음은 물론이다. 한국과는 달리 이미 모든 것(hardware, software, manual)은 준비되어 있으니 필요한 것은 관심과 하고자 하는 의욕일 뿐이다.

지난 겨울부터 나는 인디아나 대학 UITS (University Information Technology Service)의 Center for Statistical and Mathematical Computing (Stat/math Center)에서 Software Consultant로 일하게 되었다. GA (Graduate Assistant) position으로 Full Tuition과 1천 달러 정도의 Stipend가 나오는 자리이다. 하지만 무엇보다도 매력적인 것은 원하는 거의 모든 종류의 소프트웨어를 각종 컴퓨터에서 (PC, Mac, Unix) 마음대로 사용할 수 있고, 거의 완벽하게 갖추어진 매뉴얼을 볼 수 있다는 점이다. 다른 GA position과는 달리 학기초를 제외하고는 특별히 바쁜 일이 없고, 방학 때에도 Stipend를 계속 받기 때문에 지난 겨울 많은 사람들이 지원했었다.

나는 정치학과 전공이 Theory and Methodology인데, 다행인지 네 과목 이상의 Econometrics를 공부해서 그 자리에서 요구하는 최소한의 조건을 갖추었다. 하지만 Director는 컨설팅 경험과 소프트웨어기술까지 요구했다(물론 영어구사력까지). 생각컨대, 그는 내가 가진 컴퓨터와 소프트웨어 경험 그리고 Gronbjerg선생님의 연구조교 경험을 높이 평가했던 모양이다. 센터에서 일을 시작하자마자 나는 다른 Staff들이 프로그래밍 경험이 거의 없고 단순반복에 가까운 일에 “전문성”을 가지고 있다는 것을 알게 되었다. 그들이 며칠 동안 끙끙거리던 일을 SAS/SQL을 이용해서 두어 시간 만에 해결해 주었을 때 Director와 Staff들의 얼굴에 걸린 경이롭다는 표정을 아직도 기억한다(바보들… SQL의 자세한 문법은 그날 공부한 건데… 중요한 건 idea와 logic이란 말이지).

어쨌든 나는 두 번에 걸친 인터뷰를 해야 했고, 마지막 날 정말 황당하기까지 한 Written Test까지 쳐야 했다. 하나는 간단한 문제를 주고 SAS와 SPSS 프로그램을 그 자리에서 작성하는 것이었다. 다른 사람들에게는 모르겠지만 나에게는 깜짝 놀랄 만큼 쉬운 일이었다. 다른 종류의 문제는 말 그대로 황당 그 자체였다. 예를 들면, 다음 소프트웨어 중(SAS, SPSS, GAUSS, Minitab, TSP, BMDP)에서 어느 특정한 함수를 사용하지 않는 것을 찾아내라는 식이었다. 학교 다닐 때 이것저것 “건드려본” 경험이 없는 한 정말 맨땅에 헤딩하는 느낌이 들만한 문제들이었다. 바로 그 “유치한” 경험이 내게 답을 찾는데 큰 도움이 되었다고 한다면 누가 믿을는지… Director는 답지를 살펴보더니 영어로 전화받는 것에 신경쓰라고 일러주고, 곧바로 다른 Staff들에게 나를 소개시켜 주었다.

지난 주에 나는 또다시 오대호(五大虎)를 받아보게 되었다. 역사는 되풀이된다고 했던가? 나는 1988년 전산고우회(電算高友會) 명부를 정리하면서 당시 피닉스에서 공부하고 계시던 이석주(71학번 토목) 선배의 주소를 알게 되었다. 동아리 사정상 내 주머니를 털어 그 분께 고대신문을 보내드렸다(오대호도 보내드렸는지는 잘 모르겠다). 그리고 선배님께서 보내주신 장문(長文)의 편지를 들고 얼마나 기뻐했는지 모른다. 한국으로 돌아오셔서 술을 같이 하는 자리에서 그냥 “형”이라 부르라고 하시던 석주형. 그런데 바로 내가 그렇게 된 셈이다. 멀리서도 임원회의록을 볼 수 있도록 해주고, 또 잊지 않고 동아리의 자랑인 오대호까지 보내주는 후배들이 사랑스럽다. 석주형도 옛날에 이런 느낌이셨을까?

사정이 여의치 않아 3년 내리 한번도 한국에 가보지 못했으니 후배들에게 국수 한 그릇도 사주지 못한 마음이 영 편치 않다. 내가 해줄 수 있는 것은 그저 지금 하고 있는 일(관심)에서 얻은 지식과 정보를 적어주는 것 뿐인가 싶다. 위에서 길게 늘어놓은 “유치함”을 변명으로 삼고, 인디아나 대학의 Computing Environment와 최근 자료분석 소프트웨어 경향을 SAS와 Stata위주로 적어본다. Econometrics를 공부하고 싶은 후배들을 위해 조언의 글을 덧붙인다.

Up

인디아나대학교 컴퓨팅 환경

먼저 IU의 Computing Environment에 대해 특징적인 면을 간략이 소개할까 한다. IU는 학교랭킹으로 치면 상위에 올라있지는 않으나 도서관이나 IT (Information Technology) 수준으로는 미국대학 5위 정도로 평가되고 있다. 아무리 비판적으로 평가를 해도 정말 배울 점이 많은 IT시설이며, 조직이며, 운영이다. 컴퓨터를 공부하는 후배들에게 좋은 참고가 되리라 생각하면서, 동아리방에서도 비슷한 환경을 연습 삼아 구현해볼 것을 권해본다.

UITS는 IT에 관한 업무를 담당하는 부서인데, 고대의 정보전산원(과거의 전자계산소)과 비슷하다. 하지만 규모나 학교에서 차지하는 위상에서 차원이 다르다. 가장 많은 인력이 각종 부서에서 일하고 있으며, 몇 년에 걸친 주정부의 예산감축에도 불구하고 가장 많은 예산을 지원받는다고 한다. UITS본부는 학교 밖에 별도의 건물에 위치하고 있으며, 학교 건물 내에 수십 개의 부서(컴퓨터실 포함)를 운영하고 있다. UITS는 본교인 블루밍턴(Bloomington) 캠퍼스 뿐만 아니라 인디아나폴리스의 IUPUI를 비롯한 주요 지역의 분교캠퍼스까지 지원하고 있다. 하지만 단순히 설치된 컴퓨터의 운영과 기술적인 지원에 그치지 않고 적극적으로 고객지향의 Computing Environment를 개발해나가는 정책을 펴고 있다. 기숙사와 아파트를 포함한 거의 모든 건물에 컴퓨터실(computer cluster)을 운영하고 있으며, 거기에는 똑같은 작업환경을 가지고 있는 공용컴퓨터(STC machine으로 부르는)가 설치되어 있다. 현재 주력기종은 Pentium III/IV급 PC와 PowerMac이다. 최근에는 관련 부서의 서비스를 통합하여 사용자중심의 서비스를 획기적으로 강화하기 위해 이른바 Falcon Project를 추진하고 있다.

비록 많은 사람들이 알고 지내지는 않지만, IU는 1996년부터 supercomputer를 도입하여 교직원과 학생들에게 개방하고 있다. IBM의 RS/6000 SP (Scalable Powerparallel System)는 현재 12개 frame으로 구성되어 있으며, 총 144개 노드(node)에 632개 processor를 가지고 있다. 처리속도는 1tera FLOP이며, 메모리는 452GB, Storage는 5.3TB에 이른다. 사용자들은 Aries complex (8 frames, 127nodes)라고 부르는 SP switch network system을 통해 접속할 수 있다. 고대의 서창캠퍼스쯤 되는 IUPUI에서는 Orion Complex (9nodes)를 통해 블루밍턴의 supercomputer에 접속한다 (최근에는 퍼듀대학 컴퓨터시스템과 연결하여 자원을 공유하고 있다). 대표적인 노드는 통계소프트웨어를 위한 aries05와 수학소프트웨어를 위한 aries09이다. 이러한 SP machine은 속도 뿐만 아니라 안정성 면에서 Workstation급인 SUN과 Silicon Graphics (SGI)의 장비와 크게 대비된다. 데이터 크기에 별 상관없이 엔터를 누르기가 무섭게 결과를 “토해”내는 SAS와 MATLAB을 상상해 보라! 고대 전산소의 IBM AIX를 사용했던 경험이 있어서인지 내게는 SP machine이 정겹게 느껴진다. 하지만 뭐니뭐니 해도 등록금에 포함된 technology fee외에 추가부담없이 고성능 컴퓨터를 캠퍼스 어디에서나(집에서도) 자유롭게 이용할 수 있다는 사실에 그저 놀랄 뿐이다(소수점 아래까지 “연필에 침발라가며” CPU running time을 계산해야 하는 동네와는 완전히 딴판이다).

또한 분야별로 전문 부서를 두어 최상의 서비스를 제공하고 있다. 예를 들면 database부서에서는 DB2, Oracle, MS-SQL를 직접 운영하면서 연구자들이 아무 어려움 없이 (비용부담을 해야 하지만) 대용량 데이터베이스 작업을 초고속 LAN이나 웹 환경에서 처리할 수 있도록 하고 있다. 재작년(2000) 연구조교들의 실수로 망가진 100MB의 ACCESS파일을 들고 갔을 때, Staff들은 온갖 Tool을 동원해서 밀고 빼더니, 급기야는 다른 부서 전문 Staff들까지 불러 6시간이 넘도록 데이터를 하나하나 떼어 낸 다음 재결합을 해주었다. 한 젊은 녀석은 비가 오는데도 인디아나폴리스로 Pacers 농구보러 간다며 일찍 도망갔지만, 그들은 이른바 Professional이 어떠한 것인지 “고객감동” 서비스가 무언지를 확실하게 보여주었다. Stats/Math Center도 전문부서 중의 하나로 통계나 수학관련 프로그램의 유지보수와 컨설팅 업무를 하고 있다. 개인주택을 개조한 센터 지하실과 2층에는 각종 컴퓨터에서 새로운 소프트웨어가 계속 테스트되고 있으며, 사용자들이 사용하는 소프트웨어를 실시간으로 같은 환경에서 점검하고 있다.

IU에서 network ID는 특별한 의미를 가진다. 한마디로 ID없이는 IU의 컴퓨터를 사용하는 것 자체가 불가능하다. 모든 학생들은 학생증과 network ID를 발급받는다. 이 ID는 때에 따라서는 학생증과 동일한 효력을 갖기도 한다. 수강신청과 정정도 컴퓨터로 해야 하며, 공지사항이나 강의에 관련된 내용도 전자우편이나 OnCourse라는 가상강의실을 통해서 전달되고 있다. 따라서 Spamming 등의 이유로 ID를 박탈당하면 정상적인 학교생활은 불가능해진다. ID가 만들어지면 서비스별로 해당서버에 같은 이름의 account가 생성된다. 기본적인 것은 전자우편, CFS라는 개인저장공간 (100MB), 그리고 프린터 Quota account이다. Quota account에는 그 사람이 언제 얼마나(몇장이나) 프린트했는지가 저장되며, Quota를 넘게 되면 별도의 비싼 비용을 물어야 한다. 개인이 신청해서 얻을 수 있는 것은 MDSS라고 부르는 대용량 FTP account (IBM HPSS), MS exchange account, 개인용 웹서버 account (SUN), 학교 웹서버 account (DEC), 각종 연구용 UNIX account (IBM, HP, SGI, SUN, etc) 등이다. PC든 Mac이든 Unix이든 한 ID로 모두 접속한다. 따라서 개인적으로 거의 10개 정도의 account를 별개의 서버에서 같은 ID로 가질 수 있다.

처음 블루밍턴에 왔을 때 가장 놀랐던 것은 네트웍 환경이었다. 사무실은 물론 학교아파트까지 완벽하게 연결된 네트웍은 속도는 물론이려니와 규모면에서 정말 놀랄 만했다. 아파트를 제외하고는 거의 언제나 100MB속도가 나고 있었고, 노드 수를 걱정하지 않을 만큼 엄청난 확장성을 가지고 있었다. 2000년 초에 이미 IU Internet Backbone은 T3로 확장되었다. Dynamic addressing을 사용하여 랩탑(노트북)을 어디에 꽂더라도 네트웍설정을 바꾸지 않고 작업을 계속할 수 있었다. 또한 사용자들에게는 약간 불편할 수도 있지만 안정성을 위해 Straight-through cable대신에 Twisted cable을 사용하고 있다. 재작년(2000) 경영학과부터 무선랜 환경을 도입하였는데, 현재 UITS를 포함한 주요 건물에서 10Mbps로 랩탑을 사용할 수 있다.

아파트에까지 컴퓨터실이 들어가 있기 때문에 특별한 경우가 아니면 Laptop이나 개인용 Desktop을 구입할 필요가 없다. 일단 Network ID를 가지고 있으면 어느 건물에서나 컴퓨터를 사용할 수 있기 때문이다. 또한 네트웍 상에서 개인용 저장공간(100MB)을 제공하기 때문에 디스크를 가지고 다닐 필요도 없다. 모든 공용컴퓨터에 ZIP 드라이브가 장착되어 있기 때문에 원하면 100-250MB ZIP Media를 호주머니에 넣고 다녀도 된다. 그보다 더 큰 파일을 가지고 있다면 Scratch라고 부르는 100기가급 공동저장공간을 이용할 수도 있다(나는 일본 만화영화 동영상-가끔씩은 이상한(?)-이 얼마나 많은지를 700-600MB짜리 동영상들이 널려있는 Scratch를 통해 알 수 있었다). 그것도 부족하면 교수진의 sponsorship을 받아 IBM의 고성능 저장장치(HPSS) 계정을 요청할 수도 있다. 적게는 수십 기가에서 많게는 수백 기가까지의 FTP account를 제공하고 있다(나는 현재 20기가 정도 공간을 할당 받아 사용하고 있는데 100MB미만의 파일은 아예 올리지 말랜다). 전송속도는 900-1200BPS 모뎀을 사용했던 “그때 그사람”들이 아니더라도 금방 느낄 수 있을 만큼 충분히 감동적이다. 당연히 학교에 나와서 집에 있는 컴퓨터에 네트웍 드라이브로 연결해서 작업을 할 수 있다.

UITS정책 중에서 배울만한 것 중의 하나는 점진적인 설비개선과 효과적인 운영에 관한 것이다. 공용컴퓨터에 설치될 소프트웨어들은 각종 컴퓨터에서 철저한 테스트를 거치고 있다. 물론 얼마 동안이라도 과거 버전과 새 버전이 같이 제공된다. 사용자들은 로그인할 때 두개 중의 한대의 서버에 접속되어 통계와 수학관련 소프트웨어를 사용하게 되는데, 이것은 일종의 가외성(加外性, Redundancy)이다. 쉽게 말해 두 대가 동시에 망가지지 않는 한 서비스는 계속된다. 또한 두 서버가 하드웨어 사양까지 똑같기 때문에 한 서버에서 문제가 발생하면 어떻게 그런 일이 벌어졌는지 추적하기가 쉽다는 장점을 가지고 있다. 하드웨어도 마찬가지이다. 입학하는 연도나 가용한 용량에 따라 개인에게 할당되는 메일서버가 다르다. Kate, Iago, Lear, Ariel 등과 같이 Shakespeare 작품에 나오는 Character 이름을 딴 메일서버 뿐만 아니라 대학원생과 교직원에게 허락되는 MS exchange도 같이 운영하고 있다. 물론 모든 전자우편주소는 @Indiana.edu로 동일하다. 따라서 동시에 모든 메일서버가 다운되어 대혼란이 빚어지는 일은 거의 가능하지 않다. 공용컴퓨터는 PC이든 Mac이든 일정한 시간 차이를 두고 다른 규격과 회사의 장비로 바뀌고 있다. 예컨대, 한 곳에서는 Dell컴퓨터로 바뀌는가 하면 얼마 지나서 다른 곳에서는 HP나 Gateway로 장비가 바뀐다. 내가 오던 1999년에는 대부분이 Pentium II에서 NT4.0 (workstation)이 돌아가고 있었는데, 어느 구석에서는 아직도 386이 먼지에 쌓여 “돌아가고” 있었다. Mac도 마찬가지이다. 아직 대부분의 Mac은 PowerPC지만 일부에서는 귀엽게 생긴 Cubic이 들어오고 있다. 학교 본관에는 “속보이는” Mac대신에 탁상전등같이 생긴 iMac이 들어왔다. 하지만 어느 경우이든 같은 Computing Environment(같은 소프트웨어, 같은 메뉴)를 제공하고 있어서 누구든 당황하지 않고 작업을 할 수 있다. 이러한 정책을 통해 하드웨어와 소프트웨어에 대한 사용자들의 반응(만족도)을 파악할 수 있게 되며, 다음 장비개선에 이를 반영함으로써 좀 더 유리하게 계약을 이끌 수 있다는 점에 주목할 필요가 있다.

다른 사람들과 나누어 갖는 미학도 빠뜨릴 수 없는 점이다. 소프트웨어의 경우 Vendor들과 장기 계약을 해서 저렴한 가격에 학교 구성원들이 사용할 수 있게 하고 있다(한국도 그렇게 하고 있다고 들었다). 개인이 원하면 Windows2000, XP, MS Office, SPSS 등을 5달러에 살 수 있고, Visual Studio는 iuware라는 소프트웨어 pool에서 아예 다운로드할 수 있다. 개인용 프린터 대신에 고성능프린터를 공유하는 것도 눈여겨 볼만하다. 보통 HP8100레이저 프린터를 공유해서 사용하고 있는데, 정말 시원스럽게 출력물을 토해내고 있다. 교수연구실은 고대 정경대학 연구실의 3분의 1도 되지 않을 만큼 좁고 책도 별로 없다. 널찍한 공간에 도서관처럼 꾸며 놓은 한국대학의 연구실과는 크게 대조가 된다. 도서관시설이 워낙 잘 되어 있기 때문에 책상에 앉아 필요한 논문과 도서를 검색해서 바로 도서관에 빌려오면 된다. 웬만한 논문은 복사할 필요 없이 jstor.com같은 데서 그냥 PDF로 다운로드하면 그만이다. 어쩌면 우리는 그 동안 먹고 살기에 바쁜 나머지 내 것만을 챙길 줄 알았지 같이 나누고 공유하는 지혜를 잊고 살아온 것은 아닌지…

UITS의 자랑이기도 한 Knowledgebase는 공유재(common-pool resources)를 적극적으로 만들고 효과적으로 활용하는 문화를 잘 보여주고 있다. 공유재를 얼마나 잘 관리하고 사용하는가는 그 사회의 격조(格調)를 가늠하는 척도이다(남이야 죽든 말든 내 밥그릇만 챙기는 무리들이 있다면, 바로 그들이 짐승과 다를 바 없는 미개인이다). Knowledgebase는 광범위한 FAQ의 집합체라고 할 수 있는데, 각 부서에서 관련되는 항목을 주기적으로 경신하거나 추가하고 있다. Staff들조차도 Knowledgebase를 업무에 자주 참조할 만큼 내용이 알차고 자세하다. 우리 K.U.C.C.에서도 컴퓨터에 관한 일반 FAQ, 각 분야에 컴퓨터를 응용할 때 생기는 문제점과 해결책, 나만의 Tips들을 모아 웹을 통해 회원은 물론이고 일반 대중에게 제공한다면 많은 호응을 얻을 수 있으리라 생각한다. 이는 곧 K.U.C.C.가 출범할 때 가슴에 품고 있었던 창립취지에 꼭 맞는 일이기도 하다. 우리 졸업생들이 다방면에서 많은 경험을 쌓아왔음을 내가 잘 알고 있으며, 우리 후배들은 이미 필요한 지식과 기술을 가지고 있지 않은가!

교육훈련에 관한 것도 지적할 만하다. UITS에서 제공하는 교육프로그램에는 소프트웨어 사용법 뿐만 아니라 컴퓨터의 기초, 하드웨어, 프로그래밍 등 거의 모든 분야를 포괄한다. 누구나 무료로 수강할 수 있는 STEP 프로그램은 연중 계속되는데, 초보자도 쉽게 이해할 수 있도록 구성되어 있다. 신입생 오리엔테이션에서 학생들은 UITS시설을 어떻게 이용하는지 교육을 받게 되지만, 언제라도 STEP프로그램을 수강하면 UITS 서비스를 사용하는데 필요한 충분한 지식과 기술을 얻을 수 있다. 교육용 교재는 한마디로 더 이상 자세하게 쓸 수 없을 만큼 구체적이고 자세하다(컴퓨터 앞에 앉고, Alt+Ctrl+Del키를 동시에 누르고, 그러면 어떤 화면이 나오는데, 처음 보이는 대화상자에 network ID를 넣고, Tab키를 누르고…). 물론 중급자를 위한 별도의 프로그램도 준비되어 있으며(비용이 만만치 않지만), 온라인상에서 Tutoring을 해주는 서비스도 제공하고 있다. 어지간한 문제는 Knowledgebase를 이용하면 어렵지 않게 해결할 수 있다. 각 컴퓨터실에는 Consultant들이 대기하고 있어서 발생할 수 있는 각종 문제를 처리하고 사용자들의 기본적인 질문에 답하고 있다.

마지막으로 Security에 관한 것이다. IU는 작년 초에 한번 Hacking사건이 일어나 CNN뉴스에까지 났었다. 그리고 올해 Nimda와 윈도우의 웹서버인 IIS를 잡아먹은 hacking program때문에 또 한번 UITS 내에서 (일반 사용자들은 잘 몰랐겠지만) 난리가 났었다. 그래서인지 UITS의 Security Office에서는 강경책을 채택하고 있다. 지정된 Security 표준을 갖추지 않은 Client들은 서버에 접속할 수 없거나 제한된 접속만 가능하다. 예를 들면, 나모웹에디터의 출판기능은 여기서 무용지물이다(access denied!). 극히 예외적인 경우를 제외하고 NT machine에서 IIS를 사용하는 것이 금지되었다. 또한 IIS에서 IP address를 활성화시키는 것을 기술적으로도 막아놓았다. Computer virus에 대해서도 실시간으로 점검하고, 매일 (새벽) 공용컴퓨터를 재부팅을 하면서 감염여부를 확인하고 있다. 어떤 날에는 사전 공지없이 (아마도 급박하다고 판단했을테지만) 일방적으로 컴퓨터사용을 중지시켜 사람들을 놀라게 하기도 한다. 어느 일요일 오후에 센터에 나가서 작업을 하다가 컴퓨터를 한 5cm 움직였더니 갑자기 삑삑빽빽 소리가 나고 5분도 안되어 네 명이나 되는 캠퍼스경찰이 몰려와서 신분증 제시를 요구하는 것이었다. 아니 경찰이 오기도 전에 통보가 되었는지 Director가 무슨 일이냐고 다급하게 전화로 묻는 것이었다. AD카드 뿐만 아니라 개인에게 부여된 비밀코드를 별도로 입력해야 건물에 들어갈 수 있는 것까지는 그렇다손 치더라도, 광케이블을 이용해서 조그마한 컴퓨터의 이동도 허락하지 않는 철저함에 나는 정말 질려버렸다. 하긴 밖에서 볼 때는 별볼일 없을 것 같은 건물이지만 막상 안에 있는 장비나 중요성을 보면 정말 그럴 만도 하다는 생각이 들기도 하지만. 이 모든 것이 사용자들을 불편하게 하지만 보안에 관하여 UITS를 신뢰할 수 있게 하는 요인이 되고 있다. Spam메일이나 Network ID의 오남용은 심각한 문제로 다루어지고 있음은 물론이다(센터 전자우편으로 오는 spam메일은 매일 평균 20통에 이르는데, 90% 이상이 한국에서 날아오는 것이며, 그 대부분이 성인사이트 발신이다. 나라망신이 따로 없다).

Up

인디아나대학교에서 제공하는 자료분석 소프트웨어

2002년 5월 현재 IU에서는 18종의 Statistical Software를 NT5.0(Windows 2000)과 OS9.xx/OS10.xx가 탑재된 공용컴퓨터를 통해 제공하고 있다. SAS (8.1x), SPSS (11.xx), Stata (7.xx), MINITAB (13.xx), BMDP (7.xx), S-PLUS (6.xx), SYSTAT (10.xx) 등과 같은 일반통계 프로그램뿐만 아니라 시계열분석 위주의 TSP (4.5x), RATS (5.xx), EVIEWS (4.1x)와 limited dependent variable을 위한 LIMDEP (7.xx), structural equation model을 위한 LISREL (8.5x)(작년까지는 SmallWaters의 AMOS-“에이머스”, not “아모스”-도 제공했음), Hierarchical regression model을 위한 HLM (5.xx), 행렬연산을 기반으로 한 GAUSS (4.xx)를 포함하고 있다. 기종별로 보자면, Mac에서는 SPSS (10.xx)와 Minitab이 사용 가능하고, UNIX에서는 전통적인 소프트웨어인 SAS(“쌔스”, not “싸스”), SPSS (6.xx), BMDP, TSP 뿐만 아니라 S-PLUS, RATS, LISREL, GAUSS(“갸우스” , not “거스”), GRIM(4.xx)가 설치되어 있다. PC에서는 S-PLUS, BMDP, TSP를 제외한 모든 소프웨어를 사용할 수 있다. Stata(“스태이타”, not “스타타”)는 UNIX와 Mac도 지원하지만 IU는 PC버전만 제공하고 있다. 반면 S-PLUS는 UNIX에서 대화형으로 사용할 수 있으며, 메뉴시스템이 제공되는 PC버전은 센터에서 테스트용으로만 사용하고 있다. 기타 수학용 소프트웨어인 MATLAB(“맷랩” , not “매틀랩”-왜 이렇게 읽는지 그저 황당할 뿐이다), Maple(“매이플”, not “맵플”), Scientific Workplace (4.xx), Mathematica, Geometer’s SketchPad(4.xx)와 qualitative research를 위한 NUD*IST(누디스트)와 Ethnograph가 제공되고 있다.

많이 알려져 있는 SPSS(Statistic Package for the Social Science)는 시카고대학의 Norman이 메인프레임용으로 개발한 것으로 나중에 PC버전으로 발전되었다. 현재 PC에서는 11.xx버전이, Mac과 UNIX에서는 각각 10.xx과 6.xx버전이 제공되고 있다. 메뉴를 이용해서 쉽게 통계분석을 수행할 수 있으며, 어렵지 않게 그래프를 그리고 편집할 수도 있다. 또한 Visual Basic으로 작성된 Output을 워드프로세서로 옮기면 바로 테이블로 그려진다. 리포트를 작성하는 일도 메뉴를 선택하는 것으로 간단히 끝낼 수 있다. 특히 같은 회사에서 개발한 Sigmaplot(과거 DOS에서 돌아가던 Foxgraph처럼 각종 그래프를 쉽게 작성할 수 있는 소프트웨어)과 연계하여 여러 가지 유형의 그래프를 그려낼 수 있는 것도 커다란 장점의 하나이다. SPSS 시스템 파일은 LISREL에서 바로 읽을 수 있다. 따라서 SPSS는 설문조사처리, 비모수통계, 그래프를 많이 필요로 하는 분석에 특히 유리하다고 생각된다.

하지만 여러 가지 면에서 경쟁 소프트웨어인 SAS나 최근 다크호스로 떠오르고 있는 Stata에 비해 뒤떨어지는 것도 사실이다. PC를 기준으로 말한다면 규모가 큰 데이터를 처리할 때 안정성이 크게 떨어진다. 데이터를 읽다가 갑자기 소프트웨어가 종료되기도 하며, 더러는 모든 변수(천 개가 넘는)를 읽지 못하기도 한다. 하지만 처리가능한 최대 데이터 크기가 명시되어 있는 것도 아니고 상황에 따라서 결과가 달라지기 때문에 곤혹스러울 때가 있다. 적잖은 사용자들이 SPSS를 실행할 때 특히 XP에서 황당한(답하기 어려우리만치 다양하고 예측불가능한) 문제가 발생했다고 문의해오곤 한다. 10.xx는 OS10.xx에서 실행되지 않으며, AIX4.3.x에서 돌아가던 SPSS6.1.x가 AIX5.1x에서 동작하지 않아 며칠 동안 사용자들이 불편을 겪기도 했다. 아마도 기계의 특성을 많이 “타는” 모양이다. SPSS(특히 설치와 실행)에 관한 질문이 가장 흔하지만, 답하기에 제일 곤란한 질문이라는 것이 Staff들의 공통된 의견이다.

또한 처리속도도 데이터크기에 크게 영향을 받기 때문에 대략 만개 이상이 되면 적잖은 인내심이 필요하다. 이는 SAS와 Stata와 대비되는 점이다. 학생용보다 일반용(full-blown) 버전이 좀 나은 것 같지만 추가된 기능을 빼고는 학생용 11.xx과 10.xx, 그리고 일반용 10.xx 사이에 큰 차이는 없어 보인다. SPSS는 버전이 바뀌면서 메뉴 뿐만 아니라 Output format까지 바뀌기 때문에 가끔씩은 당혹스럽다. 통계량의 위치가 어떻게 바뀌었는지, 메뉴의 옵션은 바뀐 것은 없는지 잘 살펴봐야 한다. 한마디로 backward compatibility가 떨어진다. PC버전의 매뉴얼은 UNIX용 SPSS (6.xx)를 사용하는데 별로 도움이 되지 못한다. 새로 추가된 명령어와 옵션이 많기 때문이다. 그렇다고 매뉴얼이 SAS매뉴얼처럼 체계적이고 자세한 것도 아니다. 사용자들에게 특히 유용한 실제 사례를 포함하고 있는 SAS나 Stata 매뉴얼과는 대조가 된다. 예쁘게 테이블을 만들어주는 것도 Chi Square테스트, ANOVA, 혹은 Regression과 같이 일정한 양식이 있는 분석으로 제한되어 있다. 따라서 테이블이 아닌 text형태로 출력된 분석 결과를 보자면 반대로 여간 불편한 것이 아니다. 마지막으로 데이터 Import/Export기능이 SAS에 비해 크게 약한 것이 요즘처럼 다양한 데이터를 처리해야 하는 시대에 간과할 수 없는 흠이 되고 있다.

Minitab은 펜실베니아주립대학교에서 만든 소프트웨어로서 대화식으로 작업을 수행한다. Minitab 윈도우 버전에서는 SPSS처럼 메뉴를 이용하여 통계분석을 쉽게 할 수 있다. SPSS에서 개발한 SYSTAT(“시스탯”)도 메뉴시스템과 대화식 명령체계를 가졌다는 점에서 Minitab과 비슷하다. 이에 비해 Stata는 메뉴시스템 없이 command window의 프롬프트에서 명령어를 type하는 대화식 명령체계를 갖고 있다.

Econometric Software의 LIMDEP(“림뎁”)은 Econometrics 교과서를 저술한 Greene교수가 개발한 소프트웨어로 limited dependent variables (종속변수가 binary, ordinal, nominal scale이거나 truncated/censored된 경우)를 처리하기 위한 각종 모델을 포함하고 있다. SAS나 SPSS처럼 메뉴나 command window를 통해 분석을 수행할 수 있으며, 필요하면 행렬연산을 할 수도 있다. 가장 큰 강점이라면 교과서에 나오는 모든 모델을 담고 있기 때문에 교과서와 연계하여 공부하기에 좋다는 것이다. 하지만, 데이터 입출력이나 메모리관리나 안정성이라는 차원에서 아직은 소프트웨어로서 보완해야 할 것이 많아 보인다. Excel최신버전을 읽지 못하거나, 데이터파일의 크기를 선언해야 하거나(최대 관측치수와 변수수를 고려해서), 특정 명령어를 제대로 해석하지 못하는 등의 문제가 발견된다. 또한 각 옵션을 세미콜론으로 구분해야 하고 문장 끝에는 달러사인($)을 꼭 써야 한다. 필요하지도 않은 통계량까지 “쏟아져” 내린 Output을 처리하는 것도 그리 유쾌한 일이 아니다. 단권으로 된 두꺼운 매뉴얼은 빡빡한 글씨로 씌어진 교과서를 보는 것처럼 자세하지도 않고 읽기에 만만한 것도 아니다.

Aptech Systems의 GAUSS는 SAS/IML과 마찬가지로 행렬연산을 기반으로 하고 있는 대화형 통계소프트웨어이다. 이런 점에서 수학용 소프트웨어인 MATLAB(Matrix Laboratory)과 비슷하다. 하지만 MATLAB은 규모나 기능면에서 GAUSS보다 훨씬 앞선 소프트웨어이다(각종 수학계산뿐만 아니라 graphic, optimization, simulation, image processing, neural network 분석 등을 할 수 있는 일종의 프로그래밍 언어라 할 수 있다). SAS나 SPSS와는 달리, GAUSS는 메뉴나 간단한 명령어로 원하는 통계분석을 쉽게 할 수는 없다. 하지만 행렬연산으로 통계량을 직접 계산하는 과정을 통하여 통계분석을 이해하는데 많은 도움을 준다. 물론 대화형이기 때문에 전자계산기처럼 단순한 계산을 하기에도 안성맞춤이다. 가장 큰 강점이라면 프로그래밍을 통해서 일반 소프트웨어에서 지원하기 어려운 통계분석을 할 수 있다는 것이다. 특히 MAXLIK라이브러리를 사용하면 손쉽게 각종 선형/비선형 최적화( maximum likelihood estimation)를 할 수 있다. 다만 1999년에 발표된 3.2.38(3.xx의 최종버전)이 나오기 전의 PC용 GAUSS에서는 가끔씩 치명적인 연산에러를 낸다는 점을 고려해야 한다. 최근 버전인 4.xx에서는 인터페이스뿐만 아니라 안정성 면에서 많이 개선이 이루어진 것 같다.

<자료분석 프로그램 비교>

SAS 8.1x Stata 7.xxSE SPSS 10.xx

1st interface,2nd interface

Program window, menu system Command line, program editor Menu system, syntax windoww
Memory (Data) No limit No limit No explicit limit
Software 700 MB 20 MB 120 MB

Matrix

SAS/IML Matrix command Matrix command
Programming Data Step, SAS/IML Program editor Syntax window
Import/Export Almost all format ASCII, Excel ASCII, Excel, .DBF
Data set Multiple data set Single Single
Stability Excellent Good Fair
Accuracy Excellent Good Good
Efficient Excellent Excellent Fair
Compatibility Excellent Good Fair
Best Features Data management Integrated modules Logit/Probit model Panel data model Output/Report Graphics
Update Online Online Off-line
Publication Excellent Good Fair
Manual Comprehensive on-line help/tutorial/FAQ with Good examples Well organized, excellent online help/FAQ with Examples Less organized, limited FAQ without examples

나는 개인적으로 SAS를 가장 좋아하고 SPSS보다 Stata를 선호한다. 먼저 안정성 면에서 SAS와 Stata는 다른 소프트웨어보다 앞선다. 특히 Stata는 7.xx버전에 이르러 놀라운 발전을 보이고 있다. 두 소프트웨어는 서로의 부족한 면을 잘 메울 수 있는 보완성을 가지고 있다. SAS는 강력한 데이터처리 기능을 앞세운 자료분석의 “종합선물꾸러미”라 할 수 있다. 소프트웨어의 덩치가 큰 만큼 많은 Module(“마주얼”, not “모듈”)이 들어 있고 안정성도 높다. SAS가 수퍼헤비급이라면 Stata나 SPSS는 핀급도 되지 못한다. Stata는 작은 대신에 LIMDEP처럼 limited dependent variable을 위한 모델과 panel data분석 등에 특화된 기능을 가지고 있다. Logit/probit뿐만 아니라 Negative binomial regression과 같은 count data model, truncated/censored model, 각종 time series 모델을 쉽게 처리할 수 있다. 이러한 모델들은 SAS에서 처리하기가 조금은 불편한 것이 사실이다. SAS가 주로 C처럼 Compiler방식으로 명령을 처리한다면 Stata는 BASIC처럼 Interpreter방식을 도입하고 있다. 따라서 간단한 data set 조작이나 분석(특히 그래프 그리기)에서는 아기자기하게 꾸며진 Stata의 기능이 돋보인다. SAS가 강력한 데이터처리 기능을 가지고 있는 반면에 Stata는 상대적으로 빈약한 Import/Export기능을 가지고 있다. 경우에 따라서는 Stata에서 데이터를 읽기 위해서는 SAS에서 데이터를 가공할 필요도 있다.

SPSS는 메뉴시스템에 길들여진 사람들에게 사용하기 쉬운 소프트웨어라는 인상을 주기에 충분하지만, SAS나 Stata에 비하면 독특한 특성을 가지고 있지 못하다. 사용자 인터페이스로 쳐도 SPSS는 SAS나 LIMDEP과 비슷하다. 각종 편리한 그래픽기능을 지원하지만 Object를 이용하여 다양성과 유연성을 제공하는 Mathsoft의 S-PLUS에 뒤진다(S-PLUS는 프로그래밍 언어인 S를 채택하여 GAUSS처럼 대화형 명령체계를 기본으로 제공하고 있다). 또한 SPSS는 자료처리 속도에서 SAS는 물론이려니와 Stata보다 훨씬 느리며 데이터 크기에 영향을 많이 받는다. SAS, Stata, SPSS 모두 행렬연산을 할 수 있지만 SAS/IML만이 GAUSS만큼의 기능과 편리성을 가지고 있다. 세 소프트웨어 모두 limited dependent variable을 위한 프로시저를 가지고 있지만 Stata가 LIMDEP 만큼 다양하고 편리한 명령어를 제공하고 있다. 따라서 SAS와 Stata의 조합이 일반적인 자료분석에 가장 이상적으로 보인다. 조금 더 의욕이 있는 사람이라면 GAUSS를, 더 여유가 있는 사람이라면 LIMDEP이나 SPSS를 권하고 싶다. 다음 장에서 SAS와 Stata에 대한 얘기를 좀더 자세히 하고자 한다.

Up

종합자료분석 소프트웨어 SAS

SAS (Statistical Analysis System)는 1966년 University of North Carolina의 James H. Goodnight가 개발하였는데, Goodnight은 1976년 SAS Institute를 설립하여 지금까지 계속 CEO로 활약하고 있다. SAS는 원래 SPSS나 BMDP와 같이 메인프레임용으로 개발되었으나, 1985년 Goodnight, 부사장인 John P. Sall, Robert L. Cross에 의해 PC용으로도 발표되었다. 1993년 시장에 나온 윈도우용 SAS (6.12)는 안정된 기능으로 오랫동안 호평을 받았다(6.11이 내가 사용한 첫번째 Windows버전이었다). 7.xx버전은 안정성이 떨어져 trial version에 머물렀고, 곧바로 2000년에 발표된 8.xx에 의해 묻히게 되었다. 그리고 올 연말에는 9.xx버전이 출시를 앞두고 있다. 8.xx버전은 패치를 거친 8.1x에 이르러 예전의 명성을 이어가고 있다. IU에서 8.0은 작년 여름 곧바로 8.1로 교체되었다 (당시 나는 문제가 있던 8.0을 포기하고 6.12로 돌아갔다). 8.xx는 SPSS의 메뉴시스템에 버금가는 사용자들에게 친숙한 인터페이스를 선보이고 있으며, 매우 뛰어난 Import/Export 기능과 새로운 프로시저(예를 들면 sampling과 simulation)로 사람들을 매료시키고 있다. 6.12버전은 설치 후 약 400MB를 차지한 반면, 8.1x버전은 700MB를 넘고 있다(물론 이것저것 추가하면 1GB를 가볍게 넘는다).

SAS의 주요한 특징으로는 통계량의 정확성과 신뢰성을 먼저 들 수 있다. 이는 단지 소수점 아래의 숫자가 얼마나 정확한지만을 의미하지 않는다. SAS가 제공하는 유용한 경고메시지에는 SPSS에서 볼 수 없는 정교함과 유용한 정보가 들어있다. SPSS가 도끼나 자귀라면 SAS의 정교함은 예리한 끌을 연상케 한다. 얼마 전 한 대학원생이 Regression을 할 수 없다며 SPSS데이터 파일을 들고 왔다. 벌써 한달이 되었다는 그녀는 연구조교로 프로잭트를 수행 중이었다. SPSS가 내놓은 경고메시지는 내가 봐도 무슨 내용인지 알기 어려웠다. 다만 regressor의 변화범위가 너무 좁아서 충분히 informative하지 않을 것 같은 느낌만 받았다. 혹시나 해서 cross-table을 만들어보려 했더니 category가 너무 많아서 못 만들겠다고 칭얼댄다(SAS는 만개든 10만개든 메모리가 허락할 때까지 열심히 작업을 한 다음, 더는 못하겠으니 지금까지 한 작업을 삭제하고 계속 할 것인지 아니면 작업을 중지할 것인지를 물어온다. 주인을 섬기는 머슴의 자세는 무릇 이러해야 한다). 하는 수 없이 SAS로 데이터를 옮겨 빈도를 분석해보니 금방 답이 나왔다. 독립변수가 1부터 3까지의 값을 가질 수 있는데, missing value때문에 유효한 관측치들은 오직 3만 갖고 있었다. REG 프로시저는 X행렬이 Full Rank가 아니라고 명확하게 말한다(여러 regressor가 있는 경우 SAS는 아예 선형관계를 함수로 알려준다). 그녀는 SPSS에서 메뉴를 꾹꾹 눌러서 쉽게 regression을 “돌렸”지만 도대체 무슨 일이 일어났는지 전혀 알 수 없었던 것이다. Singular라는 한마디에 허탈해 하며 돌아서는 그녀에게 나는 속으로 “너가 SAS를 사용했으면 한 달을 벌었을 텐데…”

둘째, 뛰어난 자료처리 기능과 안정성이다. SAS는 각종 format을 불러올 수 있으며, 처리된 data set을 다양한 format으로 내보낼 수 있다. 또한 최적화된 각종 함수, 출력양식, 다양한 옵션은 SAS의 자료처리기능의 배가(倍加)시키고 있다. SPSS는 자사제품의 데이터파일, 제한된 종류의 spreadsheet와 ASCII파일, 그리고 DBF 파일을 불러오거나 내보낼 수 있다. Stata는 ASCII와 Excel format을 지원하고 있다. SAS는 알려진 거의 모든 데이터 형식을 처리할 수 있으며, 혹시나 그것도 부족할까 봐 사용자가 직접 입력양식을 최적화할 수 있도록 옵션을 마련해놓고 있다. ASCII text 출력에서도 Tab이나 space뿐만 아니라 다양한 delimiter를 지정할 수 있는데, 이는 다른 소프트웨어가 흉내내지 못하는 큰 강점이다(missing value가 많은 data set을 처리하는데 꼭 필요하다). 이를테면 SAS가 처리하지 못하는 데이터라면 다른 통계소프트웨어에서도 처리할 수 없을 것이다. 8.xx에서 이전의 DBF나 DIF프로시저를 Import/Export프로시저로 확대 개편하면서 이를 메뉴로도 지원한 것이 큰 효과를 보고 있는 셈이다. SAS의 안정성은 덩치가 큰 데이터를 처리할 때 두드러진다. 데이터 크기에 따라 메모리로 읽어오는 시간이 오래 걸릴 수도 있지만 (100MB ACCESS파일을 Pentium III에서 읽을 때 약 1분이 걸린다), 일단 불러오면 처리속도는 데이터 크기에 크게 영향을 받지 않는다. SPSS와는 달리 대용량 데이터를 읽거나 자료처리를 하는 중에 소프트웨어가 멈추는 일도 아직까지 경험하지 못하였다. 요컨대, 굳이 통계분석을 하지 않더라도 자료처리를 위한 소프트웨어로서도 SAS는 너무나 매력적이다.

셋째는 Library를 이용하여 여러 개의 data set을 사용할 수 있다.는 점이다. Stata나 SPSS가 동시에 두개 이상의 data set을 메모리에 올려놓을 수 없는 반면, SAS는 컴퓨터자원이 허락하는 한 사용자가 원하는 만큼 data set을 동시에 사용할 수 있다. 더구나 Library는 파일 시스템의 폴더나 디렉토리처럼 data set을 체계적으로 관리할 수 있게끔 해준다. Gronberg선생님의 프로잭트에서도 한꺼번에 10개 정도의 data set을 서로 참조해야 했는데, SAS가 아니었으면 SPSS에서 수시로 data set을 열고 닫고 하거나 컴퓨터 서너 대를 놓고 이리저리 맞춰봐야 했을 것이다. 대용량의 data set을 가지고 있거나 복잡하게 찢고 째고 붙이고 떼고 해야 하는 골치아픈 data set이 있다면 SAS외에 확실한 대안은 없어보인다. 덩치가 큰 자료라 하더라도 안정적이고 효율적으로 처리할 수 있다는 점은 대형화하고 복잡해지는 최근의 자료 특성에 비추어 SAS의 큰 장점이라 할 수 있다(연변총각투로 말하자면, 요즘은 1만개 2만개는 데이터 축에도 못듬다. 10만개 20만개쯤은 되어야…).

네째, SAS는 통계분석 뿐만 아니라 다양한 분석기법을 통합하여 제공하고 있다. SAS는 SAS/BASE, SAS/STAT, SAS/ETS(시계열)과 같은 통계관련 프로시저 뿐만 아니라 SAS/IML(행렬연산), SAS/SQL(데이터베이스), SAS/OR(Operations Research), SAS/QC(Quality Control), SAS/GRAPH, SAS/GIS(Geographic Information System)을 포함하고 있다. 뿐만 아니라 각종 decision support and management tools, data warehousing, data mining, web solution (WebHound) 등으로 범위를 확장하고 있다. 이러한 application들은 서로 따로따로 노는 것이 아니라 표준화되고 유기적으로 통합되어 (integrated) 있다. 자료를 data set으로 만들어 놓으면, 언제든지 행렬로 바꿔서 연산을 할 수도 있으며(SAS/IML), 혹은 데이터베이스처럼 질의어(Query)를 사용해서 필요한 정보를 끄집어낼 수도 있다(SAS/SQL). 굳이 전문 GIS Tool인 ESRI의 ArcView나 ArcInfo를 사용하지 않더라도 처리된 분석결과를 GIS map에 표시할 수 있다(SAS/GIS). SAS/OR의 LP나 PERT 문법도 표준화된 틀에서 벗어나지 않는다. 반면에 SPSS사의 SPSS, LISREL, Sigmaplot, SYSTAT 등은 말 그대로 “따로국밥”이다. 요컨대, SAS는 자료처리를 위한 각종 도구들을 잘 통합해 놓은 하나의 “시스템”이며, Stata나 SPSS와 비교할 수 있는 통계분석 Module (SAS/STAT과 ETS)은 SAS의 일부분에 지나지 않는다.

다섯째 SAS는 구조화 프로그래밍 언어의 문법을 채택하고 있으며, PC버전에서는 사용자위주의 메뉴시스템까지 제공하고 있다. Program window에서 다른 프로그래밍 언어와 비슷하게 프로그래밍을 할 수 있다. 예컨대, SAS/OR의 특정 프로시저를 이용하지 않더라도 Data Step에서 Queuing 모델을 시뮬레이션할 수도 있다. 더구나 SAS/IML이나 SAS/SQL과 함께 프로그래밍에 사용하면 훨씬 효과적으로 문제를 해결할 수 있다. 특히 SAS/IML에서는 GAUSS의 MAXLIK라이브러리와 유사한 여러 함수를 사용하면 선형/비선형 최적화 프로그래밍을 할 수 있다. 따라서 SAS는 C나 JAVA와 같은 프로그래밍에 익숙한 사람들(후배들)에게 특히 유리하다고 말할 수 있다.

기타로는 호환성이 좋고, 관련 출판물이 많으며, 매뉴얼이 잘 정리되어 있다는 점을 들 수 있다. SAS는 DOS버전이든 Windows버전이든 문법이나 Output format이 크게 다르지 않아 사용자들을 당혹스럽게 하지 않는다. 과거의 습관을 그대로 지속하더라도 전혀 문제될 것이 없다. 많은 사람들이 8.xx에서 새로 제공하는 편리한 기능들을 모르거나 인식하지 못한 채 과거식으로 SAS를 사용하고 있다. 예컨대, 처음에 나도 그러했지만 Import/Export기능이 메뉴에 있는데도 불구하고 평소에 하던 대로 Program window에서 프로시저로 불러 사용하고 있다. 메뉴를 사용하면 얼마나 편리한지를 알게 되면 절로 감탄을 하게 된다. PC에서나 UNIX에서도 운영체제의 차이에 따른 입출력관련 부분을 제외하고는 완벽하게 호환된다. SAS에서 발행한 출판물은 실로 엄청나다. 매뉴얼뿐만 아니라 세부적인 분석기법을 설명하고 있는 도서들을 많이 볼 수 있다. 상대적으로 SPSS는 매뉴얼 위주로 출판을 하고 있다. 당장 amozon.com이나 bn.com에서 검색을 해보면 SAS와 SPSS 출판활동의 차이를 금방 확인할 수 있다. SAS는 온라인 상에서 매뉴얼과 FAQ를 제공하고 있는데, IU의 경우 Stats/Math 센터 웹페이지에서 온라인 매뉴얼을 제공하고 있다. 또한 프로시저 별로 첨부되어 있는 실제 응용사례는 초보자 뿐만 아니라 중급자에게도 많은 도움을 주고 있다.

10년 전(1993년쯤) 동아리에서 SAS를 공부하면서 작성한 몇 개의 글을 모아 통신동호회 어딘가(천리안이나 하이텔이었을 것이다)에 올린 적이 있다. 1997년 제대하고 나서 우연히 어느 웹사이트에서 쓸만할 것 같은 자료를 발견했다. 내가 작성한 문서를 한참 지난 다음 다른 사람을 통해 보게 된 느낌은 묘했다. 친구들이 보내준 추천자료를 보니 바로 내가 작성한 것이었다며 야릇한 미소를 지었던 몇몇 후배들도 있었다. 한편으로는 보람을 느끼면서도, 오래된 문서가 아직까지도 쓸만한 것으로 간주되고 있다는 것이 좀 씁쓸하기도 하다. 블루밍턴에서 SAS를 사용하면서 자주 참조했던 내용들(특히 Data step과 Tabulate)을 급한 대로 정리해 두었는데, 필요한 사람은 다음 URL을 참조하기 바란다. http://www.masil.org/sas/sas.html

Up

Stata: 작지만 빠르고 강하다

내가 처음 Stata를 본 것은 1999년 정치학과 data analysis수업에서였다. 6.xx버전이었는데, 당시 나는 그다지 큰 매력을 느끼지 못하였다. SAS를 사용하면 더 정교한 분석을 할 수 있는데, 굳이 Stata를 사용해야 하는 이유가 무엇일까? AI(assistant instructor)였던 George라는 녀석이 Stata의 장점을 충분히 숙지하고 있지 못했음이 분명하다. 사회학과의 Scott Long선생의 강의를 한두 시간 들었을 때에도, Visiting scholar로 오신 관동대학의 김상호 선생께서 Stata를 가지고 씨름하시는 것을 볼 때만 해도 Stata의 진면목을 알지 못하였다. 하지만 Logit/Probit 모델을 공부하면서, 그리고 센터에서 7.xx (intercooled/special edition)을 접하면서 Stata에 대한 인상은 180도로 바뀌었다. 다른 소프트웨어에 비해 늦게(1980년대 중반) 개발된 Stata는 SAS나 SPSS와 같은 기성 소프트웨어에서 조금은 소홀히 다뤄졌던 분야를 파고들면서 정말 빠른 속도로 개선을 거듭하고 있는 진정한 다크호스이다.

Stata는 덩치가 정말 작다. Special Edition을 설치하더라도 17MB정도가 되는데, 이는 20MB정도 되는 GAUSS 3.2x보다도 적은 양이다. 세가지 코드를 넣는 것을 제외하고는 설치방법이 아주 간단해서 길어봤자 랩탑에서도 1분내에 마칠 수 있다. 가격도 100달러면 입문서까지(매뉴얼 제외) 살 수 있다. 반면 SAS는 매년 라이센스를 사야 하는 임대형 소프트웨어이다. 포함된 Module에 따라 크게 다르겠지만 정상적으로 개인이 구입하기에는 엄청나게 비싸다. Stata는 small Stata (student version), intercooled version (standard version), special edition (big Stata)로 분류된다. 그들 간의 핵심적인 차이는 처리할 수 있는 변수와 관측치 수, 그리고 연산가능한 행렬의 최대 크기에 있다. 세가지 Stata는 각각 최대 99, 2047, 32766개의 변수를 처리할 수 있다. 꼬마 Stata는 최대 1,000개의 관측치를 불러올 수 있으며, 나머지는 설정된 메모리사이즈가 허용하는 만큼의 관측치를 처리할 수 있다. IU에서는 주로 사회학과, 경제학과, 정치학과, SPEA (행정환경대학원)에서 Stata를 사용하고 있다.

덩치가 작은 만큼 사용법도 단순하다. 메뉴를 이용할 수는 없지만, Command window에서 명령어를 타이핑하고 엔터키를 누르면 그것으로 끝이다. 대화형 언어인 GW-BASIC과 같은 Interpreter방식을 사용하고 있기 때문이다. Screenshot에서 보자면, UNIX의 $같은 Stata의 닷(.)프롬프트에서 “tab violation public”를 타이핑하고 엔터키를 누르면 바로 변수 violation과 public에 대한 cross-table에 튀어나온다. 물론 명령에 뒤에 cell, col, row같은 옵션을 주면 각 셀에 대한 퍼센트를 보여준다. SAS를 사용한다면, “PROC FREQ; TABLE violation*public; RUN;”을 command window에 타이핑한 다음에 마우스를 쓰든 펑션키를 쓰든 실행(submit)을 시켜야 한다. 따라서 GAUSS처럼 간단한 일반계산이나 확률분포를 이용한 확률을 구하기에도 편리하다. 예를 들어, 표준정규분포에서 1.96이하일 확률을 구하고 싶으면, “disp norm(1.96)”을 타이핑하면 된다. 즉시 .97500021을 화면에서 볼 수 있다(더 이상 통계학 책 뒤에 나오는 복잡한 확률분포표를 뒤적일 필요가 없다). 물론 program editor에서 프로그램을 짜서 .do파일로 만들어 실행시킬 수도 있다. C를 닮은 구조적 문법체계를 이용하면 GAUSS처럼 MLE(Maximum Likelihood Estimation) 프로그램을 짜서 ml command와 함께 사용할 수 있다(반면 SPSS의 Syntax Window에서는 SPSS명령어를 모아서 Batch작업을 하는 것으로, 엄밀하게 말하면 프로그래밍이라고 부르기 어렵다).

잠깐 Stata의 모습을 살펴보자면 SAS나 SPSS와는 달리 단순한 메뉴바가 눈에 먼저 들어온다. 실제로 쓸만한 메뉴는 File의 불러오기와 Window뿐이다(SAS처럼 Import/Export정도는 넣어줬으면 하는 바람이다). Stata는 기본적으로 네 개의 window를 열고 있다. 왼쪽 위에 있는 Review window는 DOS의 history기능처럼 지금까지 실행된 명령을 보여준다. Screenshot을 보면 처음에 K: 드라이브에서 data set을 불러왔으며(use 명령어), 가장 최근에는 “regress…”와 “predict p”명령이 실행되었음을 알 수 있다. 그 결과는 오른쪽 위에 있는 Stata Results window에서 확인할 수 있다. 오른쪽 아래에 있는 Stata Command window는 명령어를 입력하는 곳이다. 현재 logit regression을 위해 typing을 하고 있음을 알 수 있다. 왼쪽 아래에 있는 Variables window는 열려있는 data set에 저장된 변수를 보여준다. 현재 최근에 생성된 p라는 변수를 포함해서 네 개의 변수가 data set에 있음을 알 수 있다. 이 밖에 data set을 열어 수정할 수 있는 data editor (spreadsheet와 비슷하게 생겼음)와 프로그래밍을 할 수 있는 do-file editor가 있다.

Stata의 명령어 체계는 일관성과 유연성(flexibility)이 매우 좋다. UNIX명령어처럼 일정한 규칙이 있고 대소문자를 구별한다(case sensitive). 하지만 Stata에서는 여러 가지 방법으로 명령어를 줄여서 사용할 수 있고 다양한 옵션이 제공된다. 예컨대, tabulate와 summarize는 tab과 sum으로 줄여 쓴다. 중간에 쓰다 말아도 다른 명령어와 혼동되지 않는다면 상관이 없다(summ이나 summa도 sum과 똑같이 취급된다). 변수나 관측치에 대해서도 다양한 와일드카드(*, ?, -, /)와 조건문을 사용하여 data set은 그냥 둔 채 분석대상을 달리할 수 있다. 예컨대, 남자에 대해서만 regression을 수행하라든가 (if gender==1), 10번째부터 100번째 관측치에 대한 평균과 표준편차를 보여달라든가 (in 10/100), “ind”로 시작되는 모든 변수를 regressor로 사용하라는 등의 명령을 내릴 수 있다(ind*). SAS에서는 번거롭게도 먼저 분석대상이 되는 관측치를 별도의 data set에 담아두어야 한다. 예컨대, 남자 관측치만 골라내서 새로운 data set에 저장한 다음, 그 data set에 대하여 REG 프로시저를 실행시켜야 한다. 이 얼마나 “똑순이”같은 기능이란 말인가!

Stata는 간단한 명령어체계를 가지고 있지만, 데이터를 모두 RAM에 넣고 처리하기 때문에 생각보다 훨씬 빠르고 효과적으로 작업을 수행한다. 처리속도는 물론 computing resources에 따라 다르지만, 설정된 memory크기가 작업할 data set에 적절한가 여부도 많은 영향을 미친다(무조건 크게 memory를 잡는다고 해서 속도가 빨라지지 않는다). 이는 Stata가 자료처리 중에 RAM을 독점하는 경향이 있음을 의미한다. 혹시라도 mp3를 들으면서 좀 덩치 큰 데이터를 처리한다면 “이미자”가 노래를 부르다 쉬다를 반복할 것이다. 데이터가 엄청나게 크지 않는 한 데이터관리(예를 들면 sorting), 일반 통계분석(regression, ANOVA), MLE 모두 SAS보다 빠르게 느껴진다(물론 SPSS보다야 훨씬 빠르고). 또한 통계량이 정확한 것으로 알려져 있다.

Stata는 프롬프트에서 명령어를 입력하기 때문에 통계분석은 단계적으로 이루어지게 된다. 예컨대, regression을 수행하면서 Stata는 각종 계산결과를 RAM에 저장해 둔다. 따라서 regress명령 다음에 다른 명령어(test나 predict)를 사용해서 hypothesis test을 하거나 predicted value나 residual을 계산할 수 있다. Screenshot에서 “predict p”라는 명령어는 predicted value를 계산해서 p라는 변수에 저장하라는 뜻이다. 또 “test public”을 실행하면 public의 계수가 0라는 null hypothesis를 검증하게 된다. Variance-covariance행렬이 메모리에 남아있기 때문에 F-test (t-test)도 문제없다. SAS로 이러한 일을 하자면 필요한 옵션을 모두 REG 프로시저에 포함시킨 다음 한꺼번에 실행해야 한다(PROC REG; MODEL violation=public volume / P; OUTPUT P=p; TEST public; RUN;). 물론 옵션을 바꾸고 싶으면 프로시저를 수정한 다음 다시 실행해야 한다. 이러한 차이는 어느 소프트웨어가 좋고 나쁘다는 것을 말하는 것보다는 SAS와 Stata가 상황에 따라 서로 보완할 수 있는 관계에 있음을 의미한다.

Stata가 가볍고 빠르다고 해서 SAS나 SPSS에서 가능한 통계분석을 하지 못하는 것은 아니다. 정확히 비교해보지는 않았으나, linear model, generalized model, limited dependent variable model (including count data model), panel data model, time-series model, nonparametric methods, survey methods, multivariate methods, matrix operations, graphics 등 SAS나 SPSS에서 지원하는 거의 모든 통계분석을 할 수 있다. 정말 앙증맞게 생긴 것이 일은 똑 부러지게 한다. 하지만 SAS나 SPSS에 비해 두드러진 기능은 LIMDEP과 마찬가지로 limited dependent variable model (logit, probit, Poisson regression 등)과 panel data model이라 하겠다. 예를 들면, negative binomial model이나 fixed effect model을 적용하는 일은 Stata에서는 너무나 쉽다(명령어 한 줄이면 된다). Predicted value를 graph에 그려서 모델을 비교하는 일도 어려운 일이 아니다.

Stata매뉴얼은 SAS만큼 알차고 자세한 것은 아니지만 SPSS보다 체계적이고 예제를 포함하고 있다. 또한 SAS출판부만큼은 아니어도 매뉴얼뿐만 아니라 Stata를 이용한 교재를 많이 발행하고 있다. Long and Freese의 Regression Models for Categorical Outcomes Using Stata (2001)이 대표적인 예라 하겠다. Stata 웹사이트는 사용자들에게 많은 이점(利點)을 제공하고 있다. 최근에 나온 패치로 업데이트하고 싶다면, 웹사이트로 갈 필요도 없이 그냥 Stata에서 “update all”하고 엔터를 치면 끝이다(SPSS는 웹사이트의 해당 페이지를 찾아가서 패치를 다운로드받고 실행해야 할 것이다). 웹사이트에 가면 최근 소식, online help, lecture (NetCourse), FAQ 등을 찾아볼 수 있다. 이러한 것들은 사용자들에게 소프트웨어못지 않게 중요한 요소이다.

하지만 Stata은 단점도 가지고 있다. Result window에 분석결과가 나오기는 하지만, 프린터로 출력하기 위해서는 별도의 파일에 캡쳐해야 한다. Result window는 일정한 양의 (최근) 분석결과를 제외하고는 모두 지워버리기 때문에, 분석결과를 하일라이트해서 복사하는 데에 한계가 있다. 또한 비교적 복잡하지 않은 데이터를 처리하는 데는 발군의 실력을 보이지만, 복잡하거나 규모가 큰 데이터를 처리하기에는 적절하지 않다. ASCII text나 spreadsheet밖에 Import/Export할 수 없는 것은 사용자들을 불편하게 한다. 일일이 infile명령어 뒤에 변수이름을 나열하는 것도 쉬운 일이 아니다. 행여라도 변수가 많거나 숫자와 문자가 뒤섞여 있는 데이터를 요리해야 한다면 저절로 SAS생각이 날 수밖에 없다.

Stata는 사용자의 편의를 극대화하여 간단한 명령으로 이론적으로 복잡한 모델을 처리해준다. 이를 달리 해석하면 자칫 이론을 공부하지 않은 사람들을 “data fishing”이나 “data technique” 함정에 빠뜨릴 수 있는 위험성을 암시한다. 예컨대, regression의 경우 Stata는 나름의 기준에 따라 적절하지 못한 regressor를 자동으로 배제하고, 필요하든 안 하든 각종 통계량을 자동으로 출력해준다. 사용자들은 자신의 specification이나 모델의 identification에 어떠한 문제가 있는지 고민하지 않아도, Stata가 알아서 가장 “그럴듯한” 결과를 출력해 준다. 흔히들 하듯이, 어떤 데이터가 있다(어떠한 의미를 가진 데이터인지, 데이터 자체에 문제가 있는지 생각해보지 않고), 남들이 무슨 모델을 썼다“카”더라 (왜 그 모델이 적절한지 따지지 않고), 그러니까 “Stata ,니가 알아서 함 해바바” 하는 식이다. 주인이란 놈이 헤벌레 하니까 머슴이 주인 머리 꼭대기에서 놀고 있는 셈이다. 소프트웨어가 무슨 물건 만드는 기계도 아닌데, 데이터를 집어넣으면 자신이 원하는 상품을 뚝딱 만들어줄 것으로 생각하는 모양이다.

게으른 학생들이 자주 묻는 질문은 모델을 “돌릴” 수 있느냐와 결과(통계량)를 해석할 수 있느냐이다. 내 답변은 언제나 Yes. 하지만 분석과 분석결과가 그들의 연구질문에 맞느냐를 묻는다면 당연히 언제나 No이다. 그들은 자신의 질문이 무엇인지, 무슨 분석이 적절한지, 어떠한 문제가 제기될 수 있는지, 결과가 자신의 질문에 의미하는 바가 무엇인지 알지 못할 뿐만 아니라 관심도 없기 때문이다(운전경험이 없어도 열쇠가 있으면 누구나 자동차를 움직일 수 있고, 앞으로 가는지 뒤로 가는지 옆으로 가는지는 몰라도 사고가 났는지는 알 수 있다-아프잖아). Stata는 어쩌면 그들(특히 무면허 폭주족)이 남용하기에 알맞은 도구가 되고 있는지도 모른다.

Up

Econometrics에 관심을 가진 후배들에게

Econometrics는 쉽게 생각해서 인과관계(causality)를 밝히기 위한 각종 regression 모델을 공부하는 것이다. “차이”를 따지는 ANOVA, multivariate analysis, nonparametric method 등은 제외된다. 가장 기본이 되는 OLS (Ordinary Least Square), OLS 가정이 충족되지 않을 때 적용하는 WLS (Weighted Least Square)와 GLS (Generalized Least Square) 등의 모델, 시계열 모델, panel data model (cross-sectional time-series data), truncated/censored data model, limited dependent variable model (logit/probit), count data model 등을 포함한다.

Econometrics를 공부하기 위해서는 행렬과 최적화를 알아야 한다. 거의 모든 설명이 행렬을 이용하고 있으며, 많은 모델이 MLE methods에 의존하고 있기 때문이다. 따라서 최소한 행렬대수(matrix algebra)와 미분(적분은 아니더라도)은 기초가 튼튼하게 공부해 두어야 한다. 그리고 확률이론(확률분포)에 대해서도 적잖은 시간을 투자해야 한다. MLE에 관한 것은 King, Gary. 1989. Unifying Political Methodology: The Likelihood Theory of Statistical Inference. New York: Cambridge University Press의 처음 4개 장에 잘 설명되어 있다(http://gking.harvard.edu/). 한글로 번역되어 경제학과나 경영학과의 교재로 사용되고 있는 Alpha C . Chiang의 Fundamental Methods of Mathematical Economics. McGraw-Hill (1984)은 초보자에게 행렬, 미적분, 최적화 등에 관한 좋은 교재가 되리라 생각한다.

많은 대학에서 William H. Greene교수의 Econometric Analysis (4th Edition). Prentice Hall(2000)을 교과서로 사용하고 있다. 그 많은 모델들을 깨알 같은 글씨로 체계적으로 정리해 놓고 있다. 하지만 설명이 충분히 자세하지 않아 사전지식 없이 읽어나가기에 수월하지 않다. William E. Griffiths, R. Carter Hill and George G. Judge. 1993. Learning and Practicing Econometrics. New York: John Wiley and Sons도 많이 사용되는 교과서이다. 아마도 초급자라면 Wonnacott, Thomas H. and Ronald J. Wonnacott. 1981. Regression: A Second Course in Statistics. Florida: Krieger Publishing Company로 시작해서 econometrics의 주요 개념을 이해해 두는 것이 좋을 듯하다. 특히 regression에 관련된 행렬대수와 확률분포에 관한 장은 추천할 만하다.

Limited dependent variable model은 상대적으로 새로운 주제라 할 수 있다. 이 분야의 고전이라 할 수 있는 Maddala, G. S. 1983. Limited Dependent and Qualitative Variables in Econometrics. New York: Cambridge University Press는 관련되는 온갖 모델들을 소개하고 있는데, 많은 사전지식을 요구하는 어려운 책이다. IU의 사회학과 교수인 Scott Long은 강의와 저서에서 자주 사용되는 limited dependent variable 모델들을 쉽게 설명하고 있다. Long, J. Scott. 1997. Regression Models for Categorical and Limited Dependent Variables, Sage Publications는 이 분야의 베스트셀러라 할 수 있다. 최근에는 Stata를 이용한 Long, J. Scott and Jeremy Freese. 2001. Regression Models for Categorical Outcomes Using Stata. Stata Press를 출판하여 좋은 반응을 얻고 있다. Stata와 교재에 관한 정보를 담고 있는 Long교수의 웹페이지는 http://www.indiana.edu/~jsl650이다.

SAS에 관한 한글서적으로는 김충련. 1993. SAS라고 부르는 통계상자: 통계분석과 시장조사기법을 중심으로. 서울: Data Research를 추천하고 싶다(최근 개정판이 나왔다고 들었다). 정말 자신이 없는 사람이라면, 여러 가지 의미에서 가볍기는 하지만, 조인호. 1993. SAS강좌와 통계 컨설팅. 서울: 한화경제연구소를 가지고 시작해 볼 수도 있다. 열심히 공부하다 보면 우리 손으로 SAS나 Stata같은 매력적인 소프트웨어를 만들지 못할 이유도 없지 않은가.

Up

좋은 목수의 연장

노련한 목수는 연장을 탓하지 않는다고 한다. 상황에 꼭 맞는 연장이 없다고 투덜대기보다는 기존의 연장을 잘 응용해서 원하는 작업을 한다. 하지만 목수가 연장을 가리지 않는 것은 아니다. 아니 좋은 연장을 알아보기 때문에 아무 연장이나 집어다 쓰지 않는다. 아무리 좋다는 연장이라도 손에 맞지 않으면 가까이 두지 않는다. 각종 상황에 적절하게 쓸 수 있는 다양한 도구를 구해놓고 있으며, 연장의 쓸모를 잘 알고 있고 연장이 가는 길을 두 손이 훤히 꿰고 있다. 자귀를 써야 할 때에 톱을 쓰지 않는다. 작은 끌을 써야 할 때 대패질을 하지 않는다. 못질을 해도 못의 길이와 두께와 머리를 살피고 망치의 크기와 모양을 가린다. 그렇기 때문에 일을 그르치는 경우가 드물다. 작업이 끝나면 바로 연장을 손질해 놓는 일을 잊지 않는다. 비오는 날에도 아버지는 그렇게 숫돌에 날을 갈고 기름칠을 해서 할아버지 손때가 묻은 연장상자에 소중하게 넣어두셨다. 이것이 노련한 목수가 연장을 탓하지 않는 이유다. 그 미치지 못하는 재주를 탓할 뿐이다.

정교한 연장과 그 연장을 다루는 손재주가 있다고 해서 좋은 목수가 되는 것이 아니다. 사물을 보는 깊은 안목(眼目)이 있어야 하고 풍부한 경험이 손에 녹아 있어야 한다. 원하는 물건을 어떤 모양과 방법으로 만들 것인지를 머리에 그리고 있어야 한다. 어떤 나무를 얼마나 써야 할 지, 그 나무를 어디서 구해야 하는지를 알고 있어야 한다. 참나무를 써야 할 지 느티나무를 써야 할 지, 1년 된 나무면 되는지 10년을 “숙성”한 나무를 써야 제격인지를 분별(分別)할 수 있어야 한다. 좋은 목수는 가벼운 손길이나 냄새로도 어떤 나무인지 얼마나 보관이 잘 되었는지 알 수 있다. 30년 묵은 곱디 고운 버드나무로 시렁이나 지게를 만들지 않는다. 대패질을 해도 나뭇결의 흐름을 살피고 굳고 무른 곳을 가린다. 순한 목재는 순한 대로 성깔이 있는 것을 있는 대로 순리의 물을 거스르지 않는다. 귓가에 연필을 꽂고 먼저 목재를 이리 저리 살피시던 아버지는 대패질을 하시면서도 험한 곳이 있는지를 꼼꼼히 보고 계셨다. 좋은 목수는 기능인이 이니라 예술인이다. 좋은 목수가 연장을 탓하지 않는 이유가 바로 여기에 있다.

자료분석 소프트웨어는 많이 널려있다. 소프트웨어는 개별적인 연장이라기보다는 연장의 묶음이다. 어느 소프트웨어도 모든 것을 만족시킬 수 있는 연장들을 가지고 있지 않다. SAS도 다른 소프트웨어보다 우수한 연장(tool)을 많이 가지고 있지만 그렇지 않은 연장도 있다. 많은 소프트웨어들은 나름대로 특징이 있지만 대부분 비슷비슷한 연장들을 가지고 있다. 따라서 좋은 목수라면 필요한 연장이 많이 들어 있는 소프트웨어를 선택할 것이고 부족한 연장을 보완해줄 수 있는 연장묶음을 취할 것이다. SAS와 Stata의 조합은 이러한 선택이라 볼 수 있다. 하지만 복잡한 분석이 아니라면 굳이 SAS나 Stata를 이용할 필요 없이 Excel을 사용할 수도 있다. 때에 따라서는 전자계산기나 손으로 푸는 계산이 Excel보다 나을 수도 있다.

다만 어느 경우이든 자신이 무엇을 하고자 하며, 어떤 데이터를 얼마나 어떻게 구해야 하는지, 어떤 소프트웨어의 어떤 module에 적절한지, 그 module이 어떻게 문제를 풀고 있는지, 돌발사태에 어떻게 대처해야 하는지를 알고 있어야 한다. 마음에 품고 있는 구조와 크기와 색깔을 머리 속에 그리고 있어야 하며(specification), 주어진 목재로 원하는 사물을 만들 수 있는지 가늠해서 먹줄을 정확하게 튕길 수 있어야 한다(identification). 물론 양손을 쓰듯 연장을 자유자재로 쓸 수 있도록 기술을 갈고 닦아야 한다. 목재와 연장과 손이 잘 어우러져야만 머리에 담긴 이상과 가슴에 품은 꿈이 예술로 만들어질 수 있다. 그렇지 않으면 비싼 목재를 못쓰게 만들 뿐만 아니라 때에 따라서는 연장을 망가뜨리거나 멀쩡한 손을 못쓰게 만들 수도 있다. 아버지께서 어린 아들에게 톱이나 대패를 내어주시지 않은 까닭이 있는 것이다.

비단 Econometrics나 통계분석에서만 적용되는 얘기가 아니다. 자칭 “일꾼”이라는 자들이 주인을 우습게 알고 일은 거들떠 보지도 않은 채 허구헌날 철밥통만 두드리고 있지 않은가. 품삯을 후하게 쳐줘도 눈만 뜨면 헛소리에 쌈박질이나 하면서 주인을 능멸하고 있지 않은가. 컴퓨터에서도 마찬가지이다. 주인이 머슴 다루듯이 컴퓨터를 제대로 사용하는 사람들이 얼마나 있는가. 뭐가 어떻게 되는지도 모르고 컴퓨터에 목을 매고 밤낮없이 머슴에게 충성하는 한심한 “삼돌이”들이 얼마나 많은가. 사람이 오락을 즐기는 것인지, 사람들이 오락을 위해(컴퓨터의 “기쁨조”가 되어) 날밤을 지새는 것인지… 우리 후배들이 이론과 경험이 주는 깊은 안목과 정교한 기술을 겸비한 “좋은 목수”가 되어, 연장과 도구의 노예가 되어가는 저 불쌍한 “중생(衆生)”들을 바른 길로 이끌었으면 하는 바람이다. (August, 2002)

Up