Stata中自定义程序的Post e(b)向量
我编写了一个计算加权回归的程序,现在我希望我的估计结果存储为e(b)向量,这样bootstrap命令就可以轻松地访问结果,但我不断地得到一个错误。我的程序看起来像:Stata中自定义程序的Post e(b)向量,stata,Stata,我编写了一个计算加权回归的程序,现在我希望我的估计结果存储为e(b)向量,这样bootstrap命令就可以轻松地访问结果,但我不断地得到一个错误。我的程序看起来像: capture program drop mytest program mytest, eclass version 13 syntax varlist [if] marksample touse // mata subroutine creates matrix `b', such as mata: bla("`varlist'"
capture program drop mytest
program mytest, eclass
version 13
syntax varlist [if]
marksample touse
// mata subroutine creates matrix `b', such as mata: bla("`varlist'", "`touse'")
tempname b
matrix `b' = (1\2\3)
ereturn post `b'
end
mytest town_id
ereturn list
但是我不断得到一个一致性错误r(503)代码>在运行脚本时。当我发布一个普通的矩阵时,比如ereturn matrix x=b
,一切正常,但我希望将我的系数“正确”存储在e(b)
向量中
我查看了Stata的文档,但无法找出这不起作用的原因。他们的建议是编码
tempname b V
// produce coefficient vector `b' and variance–covariance matrix `V'
ereturn post `b' `V', obs(`nobs') depname(`depn') esample(`touse')
转向柱的选项都是可选的。有人能告诉我我在这里遗漏了什么吗?谢谢 使用“行”向量而不是“列”向量。例如,如果您检查回归
的存储结果,您将看到这是预期的结果
capture program drop mytest
program mytest, eclass
version 13
syntax varlist [if]
marksample touse
// mata subroutine creates matrix `b', such as mata: bla("`varlist'", "`touse'")
tempname b
matrix `b' = (1,2,3)
ereturn post `b'
end
*----- tests -----
clear
sysuse auto
// mytest test
mytest mpg weight
ereturn list
matrix list e(b)
// regress example
regress price weight mpg
ereturn list
matrix list e(b)