我正在尝试在 Stata 中引导逐步回归并提取引导系数。我有两个单独的 ado 文件。sw_pbs 是用户使用的命令,它调用了辅助命令 sw_pbs_simulator。
program define sw_pbs, rclass
syntax varlist, [reps(integer 100)]
simulate _b, reps(`reps') : sw_pbs_simulator `varlist'
end
program define sw_pbs_simulator, rclass
syntax varlist
local depvar : word 1 of `varlist'
local indepvar : list varlist - depvar
reg `depvar' `indepvar'
local rmse = e(rmse)
matrix b_matrix = e(b)'
gen col_of_ones = 1
mkmat `indepvar' col_of_ones, mat(x_matrix)
gen errs = rnormal(0, `rmse')
mkmat errs, mat(e_matrix)
matrix y = x_matrix * b_matrix + e_matrix
svmat y
sw reg y `indepvar', pr(0.10) pe(0.05)
drop col_of_ones errs y
end
输出是自举系数的数据集。我的问题是输出似乎取决于第一次逐步回归模拟的结果。例如,如果我有自变量 var1 var2 var3 var4 并且第一次逐步模拟在模型中只包含 var1 和 var2,那么后续模型中只会出现 var1 和 var2。如果第一个模拟包括 var1 var2 和 var3 则只有 var1 var2 和 var3 将出现在后续模型中,假设它们是显着的(如果不是,它们的系数将显示为点)。
例如,不正确的输出如下所示。如果变量 lweight、age、lbph、svi、gleason 和 pgg45 在第一次模拟中没有出现,则它们永远不会出现。
_b_lweight _b_age _b_lbph _b_svi _b_lcp _b_gleason _b_pgg45 _b_lpsa
.4064831 .5390302
.2298697 .5591789
.2829061 .6279869
.5384691 .6027049
.3157105 .5523808
我希望模型中未包含的系数在数据集中始终显示为点,并且我希望后续模拟看起来不依赖于第一次模拟。