0

这是关于用于计算浓度指数的用户命令Concindexi。回答以下问题不需要定义和详细信息。StataConcindexi

为了解释这个问题,我使用了Stata库中的汽车数据(同样,该函数不适用于此类数据,而是用于家庭数据)。

以下是语法:

concindexi [varlist] [if] [in] [weight] [ , welfarevar(varname) format(format)
    curve convenient clean }

rankweightaswelfare variable

sysuse auto
egen weightrank=rank( weight)
sort weightrank 

的浓度指数price

concindexi  price,  welfarevar(weightrank)

输出(目前没问题)

Concentration index estimation using the covariance/formula method

Final matrice of Concentration Indices on Individual (Micro) Data.

             CIF      CISEF
price  .14318137  .02934612


CIF :   Concentration index using formula/covariance method
CIC :   Concentration index using convenient regression method
CISEF : Standard errors of the concentration index using formula/covariance method
CISEC : Standard errors of the concentration index convenient regression method

这是问题所在:如果我用相同的变量重复相同的命令price(不重新启动Stata),它现在将按矩阵给出 2*2(结果被累积)。

concindexi  price,  welfarevar(weightrank)

输出:

Concentration index estimation using the covariance/formula method



Final matrice of Concentration Indices on Individual (Micro) Data.


             CIF      CISEF
price  .14318137  .02934612
price  .14318137  .02934612


CIF :   Concentration index using formula/covariance method
CIC :   Concentration index using convenient regression method
CISEF : Standard errors of the concentration index using formula/covariance method
CISEC : Standard errors of the concentration index convenient regression method

如果我再次重复相同的命令,我有 3 x 2 矩阵。

concindexi  price,  welfarevar(weightrank)

Concentration index estimation using the covariance/formula method



Final matrice of Concentration Indices on Individual (Micro) Data.


             CIF      CISEF
price  .14318137  .02934612
price  .14318137  .02934612
price  .14318137  .02934612


CIF :   Concentration index using formula/covariance method
CIC :   Concentration index using convenient regression method
CISEF : Standard errors of the concentration index using formula/covariance method
CISEC : Standard errors of the concentration index convenient regression method

Stata通常,我们期望 1*2 矩阵,而不管命令在[以命令为例]的同一会话中执行了多少次regress。但是,如果我们Stata每次都重新启动,问题就会消失。

对于这里提到的例子,这个问题并不严重。但是,如果变量的数量很大(它可以容纳较大的变量)和/或如果我必须引导,问题就会变得非常严重。例如,在我的具有 13 个变量和 20000 个观察值的数据中,复制 [in bootstrapping] 只能进行 29 次,但对于 2 个变量,相应的数字是 100。任何解决问题的想法都将受到高度赞赏。

4

1 回答 1

2

concindexi是 SSC 提供的用户编写的命令(不是函数)。

在 Stata 中,命令和功能是截然不同的。

在 Stata 讨论中,指出命令的来源是很有帮助的;这当然是对 Statalist 的强烈建议(请参阅http://www.stata.com/support/faqs/resources/statalist-faq/),对于其他论坛来说,这似乎是一个公平的要求。

解决方案已记录在案。有一个选项cleanconcindexi它会删除程序先前创建的矩阵和标量。据推测,作者将结果的积累作为他(可能还有他的用户)想要的功能。作为Stata编程风格的问题,这是不寻常的行为。我们可以讨论它在多大程度上是好的风格,但作为一种覆盖它的方法,这取决于个人品味。显然你对这种行为感到惊讶,我也会感到惊讶,因为它只是通过这个clean选项间接记录的。

concindexi所以严格来说,“回答问题不需要定义和细节”是完全不正确的。答案取决于查看代码内部并阅读其文档,并且该行为不会引发一般的 Stata 问题。

于 2013-04-29T15:28:44.317 回答