The idea of approximation

stata 복습 2탄: 데이터 관리 기본 명령어 본문

경제

stata 복습 2탄: 데이터 관리 기본 명령어

Econoim 2013. 6. 11. 09:44

 

STATA 기초적 이해와 활용 (양장)
국내도서
저자 : 민인식,최필선
출판 : 한국STATA학회 2010.04.20
상세보기

 

** 이 책의 진짜 좋은 점은 회귀식을 돌렸을 때의 결과와 그 회귀식 결과를 직접 구하는 결과를 비교하게 하는 것이다. 계량 공부에도 좋은 책 같아 추천.

 

* stata 파일을 스프레드 시트 파일로 전환하기

 

outsheet using "c:\data\data4_8.txt", nolabel replace

 

* 데이터 끝에서부터 5번째에서 마지막 관측치 확인하기

 

list price in -5/L

list price in -5/-2

 

* gen으로 더미변수 만들기

 

gen var4= return>0

(0보다 크면 1 아니면 0)

 

* 범주형 변수 더미 만들기

 

tab race

tab race, nolabel

tab race, gen(dum_race_)  => 범주가 3개면 더미변수가 3개 생김(각각 0,1)

 

xi i.race, noomit prefix(dum_)

=> noomit 옵션은 범주형 3개 중 2개만 만드는 default 하지 말고, 3개 만들라는 것임

dum_race_1, dum_race_2, dum_race_3 이 생김, prefix가 없으면 _Irace_1, _Irace_2, _Irace_3 이 생김

 

* 요약통계량 보기

 

sum hh_A, detail

centile hh_A, c(10 20 30 40 50 60 70 80 90 100)

tabstat hh_J2, statistics

by year, sort: tabstat hh_A hh_F hh_J2 tobar, statistics(mean) by(inc100) columns(variables) format(%9.0f)

 

* return list로 stata에 내부저장된 scalar 값 이용하기

 

return list

gen lived_s = (lived - r(mean))/r(sd)

 

* 전기값

 

gen begin_n1=begin[_n-1]

 

* egen : 패널에서 기업별로 / 월별에서 연별로 변수만들기

 

by company, sort : egen float max_invest = max(invest)  => 기업별 최대값

by year, sort : egen float mean_invest = mean(invest)  => 연도별 평균값

by year, sort: egen float percent_invest=pc(invest) => 연도별 각회사의 투자금액이 전체 투자금액에서 차지하는 비중

by year, sort: egen float rank_invest = rank(invest) => 연도별 각 투자회사의 투자액이 몇번째로 작은지(혹은 큰지)

 

결측치가 하나라도 있을 경우에 이 변수들을 합하여 새로 만든 변수가 missing value가 많이 생기면 egen 활용

gen rtotaldebt = debt1 + debt2 + debt3  (4848 missing ..)

=> egen float rtotaldebt = rowtotal (debt1-debt3) 이라고 하면 됨

 

* n개 그룹으로 나누어 일련번호 부여하기

 

10개 그룹으로 나누어 최하위 그룹에 1, ~ 최상위에 10 부여하기

xtile income10 = income, nquantiles(10)

 

* 데이터 값을 다시 코딩하기

 

recode ybirth (min/1979=0) (1980/max=1), gen (ybirth1)

=> ybirth가 1979까지는 새로운 변수 ybirth가 0, 1980부터는 ybirth1이 1이 되도록/ 새로운 변수 ybirth1을 만들기

 

* data를 옆으로? 아래로? 붙이기

 

옆으로 붙이기=> merge hhid usig "c:\data\data6_14.dta", unique sort (두 데이터셋에 hhid를 일대일로 일치시키기)

=> 이렇게 옆으로 붙이면 1999년 데이터 옆에 2000년 데이터가 붙으므로, wide data type을 long type으로 변환시켜야 하며, 이 때는

reshape long income_ finincome_ propincome_, i(hhid) j(year) 라고 하면 됨

=> income_ finincome_ propincome_는 연도를 제외한 공통된 부분임

 

아래로 붙이기=> append using "c:\data\data6_12.data" (이 때 변수가 없으면 결측치 처리, 변수가 같으면 같은 것끼리 붙음)

 

* 난수생성하기

 

findit rnd

rndt 100 5 => 100개의 난수를 생성하되, t분포의 자유도가 5가 되도로고 만든다



*long shape으로 바꾸기

http://www.ats.ucla.edu/stat/stata/modules/reshapel.htm


 

==============================


Time series 관련 참고 명령어 추가 

* 변수 생성
generate time=q(1959q1)+_n-1
format time %tq;

* acf, pacf, corrgram

* 단위근 검정
varsoc

* arima / ardl /
if 명령어 대신 constraint