0% found this document useful (0 votes)
13 views65 pages

(Panel) Ch.2

The document provides detailed instructions on generating and manipulating time data in Stata, including creating variables for year, quarter, month, and day. It also covers frequency conversions between daily, monthly, quarterly, and yearly data, as well as using time operators such as lag, lead, and difference. Additionally, it discusses the use of egen functions for calculating maximum, minimum, and other time-related variables.

Uploaded by

c6yqt8kpk7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views65 pages

(Panel) Ch.2

The document provides detailed instructions on generating and manipulating time data in Stata, including creating variables for year, quarter, month, and day. It also covers frequency conversions between daily, monthly, quarterly, and yearly data, as well as using time operators such as lag, lead, and difference. Additionally, it discusses the use of egen functions for calculating maximum, minimum, and other time-related variables.

Uploaded by

c6yqt8kpk7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

Ch 2.

Time data
P_data2_1.dta
1. Generate time data
• by company, sort: gen year=1929+_n

• by company, sort: gen quarter=yq(1929, 4)+_n

• format quarter %tq


1. Generate time data
• by company, sort: gen month=ym(1929, 12)+_n

• format month %tm

• by company, sort: gen day=mdy(12,31,1929)+_n

• format day %td


1. Generate time data

• 시간 갭이 있는 시간변수 생성

• by company, sort: gen year2=1920+10*_n


1. Generate time data: tsmktim

• findit tsmktim

>>> 시간 갭이 있는 시간변수는 만들 수 X

• tsmktim year1, start(1930) i(company)

>>> Company 별로 1930~1939년 연도변수를 생성


1. Generate time data: tsmktim

• tsmktim quarter1, start(1930q1) i(company)


1. Generate time data: tsmktim

• tsmktim month1, start(1930m1) i(company)


1. Generate time data: tsmktim

• tsmktim day1, start(01jan1930) i(company)


P_data2_2.dta
2. Frequency

• From daily data to Monthly data

• gen dm=mofd(date)

• format dm %tm

• list data dm in 15/25


2. Frequency

• From daily data to quarterly data: qofd( )

• From daily data to yearly data: yofd( )


2. Frequency

• From monthly data to daily data

• gen day1=dofm( )
2. Frequency

• From monthly data to daily data

• gen day1=dofm(dm)

• format day1 %td

• list date dm day1 in 15/24


2. Frequency

• From quarterly data to daily data: dofq( )

• From yearly data to daily data: dofy( )


2. Frequency

• From monthly data to quarterly data

• gen mq=qofd(dofm(dm))

• format mq %tq

• list dm mq in 56/64
2. Frequency

• From daily data to monthly data

• gen dm1=mofd(date)

• format dm1 %td

• collapse (mean) dowclose, by(dm1)


P_data2_3.dta
2. Frequency
• From monthly data to quarterly data

• gen m_q=qofd(dofm(month))

• format m_q %tq

• collapse (sum) invest mvalue kstock, by(company m_q)


2. Frequency

• From monthly data to quarterly data

• gen m_q=qofd(dofm(month))
2. Frequency

• From monthly data to quarterly data

• gen m_q=qofd(dofm(month))

• format m_q %tq


2. Frequency
• From monthly data to quarterly data

• gen m_q=qofd(dofm(month))

• format m_q %tq

• collapse (sum) invest mvalue kstock, by(company m_q)


P_data2_4.dta
2. Frequency

• Generate day, month, year data

• gen date1=dofm(dm)

• format date1 %td


2. Frequency

• gen year1=year(date1)

• gen month1=month(date1)

• gen week1=week(date1)

• gen day1=day(date1)
2. Frequency

• gen jan_dum=(month1==1)
2. Frequency

• gen jan_dum1=(month(dofm(dm))==1)

• compare jan_dum jan_dum1


2. Frequency

• Combine day, month, year data

• gen date2=mdy(month1, day1, year1)

• format date2 %td


2. Frequency

• 요일 변수: day of week

>>>> 0: 일요일, 1: 월요일,….6: 토요일

• gen week_d=dow(date1)
3. egen

• ssc install egenmore, replace


P_data2_2.dta
3. egen: bom()

• Beginning of month

• egen bom1=bom(1, 1953)

• format bom1 %td


3. egen: bom()

