-1

我正在运行面板回归,我必须尝试变量组合。

我一直在尝试运行以下代码:

local x0 elec_qtr_dummy 
local x1 elec_qtr_dummy elec_qtr_1b 
local x2 elec_qtr_dummy elec_qtr_1b elec_qtr_2b 
local x3 elec_qtr_dummy elec_qtr_1b elec_qtr_2b elec_qtr_3b 
local x4 elec_qtr_dummy elec_qtr_1b elec_qtr_2b elec_qtr_3b elec_qtr_4b 
local x5 elec_qtr_dummy elec_qtr_1b elec_qtr_2b elec_qtr_3b elec_qtr_4b elec_qtr_1a elec_qtr_2a 
local x6 elec_qtr_dummy elec_qtr_1b elec_qtr_2b elec_qtr_3b elec_qtr_4b elec_qtr_5b elec_qtr_6b

xtset companyid 

forvalue v = 0/6 {  

    eststo,title("log_stqf_deal"): xi: xtreg log_stqf_deal `x`v'' i.year,fecluster(state_code)
    est2vec table`v', e(N) vars(`x`v'') name(lstqf_deal) replace 

    eststo,title("log_totln"): xi: xtreg log_stqf_deal `x`v'' i.year,fe cluster(state_code)  
    est2vec table`v', addto(table`v') name(ltotln)

    est2rowlbl `x`v'', saving replace path(`file') addto(table`v')
    est2tex table`v', preserve path(`file') mark(starb)fancy levels(90 95 99) label replace 
    estimates clear
} 

然而,Stata 拒绝承认forvalues循环内有当地人。

如果有人能指出一个有效的替代方案,那将非常有帮助。

我正在使用 Stata 12.0 版。

4

2 回答 2

1

正如@Roberto Ferrer 正确指出的那样,这里没有可重现的内容。事实上,“Stata 拒绝承认……”的说法只是拟人化的措辞,它本身并不能说明正在发生的事情。但问题的关键似乎是本地宏对正在执行的代码不可见。

本地宏的基本错误非常普遍,值得回答,因为即使它不是 OP 问题的答案,它也是可能以类似标题发布的许多问题的答案。

局部宏在定义它们的空间中是局部的,这意味着其中之一

  • 主要互动环节

  • 一个特定的程序

  • 一个特定的do-file

  • (部分)特定do-file编辑器窗口的内容

请注意,最后的“(部分)”确实可以咬人,例如(例如)您分别执行代码块时。被引用的本地宏的定义必须对同一代码空间中的 Stata 可见。

在该空间之外,本地宏将不可见,这意味着对它们的引用将被解释为引用不存在的宏和非法的空字符串。引用不存在的宏本身并不是非法的,但生成的语句可能是非法的,或者可能只是不符合用户的要求,就像这里的情况一样。

要测试本地宏的问题,您可以

  1. set trace on查看代码的逐行解释。如果宏引用被空代码替换,Stata 看不到本地宏;它们确实不是本地的,而是代码中的其他地方。

  2. display在使用宏之前尝试宏。与#1 相同的故事。

  3. 用于macro list列出适用于您的代码的 Stata 已知的(全局和)本地宏。与#1 相同的故事。

于 2014-12-12T14:17:50.273 回答
1

报价不好。他们应该是:

xi: xtreg log_stqf_deal `x`v'' i.year,fe

但我不知道它们是否很好,而你的原始格式把它们弄乱了。你应该确认。

一个工作示例:

clear
set more off

sysuse auto

local x0 mpg 
local x1 mpg rep78

forvalue v = 0/1 {
    reg price `x`v''
}

您没有引用 Stata 给您的错误,这是一件可取的事情。

您也可以检查stepwise命令,但要明智地使用它。

于 2014-12-12T13:29:57.207 回答