2017-11-11 12 views
0

私のOLS回帰の回帰定数の保存に問題があります。私は、パネルデータセット内の各企業の毎日の回帰を計算したいと思います。 obs_idは会社と日付を識別します。保存パネルの回帰定数と変数の残差

次のループを構築しようとしました。どういうわけか、保存された係数はサンプル全体で同じです。

foreach x in obs_id { 
    newey retRF MktRF SMB HML if obs_id == `x', lag(0) 
    mat A = e(b) 
    quietly replace constant = A[1, 4] if obs_id == `x' 
    matrix A = . 
} 

私のコードにコメントやアイデアをお寄せいただきありがとうございます。私もstatsbyを試しましたが、私のサンプルが大きすぎてそのコマンドを使用することはできません。

+0

https://www.statalist.org/forums/forum/general-stata-discussion/general/1417810-loop-error-when-saving-regression-coefficientsで類似の質問をクロスポストします。ポスティングは礼儀正しく、あまり広く使用されていません。 –

+0

私は規則に適用しないことをお詫びし、これが再び起こらないことを保証します。 –

+0

コメントをいただきありがとうございますが、これらはルールではなく、良い練習の提案です。 –

答えて

0

あなたのループは、単一の項目をループし、

newey retRF MktRF SMB HML if obs_id == obs_id, lag(0) 
mat A = e(b) 
quietly replace constant = A[1, 4] if obs_id == obs_id 
matrix A = . 

最初に書き換えることができ、その後、

newey retRF MktRF SMB HML, lag(0) 
mat A = e(b) 
quietly replace constant = A[1, 4] 
matrix A = . 

あなたが推測するかを期待されているどのような方法foreach作品ではありません。それは、その別個の値をループするために名前を付けられた変数の "内側"を見ていません。 help foreachを参照してください。

statsbyで試したことを私たちに教えてください。そして/またはSSCからrunbyを試してみてください。データセットやサイズや形状が似ていなければ、ここで報告されているように問題をテストすることはできません。