简而言之:我正在尝试通过使用R中的“ pgmm”包进行GMM估算。 这样做的原因是要研究腐败对公共债务的影响。当我尝试对整个事物进行回归时,我得到“系统在计算上是奇异的” 作为错误。
变量:
债务<-部门变量(公共债务占GDP的百分比)
cpi <-ind。我要调查的变量(腐败感知指数)
edu <-工业控制变量(中学入学率)
pol <-工业控制变量(政治稳定指数)
exp <-ind。控制变量(政府支出)
gdp <-ind。控制变量(gdp / cap)
除cpi和pol之外的所有变量都在日志中。
数据包含某个时期内约120个国家/地区的那些指标 在1998年至2016年之间。删除了带有“ NA”的观测值,留下了1232个Obsvations用于回归。
我使用已经存在的纸张作为此模型的方向。作为我的第一个动态面板模型,我对最终回归感到困惑。
本文引用: “差异方程用因变量的滞后水平,两个周期和水平方程滞后一个周期来检测。”
因此,我使用了以下代码(实际上我不是100%知道这是否是作者引述的意思):
gmm <- pgmm(debt ~ lag(debt, 1:2) + cpi +lag(exp,0:1) + lag(pol,0:1) +
lag(gdp,0:1) +lag(edu, 0:1) | lag(debt,2:99),
data = data3, effect = "twoways", model="twosteps")
收到以下错误:
Error in solve.default(crossprod(WX, t(crossprod(WX, A1)))) :
system is computationally singular: reciprocal condition number = 9.6207e-21
In addition: Warning message:
In pgmm(debt ~ lag(debt, 1:2) + cpi + lag(exp, 0:1) + lag(pol, 0:1) + :
the first-step matrix is singular, a general inverse is used
我使用搜索功能解决了这个问题,变量之间的高度相关性似乎常常成为障碍。下表列出了变量之间的相关性。
debt cpi edu gdp exp pol
debt 1.00000000 -0.1000317 0.06941532 0.01582022 0.15649933 0.03183785
cpi -0.10003172 1.0000000 -0.54167403 0.03139960 -0.51025570 -0.78065946
edu 0.06941532 -0.5416740 1.00000000 0.04745409 0.38184303 0.49614498
gdp 0.01582022 0.0313996 0.04745409 1.00000000 0.02357436 -0.09799053
exp 0.15649933 -0.5102557 0.38184303 0.02357436 1.00000000 0.52357420
pol 0.03183785 -0.7806595 0.49614498 -0.09799053 0.52357420 1.00000000
确实有一些较高的值,所以我再次测试了回归分析,但未删除特定变量,但警告仍然出现。
对于这种情况,数据本身就是有问题的,您可以看到csv.file的一些示例行:
"","country","year","debt","cpi","edu","gdp","exp","pol"
"3","Albania","2002",4.16044436392662,7.5,4.29374171980631,7.60190195987517,2.41323161308111,3.21
"4","Albania","2003",4.09767235231478,7.5,4.32585302986794,7.60240133566582,2.38784493694487,3.19
"5","Albania","2004",4.0517849478033,7.5,4.31988523813603,7.60290046220476,2.39607543608138,3.07
"6","Albania","2005",4.06388535473739,7.6,4.36054760299676,7.60339933974067,2.38508631450579,2.99
....
"1388","Yemen","2010",3.74714836223791,7.8,3.7716108517114,7.60589000105312,2.47232786758114,1.08
"1389","Yemen","2011",3.82209829790016,7.92,3.81793208202855,7.60638738977265,2.54944517092557,1.07
"1390","Yemen","2012",3.85651029549789,7.7,3.83449380291891,7.60688453121963,2.67138621673062,1.07
"1391","Yemen","2013",3.87535902105655,8.2,3.88424062441569,7.60738142563979,2.57184857992181,1.13
"1393","Zimbabwe","2012",3.81330703248899,8,3.83773040084629,7.60688453121963,3.17971910966701,2.72
"1394","Zimbabwe","2013",3.87743156065853,7.9,3.85248529271195,7.60738142563979,3.12588295801904,2.83
很抱歉,如果我可能看不到一些严重的错误,但是现在我在这个问题上苦苦挣扎了几天。 GMM对我来说是一个全新的领域,我非常感谢您的帮助:)
沮丧的学生的问候
答案 0 :(得分:0)
我也多次遇到此问题。尽管我不完全了解GMM及其在plm中的工作原理,但是您可以尝试修改模型的某些方面。可能是一些实质性的事情(您使用的变量,某些相互作用可能产生共线性,然后导致计算失败),但有时对系数的计算方式进行细微改动也很有帮助。
例如,您可以通过在pgmm内将另一个值设置为fsm参数来更改矩阵。但是,您可能应该阅读更多有关您的操作如何影响结果的信息。
答案 1 :(得分:0)
您正在使用两种估算器: