我在Stata中运行回归,我想使用cluster2
(http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/se_programming.htm)。
我遇到以下问题。 Stata报告factor variables and time-series operators not allowed
。我正在使用大量控件,广泛应用Stata为交互提供的方法。
例如:state##c.wind_speed##L.c.relative_humidity
。 cluster2
以及其他Stata包不允许将此类表达式包含为自变量。是否有一种富有成效的方法如何自己创建这么长的交互变量向量?
答案 0 :(得分:1)
我相信Baum-Shaffer-Stillman可以通过双向聚类和交互来欺骗ivreg2
:
. webuse nlswork
(National Longitudinal Survey. Young Women 14-26 years of age in 1968)
. ivreg2 ln_w grade c.age##c.ttl_exp tenure, cluster(idcode year)
OLS estimation
--------------
Estimates efficient for homoskedasticity only
Statistics robust to heteroskedasticity and clustering on idcode and year
Number of clusters (idcode) = 4697 Number of obs = 28099
Number of clusters (year) = 15 F( 5, 14) = 674.29
Prob > F = 0.0000
Total (centered) SS = 6414.823933 Centered R2 = 0.3206
Total (uncentered) SS = 85448.21266 Uncentered R2 = 0.9490
Residual SS = 4357.997339 Root MSE = .3938
---------------------------------------------------------------------------------
| Robust
ln_wage | Coef. Std. Err. z P>|z| [95% Conf. Interval]
----------------+----------------------------------------------------------------
grade | .0734785 .002644 27.79 0.000 .0682964 .0786606
age | -.0005405 .002259 -0.24 0.811 -.0049681 .0038871
ttl_exp | .0656393 .0068499 9.58 0.000 .0522138 .0790648
|
c.age#c.ttl_exp | -.0010539 .0002217 -4.75 0.000 -.0014885 -.0006194
|
tenure | .0197137 .0029555 6.67 0.000 .013921 .0255064
_cons | .5165052 .0529343 9.76 0.000 .4127559 .6202544
---------------------------------------------------------------------------------
Included instruments: grade age ttl_exp c.age#c.ttl_exp tenure
------------------------------------------------------------------------------
为了确保将其与OLS系数进行比较:
. reg ln_w grade c.age##c.ttl_exp tenure
Source | SS df MS Number of obs = 28,099
-------------+---------------------------------- F(5, 28093) = 2651.79
Model | 2056.82659 5 411.365319 Prob > F = 0.0000
Residual | 4357.99734 28,093 .155127517 R-squared = 0.3206
-------------+---------------------------------- Adj R-squared = 0.3205
Total | 6414.82393 28,098 .228301798 Root MSE = .39386
---------------------------------------------------------------------------------
ln_wage | Coef. Std. Err. t P>|t| [95% Conf. Interval]
----------------+----------------------------------------------------------------
grade | .0734785 .0010414 70.55 0.000 .0714373 .0755198
age | -.0005405 .000663 -0.82 0.415 -.0018401 .0007591
ttl_exp | .0656393 .0030809 21.31 0.000 .0596007 .0716779
|
c.age#c.ttl_exp | -.0010539 .0000856 -12.32 0.000 -.0012216 -.0008862
|
tenure | .0197137 .0008568 23.01 0.000 .0180344 .021393
_cons | .5165052 .0206744 24.98 0.000 .4759823 .557028
---------------------------------------------------------------------------------
答案 1 :(得分:0)
您没有包含可验证的示例。有关主要建议,请参阅https://stackoverflow.com/help/mcve。
然而,乍一看,问题是cluster2
是2006/2007年编写的旧程序,其syntax
语句不允许使用因子变量。
您可以尝试黑客程序的克隆来解决这个问题;我不知道这是否足够。
"其他Stata套餐&#34>无法发表具体评论。你暗示有同样的问题,除非它可能因同样的原因而出现。因子变量于2009年在Stata 11 (see here for documentation)中引入,较旧的程序不允许在没有修改的情况下允许它们。
一般来说,我会在Statalist上提出这样的问题。这个程序很可能已经被一些不同的程序所取代。
如果您在互联网上找到没有帮助文件的Stata程序,就像这里的情况一样,它通常表示该程序是 ad hoc 编写的,并且没有被维护。在这种情况下,显然该程序自Stata 11以来的6年内没有更新。
您也可以自己创建交互变量。我不认为有人写过一个非常通用的工具来实现自动化:在因子变量表示法的复杂替代中,没有任何意义(自2009年以来)。