簡體   English   中英

使用`gmm`(GMM Estimation)時“系統是計算奇異的”錯誤

[英]“system is computationally singular” error when using `gmm` (GMM Estimation)

嘗試使用R中的GMM包來估計線性模型的參數(af):

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

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)

然后,我將數據綁定在一起,用於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的建模問題, 不是StackOverflow的編程問題。

我很確定我的變量之間沒有線性相關性,但我一次完成了添加一個變量的練習,以查看導致錯誤的原因。 最后,我讓一位同事在SAS上運行GMM,它運行完美,沒有錯誤信息。 我不確定R版本的問題是什么,但此時我有一個解決方案,並在R上給你GMM。

感謝所有試圖提供幫助的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM