Error "el menor principal de orden 1 no es definitivo positivo" al usar 2l.norm en ratones

11

Tengo un problema al usar el 2l.normmétodo de imputación multinivel en mice.

Lamentablemente, no puedo publicar un ejemplo reproducible debido al tamaño de mis datos; cuando reduzco el tamaño, el problema desaparece.

Para una variable particular, miceproduce los siguientes errores y advertencias:

Error in chol.default(inv.sigma2[class] * X.SS[[class]] + inv.psi) : 
  the leading minor of order 1 is not positive definite
In addition: Warning messages:
1: In rgamma(n.class, n.g/2 + 1/(2 * theta), scale = 2 * theta/(ss *  :
  NAs produced
2: In rgamma(1, n.class/(2 * theta) + 1, scale = 2 * theta * H/n.class) :
  NAs produced
3: In rgamma(1, n.class/2 - 1, scale = 2/(n.class * (sigma2.0/H - log(sigma2.0) +  :
  NAs produced

Si utilizo el 2l.pan, normo los pmmmétodos, no se produce el problema.

La variable tiene la siguiente distribución: ingrese la descripción de la imagen aquí

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   50.0   117.0   136.0   136.7   155.0   249.0    3124 

Además, los tamaños de clase tienen la siguiente distribución:

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   3.00   50.00   80.00   88.52  111.00  350.00 
Robert Long
fuente

Respuestas:

10

He tenido un problema similar en MICE, mira mi discusión personal aquí . El problema ocurre porque ha sobreajustado su modelo (demasiados parámetros, variables), algunas variables son altamente colineales o tiene casos que faltan en todas las variables.

En mi caso, el modelo estaba sobreajustado. Una forma de resolver este problema es ajustando la matriz predictiva de MICE. Puede indicar imp$preddónde impestá su midsobjeto para observar la matriz de predicción. Puedes usar

new.pred <- quickpred(data)

mice(..., pred=new.pred)

para generar automáticamente una matriz de predicción basada en las correlaciones bivariadas de las variables en los datos (por ejemplo, Pearson, Spearman), donde .10 es el límite predeterminado. Esto puede resolver su problema. En general, construya sus modelos sabiamente y no solo incluya todas las variables que pueda tener.

tomka
fuente