Stata 带每个块的指示符变量的块引导

Stata 带每个块的指示符变量的块引导,stata,Stata,我想运行块引导,其中块是国家,并包括国家指标变量。我认为下面的方法会奏效 regress mvalue kstock i.country, vce(bootstrap, cluster(country)) 但是我得到了以下错误 . regress mvalue kstock i.country, vce(bootstrap, cluster(country)) (running regress on estimation sample) Bootstrap replications (50)

我想运行块引导,其中块是国家,并包括国家指标变量。我认为下面的方法会奏效

regress mvalue kstock i.country, vce(bootstrap, cluster(country))
但是我得到了以下错误

. regress mvalue kstock i.country, vce(bootstrap, cluster(country))
(running regress on estimation sample)

Bootstrap replications (50)
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxx    50
insufficient observations to compute bootstrap standard errors
no results will be saved
r(2000);
看来这应该行得通。如果块引导为每个块选择相同的国家,那么它似乎应该放弃拦截

我的错误编码还是概念性的?下面是一些使用
grunfeld
数据的代码

webuse grunfeld, clear
xtset, clear
generate country = int((company - 1) / 2) + 1
regress mvalue kstock i.country, vce(bootstrap, cluster(country))

这里的问题不在于编码,而在于概念。问题是您无法在每个引导样本中识别每个回归中的每个系数。并非所有“国家”都包含在数据集中,用于每次引导重复。您可以通过
vce(,噪音)
子选项诊断发生了什么:

. regress mvalue kstock i.bscountry, vce(bootstrap, cluster(country) noisily)
产生错误的原因是,当使用特定引导样本运行回归时,某些系数丢失。在每次回归中,您都可以看到,由于共线性,一些国家的假人被省略了。这应该是意料之中的,而且很有意义——如果没有绘制国家,那么国家假人在引导样本中的所有观察值都可以=0

如果你真的想估算国家模型的系数,你必须找到另一种方法,而不是用K个集群自举,如果K是国家的数量。如果您不关心系数假人,则可以使用另一个命令,该命令仅吸收固定效应,并仅报告其他自变量的系数(例如,
areg
xtreg
)。思考正在发生的事情的一种方式是,它类似于:

.bootstrap, cluster(country) idcluster(bscountry) noisily: regress mvalue kstock i.bscountry
使用
idcluster()
选项,在引导样本中绘制的每个国家都会获得自己的ID号。如果一个国家画了两次,那么就有两个傻瓜。(两个假人的系数自然是相同或接近相同的。)但是,此输出中的系数完全没有意义,因为
b国家
“2”在不同的引导迭代中将是不同的国家。由于您将忽略假人上的任何输出,因此您也可以使用类似于
areg
xtreg
的模型,因为它们运行得更快


尽管在许多应用程序中,使用集群进行引导可以很好地工作,但这里的问题是在回归中包含集群假人。这一切都回避了这样一个问题:这种做法是否有任何意义。如果你试图估算乡村假人的系数,那么肯定不是。否则,上述解决方案可能没问题,但如果不知道您的研究问题,很难说。

谢谢!出于某种原因,我认为指示器中的所有零都可以。我想斯塔塔不知道我不在乎指标,除非我告诉它。:)感谢您提供使用
areg
的提示,以及提醒您在这种情况下
也会发出噪音。