Hat jemand Details darüber, wie die Imputation funktioniert? Damit meine ich die Gleichungen dahinter?
Ich habe einen wirklich einfachen Datensatz ausprobiert:
X.
|
Y.
|
| 1 |
1 |
2
|
2 |
3
|
. |
| 4 |
4 |
| 5 |
5 |
Ich habe eine multivariate Normalverteilung mit Schrumpfung durchgeführt und sie hat den fehlenden Wert von Y = 3 gut ausgefüllt.
Dann habe ich dasselbe gemacht mit:
X.
|
Y.
|
| 1 |
1 |
2
|
2 |
3
|
3 |
| 4 |
. |
| 5 |
5 |
und das Ergebnis war Y = 3,584.
Ich würde gerne Details darüber erfahren, wie der Algorithmus für die multivariate normale Imputation funktioniert, aber ich kann nirgendwo eine einfache Erklärung dafür finden. Irgendwelche Hinweise?
Die Routine von Multivariate normale Impute () wurde entweder von erstellt @ chris_gotwalt1 oder @clay_barker . Ich nenne diese Routine in Multivariate, wenn eine Datenimputation erforderlich ist.
Ich denke, Sie erwarten, dass der unterstellte Wert mit dem Wert daneben identisch ist. Diese Erwartung ist unrealistisch.
Denken Sie an die Normal Stellen Sie sich im Namen dieser Funktion eine normale CDF vor, die in Ihrem Fall bei 3 zentriert ist, wobei 1 und 5 an den Extremen liegen. Nur die 3 wäre der genaue Wert. Die anderen sind an den Grenzen. Dies ist äußerst simpel und soll Ihnen ein Gefühl dafür geben und nicht, wie es tatsächlich funktioniert.
Ich bin nicht in der Lage, eine detaillierte Erklärung zu geben, wie Multivariate Normal Impute () funktioniert, aber die unterstellten Werte sind beeinflusst durch Mittelwert, Kovarianz und sind mit min und max begrenzt.
Ich habe das folgende jsl erstellt, um zu demonstrieren, wie es funktioniert.
///////////////////////////////////////// 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,
<
Danke dir @jianfeng_ding ! Das ist sehr hilfreich. Ich kann "sehen", wie es jetzt funktioniert.
Jerry