For loop Stata foreach和forvalue循环

For loop Stata foreach和forvalue循环,for-loop,stata,For Loop,Stata,我的问题是: 重复第1000部分的回归,每次按规定为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' g

我的问题是: 重复第1000部分的回归,每次按规定为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)  
foreach n in 1000{
对于值m=1/1000{
局部bb0=0
局部bb1=0
局部bb2=0

gen u=r正常(0,5)如果你的报告是最神秘的。从表面上看,这段代码从未通过几个错误中的第一个。这里提到的任何错误都是致命的,但我报告了其他错误

显然,循环的目的是保存1000次回归的结果,但每次循环时,最后一次回归的估计系数都会(其他错误不知何故不会咬人)覆盖变量
bb0 bb1 bb2
中以前的任何估计值。这本身不是语法错误,但即使在大纲中,程序也不会执行预期的操作

外部循环是一个使用单个参数的循环,它只将最后一个观察值设置为1000。它本身不会产生任何迭代

初始化
local
macros
bb0
bb1
bb2
是无害的,但如果这种想法与初始化变量
bb0
bb1
bb2
有关,则是不正确的

Bug第二次循环时,第一个
generate
语句将失败,因为变量
u
已经存在

Bug同样的问题会困扰接下来的三个
生成
语句

Bug第一次循环时,
bb0
replace
语句将失败,因为不存在这样的变量(参见上文:前面的本地宏赋值是不相关的)

Bug相同的
replace
语句包含一个错误的括号

Bug同样的问题会在接下来的两个
replace
语句中第一次出现,因为不存在这样的变量

Bug
回归之后
系数保存在
\u b
中,而不是
b

Bug
generate
语句的表达式中没有可以工作的函数
mean()

下面的代码至少是有效的。报告中的问题陈述在各个细节上都不清楚:例如,样本大小和模拟的数量可能不同。由于问题的语气表明在某个课程中有作业,至少关联代码是一个练习

clear 
set seed 42 
set obs 1000 

quietly foreach v in Yi x1i x2i bb0 bb1 bb2 { 
    gen `v' = . 
}

quietly forval m = 1/1000 {
    replace x1i = rnormal(0, 1) 
    replace x2i = exp(x1i) 
    replace Yi = 2 + 4 * x1i - 6 * x2i + rnormal(0, 5) 
    regress Yi x1i x2i
    replace bb0 = _b[_cons] in `m'
    replace bb1 = _b[x1i] in `m'
    replace bb2 = _b[x2i] in `m' 
}

su bb0 bb1 bb2 

这里的确切问题是什么?请求似乎是重写代码,但问题陈述是模糊的。
没有任何更改
不可能是Stata错误消息。