본문 바로가기
Stata

[STATA] 구간 더미변수(그룹) 쉽게 빠르게 만들기

2016. 12. 13.

[STATA] 구간 더미변수(그룹) 쉽게 빠르게 만들기




1단계 : 구간변수 생성

2단계 : 구간변수를 바탕으로 더미변수 생성


* 물론 더미를 하나하나 만드는 노가다도 있다.



1단계 : 두가지 방법이 있다.  egen과 cut( )을 사용하는 방법과 gen과 recode( )를 사용하기. 용도에 따라 다르겠지만 cut이 나을 듯..



(1안) egen과 cut 사용하기

참고 : http://www.ats.ucla.edu/stat/stata/faq/cut.htm 


egen XG = cut(X), at(30,40,50,60,70)


요런식으로 하면 X라는 변수값에 대해 XG의 값을 30이상 40미만이면 30, 40이상 50미만이면 40 이런식으로 만들게 된다.


끝에 label 옵션을 주면 이해가 편한 변수명이 된다.

egen urbcat2 = cut(urb), at(0,34,68,101) label   : same, but in addition defines labels "0- ", "34-" and "68-"


(2안) gen과 recode 사용하기

참고 : http://www.stata.com/statalist/archive/2002-08/msg00268.html

gen brackets=recode(price,10000,20000,30000,40000,50000, 75000, 100000, 200000, 300000)

이런 식으로 하면 price라는 변수에 대해 10000 이하면 brackets라는 변수를 10000으로, 10000 초과, 20000이하이면, 20000으로 생성한다.


다른 방법들도 있다.

참조 : http://www.unige.ch/ses/sococ/cl/stata/make.groups.html

generate urbcat=autocode(urb,4,0,100)  break urb into four evenly spaced categories from 0 to 100  : urb라는 변수를 0에서 100까지 4 단위로 쪼갠다.

generate cat1=recode(urb,21,38,64,100) 4 groups (≤ 21, ≤ 38, ≤ 64 and ≤ 100)  : 위의 2안


퍼센타일로 나누려면 xtile이란 명령어.



자 이제 2단계다.

(참조 : http://www.stata.com/statalist/archive/2002-08/msg00268.html )


tab과 gen의 조합이다.


tab A, gen(B)   : A라는 구간변수의 구간에 따라 B1, B2, B3 ... 라는 더미변수들을 생성한다.




더미변수 만드는 다른 방법

generate sclass1 = sclass==1
generate sclass2 = sclass==2
generate sclass4 = sclass==4


끝.




댓글