Fehler "Der führende Minderjährige der Ordnung 1 ist nicht positiv definitiv" unter Verwendung von 2l.norm bei Mäusen

11

Ich habe ein Problem mit der 2l.normMethode der mehrstufigen Imputation in mice.

Leider kann ich aufgrund der Größe meiner Daten kein reproduzierbares Beispiel veröffentlichen. Wenn ich die Größe reduziere, verschwindet das Problem.

miceErzeugt für eine bestimmte Variable die folgenden Fehler und Warnungen:

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

Wenn ich die verwenden 2l.pan, normoder pmmMethoden, tritt das Problem nicht auf.

Die Variable hat die folgende Verteilung: Geben Sie hier die Bildbeschreibung ein

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

Außerdem haben die Klassengrößen die folgende Verteilung:

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

Antworten:

10

Ich hatte ein ähnliches Problem bei MICE, siehe meine Selbstdiskussion hier . Das Problem tritt auf, weil Sie Ihr Modell überpasst haben (zu viele Parameter, Variablen), einige Variablen stark kolinear sind oder Fälle auftreten, in denen alle Variablen fehlen.

In meinem Fall war das Modell überpasst. Eine Möglichkeit, dieses Problem zu lösen, besteht darin, die Prädiktormatrix von MICE anzupassen. Sie können angeben, imp$predwo impsich Ihr midsObjekt befindet, um die Prädiktormatrix zu betrachten. Sie können verwenden

new.pred <- quickpred(data)

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

um automatisch eine Prädiktormatrix basierend auf den bivariaten Korrelationen der Variablen in den Daten (z. B. Pearson, Spearman) zu generieren, wobei .10 der Standardgrenzwert ist. Dies kann Ihr Problem lösen. Erstellen Sie Ihre Modelle im Allgemeinen mit Bedacht und schließen Sie nicht nur alle Variablen ein, die Sie möglicherweise haben.

Tomka
quelle