For loop Stata foreach和forvalue循环
我的问题是: 重复第1000部分的回归,每次按规定为y、X1、X2和u变量绘制新值。计算估计系数的平均值及其相关性。 我用for循环编写代码,但它告诉我没有任何变化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
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
macrosbb0
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错误消息。