Post 来自 Stata 自定义程序的 e(b) 向量
Post e(b) vector from a custom program in 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'", "`touse'")
tempname b
matrix `b' = (1)
ereturn post `b'
end
mytest town_id
ereturn list
但我一直在 运行 脚本上收到 conformability error r(503);
。当我 post 一个普通矩阵,如 ereturn matrix x = b
,一切正常,但我想将我的系数存储 'properly' 在一个 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')
ereturn post 的选项都是可选的。谁能告诉我我在这里缺少什么?谢谢!
使用 "row" 向量而不是 "column" 向量。例如,如果您检查 regress
的存储结果,您会发现这是预期的结果。
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)
我编写了一个计算加权回归的程序,现在我希望将我的估计结果存储为 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'", "`touse'")
tempname b
matrix `b' = (1)
ereturn post `b'
end
mytest town_id
ereturn list
但我一直在 运行 脚本上收到 conformability error r(503);
。当我 post 一个普通矩阵,如 ereturn matrix x = b
,一切正常,但我想将我的系数存储 'properly' 在一个 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')
ereturn post 的选项都是可选的。谁能告诉我我在这里缺少什么?谢谢!
使用 "row" 向量而不是 "column" 向量。例如,如果您检查 regress
的存储结果,您会发现这是预期的结果。
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)