Quelqu'un at-il des détails sur le fonctionnement de l'imputation? Je veux dire par là les équations derrière cela?
J'ai essayé un ensemble de données très simple:
X
|
Oui
|
| 1 |
1 |
2
|
2 |
3
|
. |
| 4 |
4 |
| 5 |
5 |
J'ai fait une distribution normale multivariée avec rétrécissement, et cela a bien rempli la valeur manquante de Y = 3.
Ensuite, j'ai fait la même chose, avec:
X
|
Oui
|
| 1 |
1 |
2
|
2 |
3
|
3 |
| 4 |
. |
| 5 |
5 |
et le résultat était Y = 3,584.
J'aimerais connaître les détails du fonctionnement de l'algorithme d'imputation normale multivariée, mais je ne trouve nulle part d'explication simple. Des indices?
La routine de Imputation normale multivariée () a été créé soit par @ chris_gotwalt1 ou @clay_barker . J'appelle cette routine en multivarié lorsque l'imputation de données est nécessaire.
Je suppose que vous vous attendez à ce que la valeur imputée soit identique à la valeur à côté. Cette attente est irréaliste.
Pensez au Ordinaire au nom de cette fonction et imaginez un CDF normal centré en 3 dans votre cas, avec 1 et 5 aux extrêmes. Seul le 3 serait la valeur exacte. Les autres sont aux limites. Ceci est extrêmement simpliste et destiné à vous donner une idée et non comment cela fonctionne réellement.
Je ne suis pas en mesure de donner une explication détaillée sur le fonctionnement de Multivariate Normal Impute (), mais les valeurs imputées sont affectés par la moyenne, la covariance et sont bornés par min et max.
J'ai créé le jsl suivant pour vous aider à montrer comment cela fonctionne.
///////////////////////////////////////// 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,
<
Je vous remercie @jianfeng_ding ! C'est très utile. Je peux "voir" comment cela fonctionne maintenant.
Jerry