단박에 STATA로 구조방정식모형분석
Regular price
$22.47
Sale price
Regular price
✈️
Estimated delivery date 예상 배송일
Standard Shipping
불러오는 중...
주문일로부터 8-12 영업일
Express Shipping
불러오는 중...
주문일로부터 6-8 영업일
1.Stata에서 구조방정식모형분석은 12.0버전부터 가능해졌다. 12.0버전은 연속형 변수를 활용한 기본적인 분석만이 가능했다. 13.0 버전부터는 generalized response(GSEM)과 다층(multi-level)모형 분석은 물론 이항(불연속)변수(logit, probit 등)를 활용한 분석이 가능해졌고, 14.0 버전은 더욱 다양한 분석이 가능해졌다. 이후 버전은 지속적으로 업그레이드 되고 더욱 다양하고 정교한 구조방정식모형분석이 가능해졌다. 이 책은 17.0버전을 기초로 작성되었다.
2.이 책에서 활용되는 예제 파일은 Stata 프로그램에 탑재된 데이터셋이며, 독자들 또한 이를 쉽게 활용할 수 있다 대화창을 활용하여 예제 파일을 찾는 방법이 있고(3장 참고), command 창에 예제 파일을 직접 입력하는 방법도 있다(예, use http://www.stata-press.com/data/r17/sem_mimic1). 다만 이 경우에는 반드시 인터넷이 연결되어 있어야 한다.
3.이 책은 구조방정식모형분석을 활용하여 실증분석이 가능한 거의 대부분의 모형을 망라하였다. 따라서 책의 내용을 따라 연습하면서 독자가 분석하고자 하는 모형이 있다면 이를 접목하여 모형을 구성할 수 있으리라 판단된다. 아무쪼록 구조방정식모형분석을 위한 먼 여행을 떠나보자.
2.이 책에서 활용되는 예제 파일은 Stata 프로그램에 탑재된 데이터셋이며, 독자들 또한 이를 쉽게 활용할 수 있다 대화창을 활용하여 예제 파일을 찾는 방법이 있고(3장 참고), command 창에 예제 파일을 직접 입력하는 방법도 있다(예, use http://www.stata-press.com/data/r17/sem_mimic1). 다만 이 경우에는 반드시 인터넷이 연결되어 있어야 한다.
3.이 책은 구조방정식모형분석을 활용하여 실증분석이 가능한 거의 대부분의 모형을 망라하였다. 따라서 책의 내용을 따라 연습하면서 독자가 분석하고자 하는 모형이 있다면 이를 접목하여 모형을 구성할 수 있으리라 판단된다. 아무쪼록 구조방정식모형분석을 위한 먼 여행을 떠나보자.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
[본문 내용]
입문편
1
Stata에서 가능한 통계기법
Stata에서 분석이 가능한 통계기법은 아주 다양하다. 일반적으로 (다중)회귀분석(reg), 교차표분석(tab, chi2), T?검정(ttest), 분산분석(ANOVA)등 OLS에 근거한 통계, OLS의 편의(bias)를 줄이기 위한 xtgls 등 GLS에 근거한 통계, xtreg(be, fe, re, pa)등 패널모형, 동적패널모형(xtabond, xtabond2, xtpdpsys), 패널GEE모형(xtgee=xtreg, pa), 패널로짓모형(xtlogit), 패널프로빗모형(xtprobit) 등 패널회귀모형, 구조방정식(sem)모형 분석이 가능하다.
2
Stata 시작하기
Stata를 설치하고 난 후 처음 시작화면은 다음 〈그림 1〉과 같다.
|그림 1| Stata 시작화면
화면 좌측 맨 위 툴바는 File부터 우측 Help까지 다양한 메뉴들이 있다. 그 아래 4개의 작업창이 있다. 맨 왼쪽 위에는 History창(이전 버전은 Review창)이 있고, 화면 중앙에 Results창이 있으며, 화면 중앙 아래에 Command창이 있고, 맨 우측 위에 Variables창이 있다. Variables창은 변수의 이름, 변수의 레이블, 변수의 형태 및 포맷 등 다양한 정보를 보여준다. Command창은 실행하고자 하는 명령어를 입력하는 창이다. 명령어를 수행하면 History창에 그 명령어가 기록되고 History창에 기록된 해당 명령문을 더블클릭하면 바로 그 명령어를 다시 실행할 수 있다.
|그림 2| 다양한 명령어창 화면
〈그림 2〉는 예제데이터를 불러들이기 위해 command창에 sysuse auto를 입력한 결과이다. Results창에는 sysuse auto(1978 automobile data)가 나타나고 좌측 History창에는 command창 내용이 자동으로 저장된다. 만약 이 명령어(데이터)를 다시 불러들이고 싶다면 더블클릭하면 command창에 내용이 입력되고 실행된다. 한편 Variables창에는 모든 변수와 그에 관한 라벨 등의 자료가 표시되어 자료의 내용을 확인할 수 있다. 데이터의 세부 내용을 확인하려면 Variables창 아래 Properties창을 확인하면 된다.
|그림 3| 변수창
일반적으로는 다른데 〈그림 3〉에서 price변수는 변수명과 동일한 라벨명칭으로 정의되어 있다. 또한 변수의 형태(숫자변수)와 포맷이 기록되어 있다. 그 바로 밑에 data는 자료 전체의 개괄적인 설명이 되어 있다. 먼저 변수명(auto.dta)과 label에 관해 설명하고 있다. 이어 변수의 수는 12개이고 전체 표본수가 74개임을 알 수 있다.
|그림 4| 분석결과 붙여넣기
〈그림 4〉는 화면 중앙에 있는 Results창은 명령문이 실행되어 결과가 제시되는 창인데, 분석결과를 다양한 형태로 옮겨 편집, 저장할 수 있다. 예컨대 붙여넣기를 원하는 분석결과가 있다면 왼쪽 마우스를 클릭한 상태에서 드래그한 후 오른쪽 마우스를 클릭하면 여러 가지 메뉴가 나오게 된다. 그 종류는 copy, copy text, copy table, copy table as HTML, copy as picture가 있다. 일반적으로는 분석결과를 한글과 같은 프로그램에 붙여넣기할 필요가 있다. 즉, 표(table) 형태의 분석결과를 한글에 저장하려면 copy table을 클릭한 후 한글에 붙여넣기하면 다음과 같다.
price
Coefficient
Std. err.
t
P〉t
[95% conf.
interval]
mpg
-54.91704
86.81541
-0.63
0.529
-228.0649
118.2308
trunk
-65.32347
93.62548
-0.70
0.488
-252.0536
121.4067
weight
1.955753
.7100895
2.75
0.007
.5395243
3.371982
_cons
2328.163
3651.422
0.64
0.526
-4954.368
9610.694
한글에 붙여넣기한 copy table내용(위 내용)을 왼쪽 마우스로 영역을 확정한 다음 한글(한글 2010 이상 버전 동일) 상단 메뉴에 있는 입력(D) 〉 표(T) 〉 문자열을 표로 〉 자동으로 넣기 〉 탭을 설정하거나, 입력(D) 〉 표(T) 〉 문자열을 표로 〉 분리방법 지정 〉 설정을 적용한 후 약간의 추가적인 작업을 하면 완벽한 표로 변환되며 다음과 같다.
price
Coefficient
Std. err.
t
P〉t
[95% conf.
interval]
mpg
-54.91704
86.81541
-0.63
0.529
-228.0649
118.2308
trunk
-65.32347
93.62548
-0.70
0.488
-252.0536
121.4067
weight
1.955753
.7100895
2.75
0.007
.5395243
3.371982
_cons
2328.163
3651.422
0.64
0.526
-4954.368
9610.694
3
업데이트, 로그파일
Stata는 인터넷 접속을 통해 프로그램을 업데이트를 할 수 있다는 점에서 아주 유용하다. 프로그램을 설치한 후 먼저 update all을 실행하면 최근까지의 제반 프로그램을 업데이트해준다. 이때 반드시 인터넷과 접속이 되어 있어야 한다. update all을 실행하게 되면 http://www.stata.com에 접속하여 update 파일이 자동으로 install된다.
update all
그렇다고 해서 모든 ado파일이 업데이트 되는 것은 아니다. 필요할 경우 파일을 검색(예: findit)하여 설치해야 하는 경우가 있다. 프로그램 상단 메뉴에서 edit 〉 preference 〉 general preference를 선택한 후 internet 탭에서 enable automatic update checking에서 update 주기를 설정할 수 있다.
실제 분석하는 가운데 에러메시지(예: variable prise not found, r(111))가 나타날 경우 그 에러메시지에 정확한 설명은 파란색 r(111)을 클릭하면 알 수 있다. 예컨대 종전의 예제처럼 price를 prise로 잘못 입력한 경우인데, 경우에 따라서 문제해결 파일을 찾는 경우가 종종 있다. 이때 findit 명령어(xxx)를 통해 새로운 명령어를 다운받아 install해야만 한다.
|그림 5| findit 사용법
〈그림 5〉는 표 편집기능이 있는 estout를 찾아 install하는 과정을 설명하고 있다. 만약에 프로그램상에 estout이 install되어 있지 않았을 경우 estout명령어를 실행했을 때 실행이 안 되고 에러메시지가 뜬다. 이를 치유하기 위해 findit estout를 실행하게 되며 그 다음은 적절한 것을 찾아 install하면 된다.
Stata의 Results창은 실행한 명령문과 분석결과가 동시에 화면에 표시된다. 따라서 Results창에 보관할 수 있는 용량이 한정되어 있어 일정한 시점이 되면 이전 분석결과의 일정부분이 순차적으로 사라지게 된다. 즉, 분석결과를 저장하는 데 한계가 있다는 것이다. 따라서 분석결과의 일정한 양을 초과하면 복사하여 어디엔가 붙여넣기를 해둬야 한다. 그러나 사용자가 일일이 복사하여 붙여넣기해야 하는 번거로움이 있다. 어느 시점에서 연구자가 필요한 데이터(분석결과)가 사라질지 예측이 어렵다.
따라서 연구자는 분석결과의 처음부터 끝까지 저장하여 보관해야 하는데, 이것이 바로 로그파일의 설정이다. 로그파일은 로그 시작시점부터 종료시점까지 명령문과 실행결과가 text파일로 저장되기 때문에 열람 및 편집이 가능하여 아주 유용하다. 파일의 확장자는 smcl로 저장되며 언제든지 불러 들여 참고할 수 있다(file 〉 log 〉 view). Stata를 사용할 때 로그파일을 만드는 것은 필수사항이라고 보면 된다. 로그파일을 만드는 방법은 file 〉 log 〉 begin으로 로그파일이 만들어지며, 로그파일을 종료하려면 close를 적용하면 된다.
〈그림 6〉은 로그파일을 저장하는 과정을 설명한 것이다. 순서는 file 〉 log 〉 begin을 적용하고, 저장할 위치를 지정해야 한다(로그파일 저장 위치는 문서, 220906).
|그림 6| 로그파일 저장법
4
데이터 파일관리
데이터 파일은 문자변수와 숫자변수로 구분되고, 문자변수는 빨간색으로, 숫자변수는 검정색으로 각각 표시된다.
저장형태는 문자변수는 str이고 숫자변수는 byte, int, long, float, double이다. 프로그램에서 지원되는 str은 244까지 가능하다.
|그림 7| 데이터 형태
다만 숫자는 정수일 경우 int, 0과 1의 값을 갖는 더미변수의 경우 byte, 숫자변수의 디폴트(default) 저장형태는 float이다. 데이터의 저장형태를 자세히 알아보기 위해 예제 파일(auto.dta)을 불러들여 describe 명령어를 실행하면 된다.
|그림 8| describe 실행
5
Do-파일편집기
Do-파일편집기(Do-file Editor)는 do-파일과 ado-파일 등 텍스트파일을 작성하기 위한 표준파일편집기이다. Do-파일은 다음 그림과 같이 do 실행기()를 클릭하면 untitled1.do파일 편집기가 열린다.
|그림 9| do-파일 편집기
Stata는 command 창에서 하나의 명령어 구문을 입력하면서 개별 분석이 가능하지만 do-파일을 활용하면 일괄분석이 가능하다. do-파일의 장점은 다음과 같다. 확실하게 의도한 대로 명령문을 입력하기 때문에 여러 가지 명령어를 연달아 실행할 수 있다. 우선 잇점은 오류를 쉽게 발견해 수정이 가능하고 do-파일을 재실행할 수 있다. 또한 do-파일은 실행과정을 문서화할 수 있다. do-파일에 대한 개괄적인 설명을 하면, 알림 기능성격의 주석을 활용할 수 있다.
우선 do-파일 시작시 *로 시작하면 그 행은 주석으로 해석하게 된다(/*...*/도 동일한 의미임). 예를 들면 첫 번째 행에 * sysuse. dta를 활용한 회귀분석으로 표시해두면 나중에 요긴하게 활용할 수 있다. (예시) " * sysuse. dta를 활용한 회귀분석"
또한, 구분기호(delimit)를 사용하면 한 행이 끝날 때 명령이 끝난다는 것을 의미한다. 통상 #delimit ;, 다음 행에서 명령문.... 그 다음 행에서 #delimit cr을 활용한다. ///을 입력하면 명령문이 다음 행에 계속됨을 의미한다. 다만, 명령어 창에서는 *만 입력할 수 있고, // 또는 /* ... */은 허용되지 않는다.
〈그림 9〉 우측 상단에는 do-실행기가 두 개 있다. 하나는 do버튼이고, 또 다른 하나는 run버튼이다(, ). 왼쪽 run 명령어 버튼(execute quiety (run))은 아무런 출력결과를 표시하지 않고 분석만 실행한다. 반면 오른쪽 do 명령어 버튼((execute (do))은 현재의 do-파일에 적힌 내용을 실행한다(Ctrl+D 키를 눌러도 동일한 결과가 도출).
|그림 10| do-파일입력
do파일을 입력할 때 자동완성 기능이 구현된다. 위 그림에서와 같이, 명령어는 자동완성기능이 기본으로 탑재되어 있고, 변수명을 입력할 때는 한 번 입력된 변수는 자동완성기능이 실행되도록 설계되어 있다.
6
데이터 관리에 유용한 명령어
데이터 관리의 핵심은 변수에 관한 정확한 내용의 지정이다. 먼저 변수명은 영어로 가급적 짧게 만드는 것이 좋다. 버전 14.0부터는 다양한 언어도 사용이 가능하다. 변수에 관해 세부적인 설명이 필요하다면 label을 활용하여 자세한 설명을 달아 주면 된다. 또한 변수의 이름은 숫자로 시작해서는 안 된다(예: 2000price).
Help
명령어를 잘 모를 때 사용하기 쉬운 유용한 메뉴는 Help이다. 더불어 명령어는 소문자로 시작해야 한다는 것을 잊어서는 안 된다.
if 한정어(qualifier)
if 명령어는 적용될 관찰값을 선택할 때 사용되는 논리식이다. 명령어에 사용되기도 하고, 옵션으로 사용되기도 한다. 예를 들면 다음과 같다.
▶sum age if sex==1 (1이 남자라면, 남자만 적용하라는 의미임)
▶sum age if sex!=1 (1이 남자라면, 남자만 제외하라는 의미임)
▶list id age age〈=30 (30세 이하만 표시하라는 의미임)
▶keep if sex==1|age〈=30 (1이 남자라면, 남자이거나 30세 이하라는 의미임)
▶keep if !(sex==1|age〈=30) (1이 남자라면, 남자이거나 30세 이하가 아닌 모든 경우라는 의미임)
▶replace oldage=. if age 〉=. (나이가 결측치이면 제외하라는 의미임)
지금까지 활용된 연산자는 통상 =, ==, 〉=, 〈=, 〉, 〈, !=, ~=, !, ~, &, |로 요약이 된다. 논리식에 사용되는 연산자를 설명하면 다음과 같다.
=
등호
!=
비등호
==
지정(지시)등호
~=
비등호
〉=
이상
!
아닌(부정)
〈=
이하
~
아닌
〉
초과
&
그리고
〈
미만
|
또는
in 한정어
in 한정어는 명령어가 적용될 관찰값의 범위를 결정할 때 사용한다. 예를 들면 다음과 같다.
▶list in 1/10 (1-10번째 관찰값을 표시하라는 의미임, 이때 모든 변수가 표시됨)
▶list sex, age, weight in 23 (23번째 관찰 값을 표시하라는 의미임)
▶browse age-weight in ?10/-1 (데이터 브라우저에 있는 변수(age부터 weight까지)의 마지막 10개 관찰 값을 표시하라는 의미이고, -1은 마지막 관찰 값을 의미한다.
사소하지만 쉽게 틀릴 수 있어 주의가 요구되는 명령어는 "="와 "=="이 있는데 이 둘의 명확한 구분이 필요하다. =는 등호의 의미를 지니지만, ==는 지정의 의미를 지닌다. 즉, "summarie if foreign==1"은 foreign이라는 변수 값이 1인 것만을 지정하여 요약하라는 의미이다.
또한 "쉼표"와 "옵션"의 구분은 중요하다. 쉼표 다음에 오는 것은 옵션이라는 점을 잊어서는 안 된다. summarie, if foreign==1은 옵션임을 명심해야 한다.
논리기호를 사용할 때 반드시 부등호, 등호 순으로 입력해야 한다("〈="). 같지 않다는 명령어는 "!=" 또는 "∼="를 쓰면 된다. 또한 and는 "&", or는 | (\키+shift키)을 한정어는 in을 쓴다.
tabulate & xi
더미변수를 만드는 방법은 tab과 xi가 있다. 예제 파일 r17/nlsw88.dta를 활용해 tabulate로 더미변수를 만들 수 있다. 예제 파일에서는 인종을 백인, 흑인, 기타로 구분한다. tab 다음에 범주형 변수(race)를 입력하면 범주형 변수의 빈도수를 보여준다. 또한 더미변수를 만들기 위해 추가로 gen(dum_race) 명령어를 사용하면 간단히 더미변수를 만들 수 있다. xi명령어를 이용해도 더미변수를 만들 수 있다. 우선 명령어에 db xi를 실행하고, categorical variable에 race를, prefix에 dum을 적용하면 아래 command창에 명령어가 생성된다.
|그림 11| xi 대화창
그런데 tab 명령어 실행과 달리 dum race_1은 만들어지지 않았는데 그 이유는 회귀모형의 설명변수로는 범주의 개수보다 1개 적은 2개의 더미변수가 만들어지기 때문이다. 굳이 3개의 더미변수를 만들고자 한다면 noomit옵션을 추가해야 한다(xi I.race, prefix(dum) noomit).
더미변수를 만들어 분석할 경우 더미변수 중 하나가 제외(〈그림 12〉 dumrace_1)되었다. 이는 설명변수간 완전한 선형관계가 없어야 하는 가정을 충족해야 하기 때문이다.
|그림 12| xi 실행으로 변수 생성
gen
새로운 변수를 만들고자 할 경우 gen명령어를 활용해 다양한 함수를 생성할 수 있다. 자연로그(ln)외에도 제곱근(sqrt), 반올림(round) 등이 활용된다.
자연로그를 취할 경우 위의 명령문과 같이 ln_ 과 invest를 띄어쓰면 안 된다. 아래의 명령문과 같이 ln_invest를 반드시 붙여 써야 한다. 왜냐하면 이미 invest라는 변수가 존재하기 때문에 새로운 변수를 만들 수 없다는 에러메시지(r 110)가 나타난다. 한편 오른쪽 ln (invest)의 경우에는 띄어 써도 무방하다.
또 다른 유형 중 하나는 논리식을 포함한 계산으로 recode라는 명령어가 있다.
예를 들어 age 〉=30은 1로, age〈30은 0으로 코딩을 바꾸고자 할 경우에 다음과 같은 명령어를 입력하면 된다. 즉, 30보다 크거나 같을 경우에는 1로, 30 이하일 경우 0으로 코딩하라는 의미이고, 새로이 생성될 변수는 newage이다.
recode age(30/max=1)(min/30=0), gen(newage)
또 다른 방법을 활용하여 동일한 결과를 얻고자 한다면 각각의 명령어를 입력해주면 된다.
gen newage=0
replace newage=1 if age〉=30
replace newage=1 if age〉=.
이보다 더욱 세분화된 구간을 만들고자 한다면 다음과 같은 명령어를 입력하면 된다.
replace newage=1 if age〉=30 & age〈40
기존에 입력된 내용의 전체를 바꾸고자 한다면 다음과 같은 과정을 거치면 된다. 예를 들어, 기존변수의 sex가 0인 변수는 2로 코딩을 변경하려면 recode sex (0=2)를 입력하면 된다.
merge
merge는 파일을 합칠때 사용되는 명령어다. 간혹 여러 명의 연구자가 동일한 자료를 코딩한 자료원을 합칠 때 아주 유용한 명령어이다. 한마디로 분리되어 있는 파일을 합치는 경우이다.
|그림 13| merge 실행
a.dta
ab.dta
b.dta
데이터: id a1-a5
데이터: id b1-b5
↓
↓
데이터: id a1-a5 b1-b5
예를 들어, a.dta 파일에는 변수 a1-a5가 있고, b.dta 파일에는 변수 b1-b5가 있다고 가정하자. 다만 merge(파일 합치기) 전에 두 파일(a.dta 및 b.dta)은 동일한 id로 정렬되어 있어야 한다.
?use a.dta, clear
?merge id using b.dta, sort
?save ab.dta
separate
separate는 한 변수를 다른 범주형 변수로 분리할 때 사용하는 명령어이다. 아래 명령에서 설명하고 있듯이 국산차와 외국차의 비교가 가능하도록 결과를 도출할 수 있다.
?list foreign mpg*, nolabel sepby(foreign)
입문편
1
Stata에서 가능한 통계기법
Stata에서 분석이 가능한 통계기법은 아주 다양하다. 일반적으로 (다중)회귀분석(reg), 교차표분석(tab, chi2), T?검정(ttest), 분산분석(ANOVA)등 OLS에 근거한 통계, OLS의 편의(bias)를 줄이기 위한 xtgls 등 GLS에 근거한 통계, xtreg(be, fe, re, pa)등 패널모형, 동적패널모형(xtabond, xtabond2, xtpdpsys), 패널GEE모형(xtgee=xtreg, pa), 패널로짓모형(xtlogit), 패널프로빗모형(xtprobit) 등 패널회귀모형, 구조방정식(sem)모형 분석이 가능하다.
2
Stata 시작하기
Stata를 설치하고 난 후 처음 시작화면은 다음 〈그림 1〉과 같다.
|그림 1| Stata 시작화면
화면 좌측 맨 위 툴바는 File부터 우측 Help까지 다양한 메뉴들이 있다. 그 아래 4개의 작업창이 있다. 맨 왼쪽 위에는 History창(이전 버전은 Review창)이 있고, 화면 중앙에 Results창이 있으며, 화면 중앙 아래에 Command창이 있고, 맨 우측 위에 Variables창이 있다. Variables창은 변수의 이름, 변수의 레이블, 변수의 형태 및 포맷 등 다양한 정보를 보여준다. Command창은 실행하고자 하는 명령어를 입력하는 창이다. 명령어를 수행하면 History창에 그 명령어가 기록되고 History창에 기록된 해당 명령문을 더블클릭하면 바로 그 명령어를 다시 실행할 수 있다.
|그림 2| 다양한 명령어창 화면
〈그림 2〉는 예제데이터를 불러들이기 위해 command창에 sysuse auto를 입력한 결과이다. Results창에는 sysuse auto(1978 automobile data)가 나타나고 좌측 History창에는 command창 내용이 자동으로 저장된다. 만약 이 명령어(데이터)를 다시 불러들이고 싶다면 더블클릭하면 command창에 내용이 입력되고 실행된다. 한편 Variables창에는 모든 변수와 그에 관한 라벨 등의 자료가 표시되어 자료의 내용을 확인할 수 있다. 데이터의 세부 내용을 확인하려면 Variables창 아래 Properties창을 확인하면 된다.
|그림 3| 변수창
일반적으로는 다른데 〈그림 3〉에서 price변수는 변수명과 동일한 라벨명칭으로 정의되어 있다. 또한 변수의 형태(숫자변수)와 포맷이 기록되어 있다. 그 바로 밑에 data는 자료 전체의 개괄적인 설명이 되어 있다. 먼저 변수명(auto.dta)과 label에 관해 설명하고 있다. 이어 변수의 수는 12개이고 전체 표본수가 74개임을 알 수 있다.
|그림 4| 분석결과 붙여넣기
〈그림 4〉는 화면 중앙에 있는 Results창은 명령문이 실행되어 결과가 제시되는 창인데, 분석결과를 다양한 형태로 옮겨 편집, 저장할 수 있다. 예컨대 붙여넣기를 원하는 분석결과가 있다면 왼쪽 마우스를 클릭한 상태에서 드래그한 후 오른쪽 마우스를 클릭하면 여러 가지 메뉴가 나오게 된다. 그 종류는 copy, copy text, copy table, copy table as HTML, copy as picture가 있다. 일반적으로는 분석결과를 한글과 같은 프로그램에 붙여넣기할 필요가 있다. 즉, 표(table) 형태의 분석결과를 한글에 저장하려면 copy table을 클릭한 후 한글에 붙여넣기하면 다음과 같다.
price
Coefficient
Std. err.
t
P〉t
[95% conf.
interval]
mpg
-54.91704
86.81541
-0.63
0.529
-228.0649
118.2308
trunk
-65.32347
93.62548
-0.70
0.488
-252.0536
121.4067
weight
1.955753
.7100895
2.75
0.007
.5395243
3.371982
_cons
2328.163
3651.422
0.64
0.526
-4954.368
9610.694
한글에 붙여넣기한 copy table내용(위 내용)을 왼쪽 마우스로 영역을 확정한 다음 한글(한글 2010 이상 버전 동일) 상단 메뉴에 있는 입력(D) 〉 표(T) 〉 문자열을 표로 〉 자동으로 넣기 〉 탭을 설정하거나, 입력(D) 〉 표(T) 〉 문자열을 표로 〉 분리방법 지정 〉 설정을 적용한 후 약간의 추가적인 작업을 하면 완벽한 표로 변환되며 다음과 같다.
price
Coefficient
Std. err.
t
P〉t
[95% conf.
interval]
mpg
-54.91704
86.81541
-0.63
0.529
-228.0649
118.2308
trunk
-65.32347
93.62548
-0.70
0.488
-252.0536
121.4067
weight
1.955753
.7100895
2.75
0.007
.5395243
3.371982
_cons
2328.163
3651.422
0.64
0.526
-4954.368
9610.694
3
업데이트, 로그파일
Stata는 인터넷 접속을 통해 프로그램을 업데이트를 할 수 있다는 점에서 아주 유용하다. 프로그램을 설치한 후 먼저 update all을 실행하면 최근까지의 제반 프로그램을 업데이트해준다. 이때 반드시 인터넷과 접속이 되어 있어야 한다. update all을 실행하게 되면 http://www.stata.com에 접속하여 update 파일이 자동으로 install된다.
update all
그렇다고 해서 모든 ado파일이 업데이트 되는 것은 아니다. 필요할 경우 파일을 검색(예: findit)하여 설치해야 하는 경우가 있다. 프로그램 상단 메뉴에서 edit 〉 preference 〉 general preference를 선택한 후 internet 탭에서 enable automatic update checking에서 update 주기를 설정할 수 있다.
실제 분석하는 가운데 에러메시지(예: variable prise not found, r(111))가 나타날 경우 그 에러메시지에 정확한 설명은 파란색 r(111)을 클릭하면 알 수 있다. 예컨대 종전의 예제처럼 price를 prise로 잘못 입력한 경우인데, 경우에 따라서 문제해결 파일을 찾는 경우가 종종 있다. 이때 findit 명령어(xxx)를 통해 새로운 명령어를 다운받아 install해야만 한다.
|그림 5| findit 사용법
〈그림 5〉는 표 편집기능이 있는 estout를 찾아 install하는 과정을 설명하고 있다. 만약에 프로그램상에 estout이 install되어 있지 않았을 경우 estout명령어를 실행했을 때 실행이 안 되고 에러메시지가 뜬다. 이를 치유하기 위해 findit estout를 실행하게 되며 그 다음은 적절한 것을 찾아 install하면 된다.
Stata의 Results창은 실행한 명령문과 분석결과가 동시에 화면에 표시된다. 따라서 Results창에 보관할 수 있는 용량이 한정되어 있어 일정한 시점이 되면 이전 분석결과의 일정부분이 순차적으로 사라지게 된다. 즉, 분석결과를 저장하는 데 한계가 있다는 것이다. 따라서 분석결과의 일정한 양을 초과하면 복사하여 어디엔가 붙여넣기를 해둬야 한다. 그러나 사용자가 일일이 복사하여 붙여넣기해야 하는 번거로움이 있다. 어느 시점에서 연구자가 필요한 데이터(분석결과)가 사라질지 예측이 어렵다.
따라서 연구자는 분석결과의 처음부터 끝까지 저장하여 보관해야 하는데, 이것이 바로 로그파일의 설정이다. 로그파일은 로그 시작시점부터 종료시점까지 명령문과 실행결과가 text파일로 저장되기 때문에 열람 및 편집이 가능하여 아주 유용하다. 파일의 확장자는 smcl로 저장되며 언제든지 불러 들여 참고할 수 있다(file 〉 log 〉 view). Stata를 사용할 때 로그파일을 만드는 것은 필수사항이라고 보면 된다. 로그파일을 만드는 방법은 file 〉 log 〉 begin으로 로그파일이 만들어지며, 로그파일을 종료하려면 close를 적용하면 된다.
〈그림 6〉은 로그파일을 저장하는 과정을 설명한 것이다. 순서는 file 〉 log 〉 begin을 적용하고, 저장할 위치를 지정해야 한다(로그파일 저장 위치는 문서, 220906).
|그림 6| 로그파일 저장법
4
데이터 파일관리
데이터 파일은 문자변수와 숫자변수로 구분되고, 문자변수는 빨간색으로, 숫자변수는 검정색으로 각각 표시된다.
저장형태는 문자변수는 str이고 숫자변수는 byte, int, long, float, double이다. 프로그램에서 지원되는 str은 244까지 가능하다.
|그림 7| 데이터 형태
다만 숫자는 정수일 경우 int, 0과 1의 값을 갖는 더미변수의 경우 byte, 숫자변수의 디폴트(default) 저장형태는 float이다. 데이터의 저장형태를 자세히 알아보기 위해 예제 파일(auto.dta)을 불러들여 describe 명령어를 실행하면 된다.
|그림 8| describe 실행
5
Do-파일편집기
Do-파일편집기(Do-file Editor)는 do-파일과 ado-파일 등 텍스트파일을 작성하기 위한 표준파일편집기이다. Do-파일은 다음 그림과 같이 do 실행기()를 클릭하면 untitled1.do파일 편집기가 열린다.
|그림 9| do-파일 편집기
Stata는 command 창에서 하나의 명령어 구문을 입력하면서 개별 분석이 가능하지만 do-파일을 활용하면 일괄분석이 가능하다. do-파일의 장점은 다음과 같다. 확실하게 의도한 대로 명령문을 입력하기 때문에 여러 가지 명령어를 연달아 실행할 수 있다. 우선 잇점은 오류를 쉽게 발견해 수정이 가능하고 do-파일을 재실행할 수 있다. 또한 do-파일은 실행과정을 문서화할 수 있다. do-파일에 대한 개괄적인 설명을 하면, 알림 기능성격의 주석을 활용할 수 있다.
우선 do-파일 시작시 *로 시작하면 그 행은 주석으로 해석하게 된다(/*...*/도 동일한 의미임). 예를 들면 첫 번째 행에 * sysuse. dta를 활용한 회귀분석으로 표시해두면 나중에 요긴하게 활용할 수 있다. (예시) " * sysuse. dta를 활용한 회귀분석"
또한, 구분기호(delimit)를 사용하면 한 행이 끝날 때 명령이 끝난다는 것을 의미한다. 통상 #delimit ;, 다음 행에서 명령문.... 그 다음 행에서 #delimit cr을 활용한다. ///을 입력하면 명령문이 다음 행에 계속됨을 의미한다. 다만, 명령어 창에서는 *만 입력할 수 있고, // 또는 /* ... */은 허용되지 않는다.
〈그림 9〉 우측 상단에는 do-실행기가 두 개 있다. 하나는 do버튼이고, 또 다른 하나는 run버튼이다(, ). 왼쪽 run 명령어 버튼(execute quiety (run))은 아무런 출력결과를 표시하지 않고 분석만 실행한다. 반면 오른쪽 do 명령어 버튼((execute (do))은 현재의 do-파일에 적힌 내용을 실행한다(Ctrl+D 키를 눌러도 동일한 결과가 도출).
|그림 10| do-파일입력
do파일을 입력할 때 자동완성 기능이 구현된다. 위 그림에서와 같이, 명령어는 자동완성기능이 기본으로 탑재되어 있고, 변수명을 입력할 때는 한 번 입력된 변수는 자동완성기능이 실행되도록 설계되어 있다.
6
데이터 관리에 유용한 명령어
데이터 관리의 핵심은 변수에 관한 정확한 내용의 지정이다. 먼저 변수명은 영어로 가급적 짧게 만드는 것이 좋다. 버전 14.0부터는 다양한 언어도 사용이 가능하다. 변수에 관해 세부적인 설명이 필요하다면 label을 활용하여 자세한 설명을 달아 주면 된다. 또한 변수의 이름은 숫자로 시작해서는 안 된다(예: 2000price).
Help
명령어를 잘 모를 때 사용하기 쉬운 유용한 메뉴는 Help이다. 더불어 명령어는 소문자로 시작해야 한다는 것을 잊어서는 안 된다.
if 한정어(qualifier)
if 명령어는 적용될 관찰값을 선택할 때 사용되는 논리식이다. 명령어에 사용되기도 하고, 옵션으로 사용되기도 한다. 예를 들면 다음과 같다.
▶sum age if sex==1 (1이 남자라면, 남자만 적용하라는 의미임)
▶sum age if sex!=1 (1이 남자라면, 남자만 제외하라는 의미임)
▶list id age age〈=30 (30세 이하만 표시하라는 의미임)
▶keep if sex==1|age〈=30 (1이 남자라면, 남자이거나 30세 이하라는 의미임)
▶keep if !(sex==1|age〈=30) (1이 남자라면, 남자이거나 30세 이하가 아닌 모든 경우라는 의미임)
▶replace oldage=. if age 〉=. (나이가 결측치이면 제외하라는 의미임)
지금까지 활용된 연산자는 통상 =, ==, 〉=, 〈=, 〉, 〈, !=, ~=, !, ~, &, |로 요약이 된다. 논리식에 사용되는 연산자를 설명하면 다음과 같다.
=
등호
!=
비등호
==
지정(지시)등호
~=
비등호
〉=
이상
!
아닌(부정)
〈=
이하
~
아닌
〉
초과
&
그리고
〈
미만
|
또는
in 한정어
in 한정어는 명령어가 적용될 관찰값의 범위를 결정할 때 사용한다. 예를 들면 다음과 같다.
▶list in 1/10 (1-10번째 관찰값을 표시하라는 의미임, 이때 모든 변수가 표시됨)
▶list sex, age, weight in 23 (23번째 관찰 값을 표시하라는 의미임)
▶browse age-weight in ?10/-1 (데이터 브라우저에 있는 변수(age부터 weight까지)의 마지막 10개 관찰 값을 표시하라는 의미이고, -1은 마지막 관찰 값을 의미한다.
사소하지만 쉽게 틀릴 수 있어 주의가 요구되는 명령어는 "="와 "=="이 있는데 이 둘의 명확한 구분이 필요하다. =는 등호의 의미를 지니지만, ==는 지정의 의미를 지닌다. 즉, "summarie if foreign==1"은 foreign이라는 변수 값이 1인 것만을 지정하여 요약하라는 의미이다.
또한 "쉼표"와 "옵션"의 구분은 중요하다. 쉼표 다음에 오는 것은 옵션이라는 점을 잊어서는 안 된다. summarie, if foreign==1은 옵션임을 명심해야 한다.
논리기호를 사용할 때 반드시 부등호, 등호 순으로 입력해야 한다("〈="). 같지 않다는 명령어는 "!=" 또는 "∼="를 쓰면 된다. 또한 and는 "&", or는 | (\키+shift키)을 한정어는 in을 쓴다.
tabulate & xi
더미변수를 만드는 방법은 tab과 xi가 있다. 예제 파일 r17/nlsw88.dta를 활용해 tabulate로 더미변수를 만들 수 있다. 예제 파일에서는 인종을 백인, 흑인, 기타로 구분한다. tab 다음에 범주형 변수(race)를 입력하면 범주형 변수의 빈도수를 보여준다. 또한 더미변수를 만들기 위해 추가로 gen(dum_race) 명령어를 사용하면 간단히 더미변수를 만들 수 있다. xi명령어를 이용해도 더미변수를 만들 수 있다. 우선 명령어에 db xi를 실행하고, categorical variable에 race를, prefix에 dum을 적용하면 아래 command창에 명령어가 생성된다.
|그림 11| xi 대화창
그런데 tab 명령어 실행과 달리 dum race_1은 만들어지지 않았는데 그 이유는 회귀모형의 설명변수로는 범주의 개수보다 1개 적은 2개의 더미변수가 만들어지기 때문이다. 굳이 3개의 더미변수를 만들고자 한다면 noomit옵션을 추가해야 한다(xi I.race, prefix(dum) noomit).
더미변수를 만들어 분석할 경우 더미변수 중 하나가 제외(〈그림 12〉 dumrace_1)되었다. 이는 설명변수간 완전한 선형관계가 없어야 하는 가정을 충족해야 하기 때문이다.
|그림 12| xi 실행으로 변수 생성
gen
새로운 변수를 만들고자 할 경우 gen명령어를 활용해 다양한 함수를 생성할 수 있다. 자연로그(ln)외에도 제곱근(sqrt), 반올림(round) 등이 활용된다.
자연로그를 취할 경우 위의 명령문과 같이 ln_ 과 invest를 띄어쓰면 안 된다. 아래의 명령문과 같이 ln_invest를 반드시 붙여 써야 한다. 왜냐하면 이미 invest라는 변수가 존재하기 때문에 새로운 변수를 만들 수 없다는 에러메시지(r 110)가 나타난다. 한편 오른쪽 ln (invest)의 경우에는 띄어 써도 무방하다.
또 다른 유형 중 하나는 논리식을 포함한 계산으로 recode라는 명령어가 있다.
예를 들어 age 〉=30은 1로, age〈30은 0으로 코딩을 바꾸고자 할 경우에 다음과 같은 명령어를 입력하면 된다. 즉, 30보다 크거나 같을 경우에는 1로, 30 이하일 경우 0으로 코딩하라는 의미이고, 새로이 생성될 변수는 newage이다.
recode age(30/max=1)(min/30=0), gen(newage)
또 다른 방법을 활용하여 동일한 결과를 얻고자 한다면 각각의 명령어를 입력해주면 된다.
gen newage=0
replace newage=1 if age〉=30
replace newage=1 if age〉=.
이보다 더욱 세분화된 구간을 만들고자 한다면 다음과 같은 명령어를 입력하면 된다.
replace newage=1 if age〉=30 & age〈40
기존에 입력된 내용의 전체를 바꾸고자 한다면 다음과 같은 과정을 거치면 된다. 예를 들어, 기존변수의 sex가 0인 변수는 2로 코딩을 변경하려면 recode sex (0=2)를 입력하면 된다.
merge
merge는 파일을 합칠때 사용되는 명령어다. 간혹 여러 명의 연구자가 동일한 자료를 코딩한 자료원을 합칠 때 아주 유용한 명령어이다. 한마디로 분리되어 있는 파일을 합치는 경우이다.
|그림 13| merge 실행
a.dta
ab.dta
b.dta
데이터: id a1-a5
데이터: id b1-b5
↓
↓
데이터: id a1-a5 b1-b5
예를 들어, a.dta 파일에는 변수 a1-a5가 있고, b.dta 파일에는 변수 b1-b5가 있다고 가정하자. 다만 merge(파일 합치기) 전에 두 파일(a.dta 및 b.dta)은 동일한 id로 정렬되어 있어야 한다.
?use a.dta, clear
?merge id using b.dta, sort
?save ab.dta
separate
separate는 한 변수를 다른 범주형 변수로 분리할 때 사용하는 명령어이다. 아래 명령에서 설명하고 있듯이 국산차와 외국차의 비교가 가능하도록 결과를 도출할 수 있다.
?list foreign mpg*, nolabel sepby(foreign)
목차
목차
입문편
Stata 알아보기
1. Stata에서 가능한 통계기법 11
2. Stata 시작하기 11
3. 업데이트, 로그파일 15
4. 데이터 파일관리 17
5. Do-파일편집기 20
6. 데이터 관리에 유용한 명령어 21
제1장
구조방정식모형의 개요
1.1 구조방정식모형분석의 개요 31
1.2 상관분석 32
1.3 편상관계수분석 35
1.4 스피어만 & 켄달타우 상관계수분석 36
1.5 회귀모형분석 37
1.6 요인분석 46
제2장
구조방정식모형 이해하기
2.1 Stata에서 분석가능한 구조방정식모형 55
2.2 툴바 소개 58
단박에 STATA로 구조방정식모형분석
2.3 sem과 gsem의 옵션 구분 60
2.4 구조방정식모형분석 절차 62
2.5 심화 모형 이해하기 63
2.6 구조방정식모형 추정 전반 이해하기 90
제3장
예제로 배우는 구조방정식모형분석
3.1 비재귀모형(Nonrecursive structural model) 111
3.2 다중지표 다중원인 모형(MIMIC model) 115
3.3 다중지표 다중원인 모형: 순서형 프로빗 [MIMIC model(generalized response): ordered probit] 118
3.4 무한회귀모형 SUR(seemingly unrelated regression model) 120
3.5 위계적 CFA(Higher-order CFA) 123
3.6 오차상관모형(Correlated uniqueness model) 127
3.7 잠재성장모형(Latent growth model) 130
3.8 gsem형태의 단순요인모형[Single factor pass/fail measurement model(generalized response)] 135
3.9 단순 로지스틱 IRT모형One-parameter logistic IRT(Rasch) model 138
3.10 두 요인 모형[two- factor measurement model(gsem)] 144
3.11 2레벨 모형[Two-level measurement model(multi-level, generalized response)] 152
3.12 매개효과모형(mediation models) 157
3.13 2레벨 다층모형[(gsem) Two-level model(gsem)] 159
3.14 3레벨 모형[(gsem) Three-level model(multilevel, generalized response) 161
3.15 로짓회귀/다항 로짓회귀모형(Logistic regression/Multinomial logistic regression model) 165
3.16 순서형 프로빗과 로짓모형(Ordered probit and ordered logit) 171
제4장
db sem 명령어를 활용한 구조방정식모형 그리기
4.1 Builder로 구조방정식모형분석 179
4.2 기타 190
Stata 알아보기
1. Stata에서 가능한 통계기법 11
2. Stata 시작하기 11
3. 업데이트, 로그파일 15
4. 데이터 파일관리 17
5. Do-파일편집기 20
6. 데이터 관리에 유용한 명령어 21
제1장
구조방정식모형의 개요
1.1 구조방정식모형분석의 개요 31
1.2 상관분석 32
1.3 편상관계수분석 35
1.4 스피어만 & 켄달타우 상관계수분석 36
1.5 회귀모형분석 37
1.6 요인분석 46
제2장
구조방정식모형 이해하기
2.1 Stata에서 분석가능한 구조방정식모형 55
2.2 툴바 소개 58
단박에 STATA로 구조방정식모형분석
2.3 sem과 gsem의 옵션 구분 60
2.4 구조방정식모형분석 절차 62
2.5 심화 모형 이해하기 63
2.6 구조방정식모형 추정 전반 이해하기 90
제3장
예제로 배우는 구조방정식모형분석
3.1 비재귀모형(Nonrecursive structural model) 111
3.2 다중지표 다중원인 모형(MIMIC model) 115
3.3 다중지표 다중원인 모형: 순서형 프로빗 [MIMIC model(generalized response): ordered probit] 118
3.4 무한회귀모형 SUR(seemingly unrelated regression model) 120
3.5 위계적 CFA(Higher-order CFA) 123
3.6 오차상관모형(Correlated uniqueness model) 127
3.7 잠재성장모형(Latent growth model) 130
3.8 gsem형태의 단순요인모형[Single factor pass/fail measurement model(generalized response)] 135
3.9 단순 로지스틱 IRT모형One-parameter logistic IRT(Rasch) model 138
3.10 두 요인 모형[two- factor measurement model(gsem)] 144
3.11 2레벨 모형[Two-level measurement model(multi-level, generalized response)] 152
3.12 매개효과모형(mediation models) 157
3.13 2레벨 다층모형[(gsem) Two-level model(gsem)] 159
3.14 3레벨 모형[(gsem) Three-level model(multilevel, generalized response) 161
3.15 로짓회귀/다항 로짓회귀모형(Logistic regression/Multinomial logistic regression model) 165
3.16 순서형 프로빗과 로짓모형(Ordered probit and ordered logit) 171
제4장
db sem 명령어를 활용한 구조방정식모형 그리기
4.1 Builder로 구조방정식모형분석 179
4.2 기타 190
저자
저자
정성호
Payment & Security
Payment methods
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.
$99 이상 무료 배송
3% 리워드 크레딧 적립
Secure Payment

