suketani’s diary

個人的メモ用、どこも代表していない

Stataの時間問題

Stataで企業データ使ってると直面する問題。時間の問題である。

ゆうて年次のデータだけ使っていれば問題ないんだけども、さすがにそろそろ四半期なり半期なりのデータを使えないと論文にならなさそうな予感がする。
あと何より重要なのは株価データですかねえ。時間の扱い方大事なんす。

統計ソフトがありがたいのは時間を勝手に読み込んでくれること。本当に助かります。。
この時間の変数の操作ができるようになるとすこぶる作業が速くなる!

まずここでは得られる時間データが月次のものだとする。たとえば「2018/03」みたいな感じ。
企業のデータ (NEEDSとかCapital IQとかCompustat) を使ってるとたいていの場合は月次だと思われるのでまずここから。

手順は、まずこの月次の時間データを時間のデータとして読み込ませて、それを様々な時間の単位に変換する。
何言ってるのか謎だと思うのでまずコードを。入手できた月次の時間変数を「time」という名前だとすると:

gen 	        time_m = monthly(time,"YM")
gen		time_d = dofm(time_m)

1行目は単なるテキストデータであるtimeの変数を月次のデータとして読み込ませる作業。
2行目はそれを日次のデータに変換する作業。

こうすうと、月次のナンバリングがtime_mとして、日次のナンバリングがtime_dという名前で保存される。
これなんで日次に直すのかというと、月次のナンバリングを四半期や半期のナンバリングに変換したい場合は日次のナンバリングに直しておくと便利なのだ。

たとえば、time_dをベースにして半期や四半期のデータに変換したい場合は:

gen		time_h = hofd(time_d)
gen          time_q = qofd(time_d)

とすると、time_hに半期のナンバリングが、time_qに四半期のナンバリングが返される。

これを応用すると日次データやもっと細かい時間のデータにも応用できるんやで。