2016-11-10 6 views
1

私は、パネル変数会社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" 

    } 

答えて

0

答えであることを主張するコメントの束:

プログラムはStataのではなく、STATAと呼ばれています。これは初心者です。

xtfbmはおそらくxtfmbのタイプミスです。いずれにしても、私はそれを使ったことはありませんし、それを見たこともありませんので、具体的にアドバイスすることは控えてください。

もっと興味深いことに、rollingはパネル設定をサポートしています。ここではあなたが試すことができますまぬけ例です。

webuse grunfeld 
xtset 
rolling _b, window(10): regress invest year 

あなたの最初のコードブロックが似た何かをしようとしているように見えるように、私はあなたが求めているものをクリアしておりません。

「ローカル変数を日付として保存することは可能ですか?」これは後方ですが、私はあなたの意味を理解していると思います。 Stataの日付は単なる数値なので、ローカルマクロ(Stataでは変数とみなされない)に保存することができます。これは、法的次のようになります。

local t = ym(1986, 7) 
while `t' <= ym(2005, 7) { 
    ... 
    local T = `t' + 12 
    ... 
    local ++t 
} 

、これは良いだろう:

local t1 = ym(1986, 7) 
local t2 = ym(2005, 7) 
forval t = `t1'/`t2' { 
    ... 
    local T = `t' + 12 
    ... 
} 

として明確に見えるかもしれないが、私のアドバイスはまだありませんこれは、rollingをしようとするだろう

forval t = `=ym(1986, 7)'/`=ym(2005, 7)' { 
    ... 
    local T = `t' + 12 
    ... 
} 

すべてあなたのためにこれ。

+0

「rolling」コマンドの問題は、idごとにローリング回帰を別々に行うことです。それはファママクベス回帰の考えではない。 fmbは2段階回帰であり、第1段階では、各単一期間について、断面回帰が行われる。次に、第2のステップにおいて、最終係数推定値は、第1のステップ係数推定値の平均として得られる。しかし、あなたの 'forval'ループの提案では、あなたの助けを借りて、うまく動作します。 –

+0

清算と修正をありがとう。 –

関連する問題