私は、パネル変数会社id
と1986m7〜2015m12の間の月間変数を持つ長い形式のパネルデータを持っています。10年後のFama-MacBethスロープ係数
私はFama-MacBeth回帰の10年間のベータ推定値を取得し、後でそれらをプロットするために新しいファイルに格納したいと考えています。
1986m7から1996m7までのfmb回帰のベータ、1986m8から1996m8までのベータ、2005m12から2015m12までの最後の回帰が必要です。
私は最初にrolling
コマンドでこれを行うことができたと思っていましたが、Idではなく「Stata」に「ロール」する方法や、このコマンドでも可能なのかどうかわかりません。
私の2番目のアイデアは、while
ループで作業することでした。しかし、私はStataにどのように各ループの後に1ヶ月だけローカル変数を上げるべきかを伝える方法を知らない。ローカル変数を日付として保存することも可能ですか?
多分誰かが私の問題を解決する別の方法を知っています。
また、これらのベータ版を新しいファイルに保存して新しいベータ版を追加することもできます。私はそれらをスカラーとして保存することを考えましたが、スカラーを新しい変数として戻す方法はわかりません。ローリングコマンドを使用すると、新しい変数が作成されるため、この問題は発生しません。
私はこれまでローリングアイデアのためのコードとして持っている何、なぜなら120月(10年)ローリング・ウィンドウのwindow(120)
:
use mydata, clear
ssc install xtfbm
xtset id date
rolling _b, clear window(120): xtfmb y x
私はこれまで、ループのアイデアのためのコードとして持っているもの:
ssc install xtfmb
local i = tm(1986m7)
while `i' <= tm(2005m7) {
use mydata, clear
drop if date < tm(`i')
drop if date >= tm(`i' + "1year")
xtset id date
quietly xtfmb y x
scalar x`i' = _b[x]
local i = `i' + "1month"
}
「rolling」コマンドの問題は、idごとにローリング回帰を別々に行うことです。それはファママクベス回帰の考えではない。 fmbは2段階回帰であり、第1段階では、各単一期間について、断面回帰が行われる。次に、第2のステップにおいて、最終係数推定値は、第1のステップ係数推定値の平均として得られる。しかし、あなたの 'forval'ループの提案では、あなたの助けを借りて、うまく動作します。 –
清算と修正をありがとう。 –