簡體   English   中英

“裝配工出錯……”嘗試使用 rms 庫中的 lrm function

[英]“Error in fitter…” While trying to use lrm function from rms library

我正在嘗試通過 rms 庫中的 lrm function 運行一個小型數據表,但每次運行它我都會得到:

Error in fitter(X, Y, offset = offs, penalty.matrix = penalty.matrix,  : 
NA/NaN/Inf in foreign function call (arg 1)

這是一些可重現的代碼:

library(tidyverse)
library(rms)

data <- tribble(
~a, ~b, ~c,
"name", 2, 77.95535,
"name", 2, 81.36152,
"name", 2, 80.87081,
"name", 2, 80.59054,
"name", 2, 79.36807,
"name", 2, 82.42083,
"name", 2, 78.80646,
"name", 2, 78.88949
)

lmod <- lrm(b~c, data, penalty=0, x=T, y=T, tol=1e-10, maxit=1e6)

我嘗試了各種各樣的事情。 我嘗試將 b~c 切換到 c~b (我知道它不會產生相同的數據)並且我得到了一個錯誤,但不是同樣的錯誤。 我嘗試僅使用前兩個參數,以及包括或排除以下參數的各種參數。 我也嘗試過調試並將代碼跟蹤到 lrm function 中,然后我將其范圍縮小到(令人震驚的)裝配工 function。

以下是我一直在使用的一些資源,您可能會發現它們對自己有幫助或對我有所幫助。 如果有什么我忘了包括發表評論,我會填寫我能做的:) 謝謝!

R 參考手冊

lrm Function 說明

R 用於數據科學(書籍)

lrm Function 源代碼

使用您提供的數據,我得到了同樣的錯誤。 然后我將一些b更改為 1,錯誤消失了:

data <- tribble(
  ~a, ~b, ~c,
  "name", 2, 77.95535,
  "name", 2, 81.36152,
  "name", 1, 80.87081,
  "name", 1, 80.59054,
  "name", 2, 79.36807,
  "name", 1, 82.42083,
  "name", 1, 78.80646,
  "name", 2, 78.88949
)

lmod <- lrm(b~c, data = data, penalty=0, x=TRUE, y=TRUE, tol=1e-14, maxit=1e10)
lmod

Logistic Regression Model

 lrm(formula = b ~ c, data = data, x = TRUE, y = TRUE, penalty = 0, 
     tol = 1e-14, maxit = 1e+10)

                   Model Likelihood    Discrimination    Rank Discrim.    
                         Ratio Test           Indexes          Indexes    
 Obs         8    LR chi2      0.00    R2       0.000    C       0.500    
  1          4    d.f.            1    g        0.000    Dxy     0.000    
  2          4    Pr(> chi2) 1.0000    gr       1.000    gamma   0.000    
 max |deriv| 3                         gp       0.000    tau-a   0.000    
                                       Brier    0.250                     

           Coef   S.E.    Wald Z Pr(>|Z|)
 Intercept 0.0000 39.9600 0.00   1.0000  
 c         0.0000  0.4992 0.00   1.0000 

我知道這只是您數據的一個子集,但也許b中的所有行都有值 2? 您可以使用例如table(data$b)進行檢查

暫無
暫無

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

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