0

我正在尝试运行reg并取回 中的系数值Stata。我做了以下。假设y因变量 , , ,kl自变量,并且我创建了一个新变量。mnnew

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。这两种语法在帮助中进行了解释,在http://www.stata-journal.com/sjpdf.html?articlenum=pr0005中有更详细的说明

小点:

  1. 分配sca cons = _b[_cons]应该可以工作,但您不需要每次循环都重复它。

  2. 您没有向我们展示您的生成代码new,因此我们必须假设这没问题。

顺便说一句,“不起作用”并不意味着什么。我曾经整理了一份清单,列出了我遇到的大约 20 种含义,其中最重要的包括“非法”和“不做我想做的事”。因此,详细说明究竟发生了什么——在这种情况下,正是 Stata 在回复中输入的内容——总是有帮助的。

于 2013-04-12T08:30:49.353 回答