这是我的问题: 在第1,000部分重复回归,每次按指定绘制y,X1,X2和u变量的新值。计算估计系数的平均值以及它们的相关性。 我用for循环编写了我的代码,但它只是告诉我没有任何变化。
foreach n in 1000{
forvalues m = 1/1000 {
local bb0 = 0
local bb1 = 0
local bb2 = 0
gen u = rnormal(0, 5) if _n <= `n'
gen x1i = rnormal(0, 1) if _n <= `n'
gen x2i = exp(x1i) if _n <= `n'
gen Yi = 2 + 4 * x1i - 6 * x2i + u if _n <= `n'
regress Yi x1i x2i
replace bb0 = b[_cons]) if _n <= `n'
replace bb1 = b[x1i] if _n <= `n'
replace bb2 = b[x2i] if _n <= `n'
}
}
gen b0 = mean(bb0)
gen b1 = mean(bb1)
gen b2 = mean(bb2)
答案 0 :(得分:3)
你的报告最神秘。从表面上看,这段代码永远不会超过几个错误中的第一个。这里提到的任何错误都是致命的,但我还是报告了其他错误。
循环的意图显然是保持1000次回归的结果,但每次循环回归时,最后一次回归的估计系数(其他错误在某种程度上不咬人)会覆盖变量bb0 bb1 bb2
中的任何先前估计值。这本身并不是语法错误,但即使是大纲,程序也不会做出预期的事情。
外部循环是一个使用单个参数的循环,它只将最后一次观察设置为1000.本身它不会产生任何迭代。
初始化local
宏bb0
bb1
bb2
是无害的,但如果想法与初始化变量bb0
有关,则非常不正确, bb1
,bb2
。
错误第二次循环,第一个generate
语句将失败,因为变量u
已经存在。
错误在接下来的三个generate
语句中会遇到同样的问题。
错误第一次循环循环时,replace
的{{1}}语句将失败,因为不存在此类变量(请参见上文:之前的本地宏分配无关紧要) 。
错误相同的bb0
语句包含一个迷路括号。
错误同样的问题会在第一次循环循环时设置接下来的两个replace
语句,因为不存在这样的变量。
错误 replace
系数保留在regress
后,而不是_b
。
错误没有函数b
可以在表达式中使用mean()
语句。
以下代码至少有效。所报告的问题陈述在各种细节上都不清楚:例如,样本大小和模拟数量可能不同。由于问题的基调在某些过程中暗示了一项任务,至少相关的代码留作练习。
generate