尝试在R中使用GMM包来估算线性模型的参数(a-f):

LEV1 = a*Macro + b*Firm + c*Sector + d*qtr + e*fqtr + f*tax


宏,公司和部门是具有n行数的矩阵。 qtr,fqtr和tax是具有n个成员的向量。

我有一个称为unconstrd的大型数据框,其中包含所有数据。首先,我将这些数据分解为单独的矩阵:

v_LEV1 <- as.matrix(unconstrd$LEV1)
Macro <- as.matrix(cbind(unconstrd$Agg_Corp_Prof,unconstrd$R1000_TR, unconstrd$CP_Spread))
Firm <- as.matrix(cbind(unconstrd$ppe_ratio, unconstrd$op_inc_ratio_avg, unconstrd$selling_exp_avg,
                  unconstrd$tax_avg, unconstrd$Mark_to_Bk, unconstrd$mc_ratio))
Sector <- as.matrix(cbind(unconstrd$Sect_Flag03,
                  unconstrd$Sect_Flag04, unconstrd$Sect_Flag05, unconstrd$Sect_Flag06,
                  unconstrd$Sect_Flag07, unconstrd$Sect_Flag08, unconstrd$Sect_Flag12,
                  unconstrd$Sect_Flag13, unconstrd$Sect_Flag14, unconstrd$Sect_Flag15,
                  unconstrd$Sect_Flag17))
v_qtr <- as.matrix(unconstrd$qtr)
v_fqtr <- as.matrix(unconstrd$fqtr)
v_tax <- as.matrix(unconstrd$tax_dummy)


然后,我将数据绑定到gmm调用的x变量中:

h=cbind(Macro,Firm,Sector,v_qtr, v_fqtr, v_tax)


然后,我调用gmm:

gmm1 <- gmm(v_LEV1 ~ Macro + Firm + Sector + v_qtr + v_fqtr + v_tax, x=h)


我收到消息:

Error in solve.default(crossprod(hm, xm), crossprod(hm, ym)) :
  system is computationally singular: reciprocal condition number = 1.10214e-18


我事先表示歉意,并承认我是R的新手,而且之前从未使用过GMM。 GMM功能是如此笼统,我看了网上提供的示例,但是似乎没有什么具体细节可以帮助我解决问题。

最佳答案

您正在尝试拟合没有完整等级的矩阵-尝试排除某些变量和/或寻找错误。没有您的数据或至少一个样本,我们不能说更多。

与的编程问题相比,这更是Crossvalidated.com的建模问题。

关于r - 使用`gmm`(GMM估算)时出现“系统在计算上是奇异的”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14164514/

10-12 19:56