0

を実行してreg、 の係数値を取得しようとしていますStata。私は次のことをしました。が従属y変数 、kl、が独立変数でありm、私が作成しnた新しい変数があるとします。new

loc vars k l m n
reg y `vars'

# I know that I can get back the coefficients using mat list e(b) but I  need to 
get coefficient of each variable and use it to compute the elasticity (one at a time).

# so, I run the following loop but it doesn't work.



foreach i in vars {
sca coeff`i' = _b[`i'] # main problem here 
sca cons = _b[_cons]  # main problem here
corr new `i' , c # correlation of new with each independent vars
sca cov_`i' = r(cov_12)
sum `i' 
sca elas_`i' = (coeff`i'*r(mean))/10 # elasticity not working 
}

この点でどんな助けも高く評価されます。

4

1 に答える 1

1

神父として。を考えると、これを行う必要はありませんmargins。しかし、なぜコードが機能しないのでしょうか? に対して間違った構文を使用していますforeach

入力する必要はありません

  foreach i in vars

しかし

  foreach i of local vars

それ以外の場合、Stata はvarsローカル マクロの内容ではなくリテラル テキストを使用しますvars。2 つの構文については、ヘルプとhttp://www.stata-journal.com/sjpdf.html?articlenum=pr0005で詳しく説明されています。

細かい点:

  1. 割り当てsca cons = _b[_cons]は機能するはずですが、ループのたびに繰り返す必要はありません。

  2. を生成するためのコードを見せてくれないnewので、それで問題ないと仮定する必要があります。

ちなみに、「うまくいかない」というのはあまり意味がありません。私が遭遇した約20の意味のリストをまとめたことがありますが、最も重要なものには「違法です」と「私が望むことをしません」が含まれます. そのため、何が起こったのかを正確に詳しく説明すること (この場合は、Stata が応答として入力した内容を正確に伝えること) は常に役に立ちます。

于 2013-04-12T08:30:49.353 に答える