Erro "o menor menor da ordem 1 não é positivo definitivo" usando 2l.norm em ratos

11

Estou tendo um problema ao usar o 2l.normmétodo de imputação em vários níveis no Windows mice.

Infelizmente, não posso postar um exemplo reproduzível por causa do tamanho dos meus dados - quando reduzo o tamanho, o problema desaparece.

Para uma variável específica, miceproduz os seguintes erros e avisos:

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

Se eu usar os 2l.pan, normou pmmmétodos, o problema não ocorre.

A variável tem a seguinte distribuição: insira a descrição da imagem aqui

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

Além disso, os tamanhos das turmas têm a seguinte distribuição:

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

Respostas:

10

Eu tive um problema semelhante no MICE, veja minha auto-discussão aqui . O problema ocorre porque você ajustou demais o seu modelo (muitos parâmetros, variáveis), algumas variáveis ​​são altamente colineares ou há casos em que faltam todas as variáveis.

No meu caso, o modelo foi super ajustado. Uma maneira de resolver esse problema é ajustando a matriz preditora do MICE. Você pode dar imp$predonde impestá o seu midsobjeto, olhar para a matriz preditora. Você pode usar

new.pred <- quickpred(data)

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

gerar automaticamente uma matriz preditora com base nas correlações bivariadas das variáveis ​​nos dados (por exemplo, Pearson, Spearman), em que .10 é o ponto de corte padrão. Isso pode resolver seu problema. De maneira mais geral, construa seus modelos com sabedoria e não inclua apenas todas as variáveis ​​que você possa ter.

tomka
fonte