¿Alguien tiene detalles sobre cómo funciona la imputación? ¿Con esto me refiero a las ecuaciones detrás de esto?
Probé un conjunto de datos realmente simple:
Hice Distribución normal multivariante con contracción, y completó muy bien el valor faltante de Y = 3.
Luego hice lo mismo, con:
y el resultado fue Y = 3,584.
Me gustaría saber los detalles de cómo funciona el algoritmo de imputación normal multivariante, pero no puedo encontrar una explicación simple en ninguna parte. ¿Alguna pista?
La rutina de Imputación normal multivariante () fue creado por @ chris_gotwalt1 o @clay_barker . Llamo a esta rutina en Multivariante cuando se necesita la imputación de datos.
Supongo que espera que el valor imputado sea idéntico al valor al lado. Esta expectativa no es realista.
Pensar en Normal en el nombre de esta función y visualice un CDF normal centrado en 3 en su caso, con 1 y 5 en los extremos. Solo el 3 sería el valor exacto. Los demás están en los límites. Esto es extremadamente simplista y está destinado a darle una idea de cómo funciona realmente.
No estoy en condiciones de dar una explicación detallada de cómo funciona la imputación normal multivariante (), pero los valores imputados son afectados por la media, la covarianza y están delimitados con mínimo y máximo.
He creado el siguiente jsl para ayudar a demostrar cómo funciona.
///////////////////////////////////////// JSL explains how data is imputed by Multivariate Normal Impute ////////////////////////////////////////////////////
/***************************************************************************************
y = Multivariate Normal Impute( yVec, meanYvec, symCovMat, colMin, colMax )
Returns a response vector with imputed values for the missing values in the
[[yVec]] vector of responses. Imputations are based on a multivariate normal
distribution with mean vector [[meanYvec]] and symmetric covariance matrix [[symCovMat]].
Optional arguments [[colMin]] and [[colMax]] are the respective vectors of column minimums
and maximums. These arguments provide bounds for the imputations."
******************************************************************************************/
//Imputation example
matFull=[1 1,
2 2,
3 3,
4 4,
5 5
];
for (i=1, i<=N Row( matFull), i++,
mat=matFull;
mat[i,2]=.;
//calculate a variance
cov = Covariance(
mat,
<
Gracias @jianfeng_ding ! Esto es muy útil. Puedo "ver" cómo funciona ahora.
alemán