The idea of approximation
stata 복습 2탄: 데이터 관리 기본 명령어 본문
![]() |
|
** 이 책의 진짜 좋은 점은 회귀식을 돌렸을 때의 결과와 그 회귀식 결과를 직접 구하는 결과를 비교하게 하는 것이다. 계량 공부에도 좋은 책 같아 추천.
* 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