我用Stata编写了一个程序来执行集群引导-t过程来估计t统计量和参数置信区间。该程序的目标是使用t-测试并创建对集群相关性具有鲁棒性的CIs,即使对于少量的集群也是如此。对于好奇的人来说,这是建立在卡梅隆、盖尔巴赫和米勒(2008)所描述的“集群引导-t与渐进精化”过程之上的:“基于引导的改进,用于集群错误的推理。”
问题是,我想要创建一个漂亮的回归表为用户输出,类似于标准的Stata回归报告。但是,我不能使用通常的函数“ere转折点”,因为我的程序在引导t-统计量的基础上创建t-统计量和置信区间。据我所知,它需要一个参数向量和一个方差协方差矩阵作为输入,然后计算标准误差t统计量和95%的CIs本身。这意味着我不能简单地将t统计值、p值和95%的CIs输入到“ere转折”函数中。即使我计算引导标准错误来填充VCV中的方差,t统计量和CIs也是错误的。
Stata中是否有另一个函数将表返回给用户,并可用于报告我的程序的结果?我是否可以更改"ereturn“的代码,并将其保存为另一个将接受我的统计数据输出的程序?还是我一直在用简单的文本显示输出结果呢?
发布于 2015-02-02 19:34:18
来补充尼克的回答。
应该已经很清楚,您可以编写给出类似结果的程序,无论是e class还是r-class。从他的代码:
*----- example programs -----
capture program drop whatever
program whatever, eclass
ereturn post
ereturn scalar answer = 42
end
capture program drop whatever2
program whatever2, rclass
return scalar answer = 42
end
*----- use programs -----
whatever
ereturn list
whatever2
return list
但请注意,这两种类型之间存在差异,它们应该得到澄清,至少读一下[U] 18.10 Saving results。相应地选择程序类型。
现在又到了另一点。你说
问题是,我想要创建一个漂亮的回归表为用户输出,类似于标准的Stata回归报告。但是,我不能使用通常的函数--“返回”,
没有理由认为程序类会阻碍这样的表:
*----- example programs -----
// first program
capture program drop whatever
program whatever, eclass
ereturn post
local ans = 42
ereturn scalar answer = `ans'
// table
di as smcl as txt ///
_col( 7) "Whatever {c |}" ///
_col(22) "Value"
di as smcl as txt " {hline 13}{c +}{hline 62}"
di as smcl as txt ///
_col( 8) " {c |}" ///
_col(23) `ans'
end
// second program
capture program drop whatever2
program whatever2, rclass
local ans = 42
return scalar answer = `ans'
// table
di as smcl as txt ///
_col( 6) "Whatever2 {c |}" ///
_col(22) "Value"
di as smcl as txt " {hline 13}{c +}{hline 62}"
di as smcl as txt ///
_col( 8) " {c |}" ///
_col(23) `ans'
end
*----- use programs -----
whatever
ereturn list
whatever2
return list
如果结果需要一个表,只需在程序定义中使用display
(或di
)。这些桌子上没有什么特别的,但他们应该明白这一点。
您可以检查StataCorp程序员和其他程序员/用户如何显示表,查看他们编写的.ado文件。见help viewsource
。
发布于 2015-02-02 18:06:19
你的假设可以很容易地通过编写一些代码来验证。这里有趣的例子
program whatever, eclass
ereturn scalar answer = 42
end
显示可以创建一个电子类程序,返回自己选择的电子类结果。返回方差协方差矩阵只不过是一种常见的惯例(尽管这在统计学上很有意义)。这并不是句法定义的一个重要部分。
. whatever
. eret li
scalars:
e(answer) = 42
注意,ereturn
不是Stata函数,而是一个命令。如果事情不是这样的话,斯塔塔函数也不能帮助你。在Stata中,函数和逗号是不相交的。当然,术语在其他地方往往是不同的。
发布于 2015-02-03 16:31:46
我最后使用的使回归表输出的方法是"estout“命令。"estout“允许您在已经格式化的漂亮表中显示矩阵,并提供一些相对简单的选项来更改其显示方式。我希望这对任何面临类似情况的人都有帮助。
estout matrix(final, fmt(%10.0g %10.0g %10.0g %12.4f %10.0g %10.0g)), ///
style(smcl) title("Model Results") mlabels("", none) modelwidth(10 10 10 6 10 10)
使用一个已经标记的矩阵,该矩阵已经包含系数、标准误差、t值、p值和95% CIs的向量,该命令生成的表看起来非常类似于标准的Stata回归表。
https://stackoverflow.com/questions/28289319
复制相似问题