Ich versuche gerade, Werte einer dimensionalen Zufallsvariablen zu simulieren , die eine multivariate Normalverteilung mit dem mittleren Vektor und der Kovarianzmatrix .
Ich hoffe, eine Prozedur zu verwenden, die der inversen CDF-Methode ähnelt, was bedeutet, dass ich zuerst eine dimensionale einheitliche Zufallsvariable generieren und diese dann in die inverse CDF dieser Verteilung stecken möchte , um den Wert zu generieren .
Ich habe Probleme, weil das Verfahren nicht gut dokumentiert ist und es leichte Unterschiede zwischen der Funktion mvnrnd in MATLAB und einer Beschreibung gibt, die ich auf Wikipedia gefunden habe .
In meinem Fall wähle ich auch die Parameter der Verteilung nach dem Zufallsprinzip aus. Insbesondere ich jedes der aus einer Gleichverteilung . Ich erstelle dann die Kovarianzmatrix mit der folgenden Prozedur:
Erstellen Sie eine untere Dreiecksmatrix mit für und für
Sei wobei die Transponierte von .
Mit dieser Prozedur kann ich sicherstellen, dass symmetrisch und positiv bestimmt ist. Es gibt auch eine untere Dreiecksmatrix so dass , was meiner Meinung nach erforderlich ist, um Werte aus der Verteilung zu generieren.L S = L L T
Unter Verwendung der Wikipedia-Richtlinien sollte es mir möglich sein, Werte mit einer dimensionalen Uniform wie folgt zu generieren :N
Gemäß der MATLAB-Funktion geschieht dies jedoch normalerweise wie folgt:
Wobei die inverse CDF einer dimensionalen, trennbaren Normalverteilung ist und der einzige Unterschied zwischen beiden Methoden einfach darin besteht, ob oder L ^ T verwendet wird . N L L T
Ist MATLAB oder Wikipedia der richtige Weg? Oder sind beide falsch?