尝试使用R中的GMM包来估计线性模型的参数(af):
LEV1 = a*Macro + b*Firm + c*Sector + d*qtr + e*fqtr + f*tax
Run Code Online (Sandbox Code Playgroud)
Macro,Firm和Sector是具有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)
Run Code Online (Sandbox Code Playgroud)
然后,我将数据绑定在一起,用于gmm调用的x变量:
h=cbind(Macro,Firm,Sector,v_qtr, v_fqtr, v_tax)
Run Code Online (Sandbox Code Playgroud)
然后,我调用gmm:
gmm1 <- gmm(v_LEV1 ~ Macro + Firm + Sector + v_qtr + v_fqtr + v_tax, x=h)
Run Code Online (Sandbox Code Playgroud)
我收到消息:
Error in solve.default(crossprod(hm, xm), crossprod(hm, …Run Code Online (Sandbox Code Playgroud) r ×1