/ / Imputation MICE in R ancora NA lasciato nel set di dati - r

Imputazione MICE in R ancora NA lasciata nel dataset - r

Dopo aver eseguito il pacchetto MICE, il numero di valori mancanti viene ridotto da 147428 a 46093 in ciascuno dei 5 set di imputazione completi. Ma non dovrebbe essere 0 NA invece ???

Grazie!

Ecco il mio codice MICE:

imp = mice(newdata)

imputationSet1 = complete(imp)
imputationSet2 = complete(imp,2)
imputationSet3 = complete(imp,3)
imputationSet4 = complete(imp,4)
imputationSet5 = complete(imp,5)

risposte:

3 per risposta № 1

Ben, la funzione topi () rilevamulticollinearità e risolve il problema rimuovendo uno o più predittori per la matrice. Ogni rimozione è annotata nell'elemento loggedEvents dell'oggetto mids. Per esempio,

imp <- topi (cbind (nhanes, chl2 = 2 * nhanes $ chl), print = FALSE)

imp $ loggedEvents

ci informa che la variabile duplicata chl2 è stata rimossa prima dell'iterazione. L'algoritmo rileva anche la multicollinearità durante le iterazioni.

Un'altra misura per controllare l'algoritmo è ilparametro cresta. Il parametro ridge è specificato come argomento per mouse (). L'impostazione ridge = 0.001 o ridge = 0.01 rende l'algoritmo più robusto a spese del bias.

Nel nodo terminale, possiamo applicare un metodo semplice come mice.impute.sample () che non ha bisogno di predittori per se stesso.

Questa informazione è tratta dal libro Flexible Imputation of Missing Data di Stef van Buuren, p. 129


1 per risposta № 2

Prova a passare un altro parametro chiamato threshold, di default è 0.999. Se si imposta questo a qualcosa più vicino a 1 o anche più grande, il tuo problema dovrebbe scomparire.

Essere consapevoli però che questo problema si pone solo se la collinearità nei dati è alta.


0 per risposta № 3

Ciò che mi ha aiutato è convertire le variabili as-character in variabili as-factor e le NA sono scomparse dal set di dati imputato.


-1 per risposta № 4

Sì, non dovrebbero esserci valori mancanti.

Scommetto che ci sono alcune righe nel tuo set di datisono così gravemente mutilati dalla mancanza dei modelli di imputazione dei topi. È possibile che nel set di dati ci siano delle righe in cui ogni valore è mancante?

Un'altra cosa da provare per un capriccio: aumentare il numero di iterazioni a 15: imp = mice(newdata, maxit = 15). Questo cambia qualcosa?