• egen bom2=bom(2, 1953), work format(%td)

• Work

-지정한 연도와 월의 첫째 날이 휴일이면 그 다음날을

변수로 만드는 기능
3. egen: bomd()

• egen bom3=bomd(date), format(%td)

• 일별주기 시간변수를 이용하여 해당 월의 첫

째 날을 변수로 만드는 함수

• (date: 일별주기 시간변수)


3. egen: bomd()

• gen ela_bom=date-bom3

• list date ela_bom in 17/27

• 며칠이 지났는지
3. egen: eom()

• 지정한 연도와 월의 마지막 날짜를 변수로 생성

• egen eom1= eom(1, 1953), format(%td)


3. egen: eomd()

• 지정된 일변주기 변수의 해당 연도와 월의 마지

막 날을 변수로 지정

• egen eom2= eomd(date), format(%td)


3. egen: dayofyear()

• 일별주기 변수를 그 해의 1월 1일을 기준으로 경

과기간 변수 생성

• egen day1= dayofyear(date)


3. egen: dayofyear()

• egen day2= dayofyear(date), month(3)

• list date day1 day2 in 36/42

• month(3) option

-3월 1일부터 며칠이 지났는지 계산


P_data2_5.dta
3. egen: max()
• 최대값 변수 생성

• egen maxtodate= record(invest), by(company) order(time)

• by company, sort: egen max1=max(invest)

• list company time invest maxtodate max1 in 1/12


3. egen: min()
• 최소값 변수 생성

• egen mintodate= record(invest), by(company) order(time) min

• by company, sort: egen min1=min(invest)


3. egen: min()
• egen mintodate1= record(invest), by(company) order(time)

• by company, sort: egen min11=min(invest)

• list company time invest mintodate1 min11 in 1/12


P_data2_6.dta
4. Time operator
• lag: 과거값

• lead: 미래값

• difference: 차분
4. Time operator: lag
• tsset hhid year

• gen total_income1=L.total_income

• by hhid, sort: gen total_income11=total_income[_n-1]


4. Time operator: lag
• tsset hhid year

• gen total_income2=L2.total_income

• by hhid, sort: gen total_income22=total_income[_n-2]


4. Time operator: lead
• tsset hhid year

• gen total_income3=F.total_income

• by hhid, sort: gen total_income33=total_income[_n+1]


4. Time operator: lead
• reg house_price i.hsex hage i.hedu L.total_income F.total_income
4. Time operator: lead
• reg house_price i.hsex hage i.hedu L.total_income F.total_income

• reg house_price i.hsex hage i.hedu L(1/3).total_income

F.total_income

• reg house_price i.hsex hage i.hedu L(-3/3).total_income

F.total_income
4. Time operator: lead
• reg house_price i.hsex hage i.hedu L(1/3).(total_income debt)
4. Time operator: lead
• gen total_income4=L(1/3).total_income › › › › › › error
4. Time operator: lead
• xtreg house_price i.hsex hage i.hedu L.total_income

F.total_income, re

• xtreg house_price i.hsex hage i.hedu L.total_income

F.total_income, fe
P_data2_7.dta
4. Time operator: lag
• tsset hhid year

• gen fin_asset1=L.fin_asset

• by hhid, sort: gen fin_asset11= fin_asset[_n-1]


4. Time operator: lag
• tsset hhid year

• gen fin_asset2=F.fin_asset

• by hhid, sort: gen fin_asset22= fin_asset[_n+1]


4. Time operator: lag
• list 변수…… if hhid==12
P_data2_8.dta
4. Time operator: 시간 갭 존재
• tsset date

• gen dowclose11=L.dowclose

>>>>>>>>???
4. Time operator: 시간 갭 존재
• tsset date

• gen time1=_n

• tsset time1

• gen dowclose1=L.dowclose
P_data2_9.dta
4. Time operator: difference
• tsset company quarter

• gen dinvest=D.invest

• by company, sort: gen dinvst1=invest-invset[_n-1]


4. Time operator: difference
• gen d2invest=D2.invest
4. Time operator: seasonal difference
• gen sinvest=S.invest

• gen s2invest=S2.invest
4. Time operator: diff&lag 동시에
• gen stock1=LD.stock

• gen stock2=DL.stock

You might also like