簡體   English   中英

是否存在系統計算奇異的解決方案:R 中的倒數條件數 = ...?

[英]Is there an solution for system is computationally singular: reciprocal condition number=… in R?

使用 R 代碼並得到矩陣錯誤

library(eRm)
data <- na.omit(Main_data[,51:72])
model <- RSM(data)

有錯誤

solve.default(parest$hessian) 中的錯誤:系統在計算上是奇異的:倒數條件數 = 5.82277e-23

我已經刪除了所有缺失的值。 我嘗試使用帶有 MPRM() 代碼的 pcIRT package 得到一些表格格式錯誤。 我還嘗試將數據轉換為矩陣並得到相同的錯誤。

顯然,您正在使用 Rasch-Andrich 評定量表 Model進行 Rasch 分析。 您可以嘗試包mirtTAM而不是 eRm。 我在使用 eRm 時遇到了類似的問題,但其他兩個包都有效。

例如,像這樣使用 mirt:

model <- "scale = 1 - 10" #define the model
fit <- mirt(data = data, model = model, itemtype = "rsm")
coef(fit, simplify = T)

或譚:

fit <- tam.mml(ati_clean_mh, irtmodel="RSM")
summary(fit)

RSM 方法是 R 基礎 package 中lm的包裝。 lm方法的隱含要求之一是應用它的矩陣必須是可逆的。 這轉化為高度相關的數據(相關值遠大於 0 並接近 1)可能導致矩陣中的坑洞,使其在本地不可逆....然后您會收到此錯誤。

當您將數據(數據幀、矩陣、列表列表)傳遞給方法時,無論您如何構造數據(數據框、矩陣、列表列表),它都會引發錯誤,因為數據中的值會破壞矩陣的穩定性,並且在當前 state 中無法使用該方法.

最好的解決方案是使用相關矩陣來確定是否可以削減一些高度相關的變量以使矩陣可逆。

即使您能夠讓 model 按原樣運行,您最終也會在結果中遇到穩定性問題,這會危及 model 的安全實用性。

暫無
暫無

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

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