Die Funktion mvnpdf() in MATLAB
In diesem Tutorial wird die Auswertung der Wahrscheinlichkeitsdichtefunktion einer multivariaten Normalverteilung mit der Funktion mvnpdf()
in MATLAB behandelt.
Verwendung von die Funktion mvnpdf()
in MATLAB
Die multivariate Normalverteilung der verallgemeinerten Version der univariaten Normalverteilung auf zwei oder mehr Variablen. Die multivariate Normalverteilung hat zwei Parameter, die der univariaten Normalverteilung ähnlich sind, einschließlich der Kovarianzmatrix und des Mittelwertvektors.
Die nicht diagonalen Elemente der Kovarianzmatrix enthalten die Kovarianzen zwischen Variablen, und die diagonalen Elemente der Kovarianzmatrix enthalten die Varianzen für jede Variable. In MATLAB verwenden wir die Funktion mvnpdf()
, um die Wahrscheinlichkeitsdichtefunktion der multivariaten Normalverteilung zu finden.
Die Funktion mvnpdf()
hat die drei unten angegebenen Syntaxen.
Syntax:
output = mvnpdf(input)
output = mvnpdf(input, mu)
output = mvnpdf(input, mu, sigma)
Die output = mvnpdf(input)
gibt die Wahrscheinlichkeitsdichtefunktion als n-mal-1
-Vektor der Eingabematrix zurück, die die multivariate Normalverteilung der Dimension m enthält. Die Funktion wertet die Ausgabe in jeder Zeile der Eingabematrix entlang der Dimension n-mal-m aus.
Die output = mvnpdf(input, mu)
gibt die Wahrscheinlichkeitsdichtefunktion entsprechend der mu
-Variablen zurück, die den Mittelwert der multivariaten Normalverteilung definiert. Die dritte Syntax wird auch die Variable sigma
enthalten, die die Kovarianz der multivariaten Normalverteilung definiert.
Wenn wir in output = mvnpdf(input, mu, sigma)
nur den Wert für sigma
angeben und den Standardwert von mu
verwenden wollen, können wir einen leeren Vektor als Wert für übergeben Die Variable mu
als zweites Argument und den Wert von sigma
als drittes Argument. Wir können die Funktion mvnrnd()
verwenden, um eine multivariate Normalverteilungsmatrix mit Zufallszahlen zu erstellen.
Um die zufällige multivariate Normalverteilung zu erstellen, müssen wir den Wert der Variablen mu
und sigma
innerhalb der Funktion mvnrnd()
übergeben. Wir können auch die Anzahl der Zeilen der Ausgabematrix festlegen, indem wir die Zahl als drittes Argument innerhalb der Funktion mvnrnd()
definieren.
Lassen Sie uns zum Beispiel eine Zufallsmatrix der multivariaten Normalverteilung mit der Funktion mrnrnd()
erstellen und dann ihre Wahrscheinlichkeitsdichtefunktion mit der Funktion mvnpdf()
ermitteln.
Beispielcode:
mu_v = zeros(1,4);
Sigma_m = eye(4);
rng('default')
random_mvn = mvnrnd(mu_v,Sigma_m,6)
out_pdf = mvnpdf(random_mvn)
Ausgabe:
random_mvn =
0.5377 -0.4336 0.7254 1.4090
1.8339 0.3426 -0.0631 1.4172
-2.2588 3.5784 0.7147 0.6715
0.8622 2.7694 -0.2050 -1.2075
0.3188 -1.3499 -0.1241 0.7172
-1.3077 3.0349 1.4897 1.6302
out_pdf =
0.0057
0.0016
0.0000
0.0002
0.0074
0.0000
Wir haben die Funktion zeros()
verwendet, um den Vektor für die Variable mu
zu erstellen, und die Funktion eye()
, um die Matrix für die Variable sigma
zu erstellen, und die Funktion rng()
, um den Zufall zu steuern Zahlengenerator, und wir haben ihn aus Gründen der Reproduzierbarkeit auf Standard gesetzt. Die obige Ausgabe zeigt die Zufallsmatrix der multivariaten Normalverteilung und den Vektor, der die Werte der Wahrscheinlichkeitsdichtefunktion enthält.
Angenommen, wir wollen die Wahrscheinlichkeitsdichtefunktion an bestimmten Punkten nach einem anderen Mittelwert finden. Wir können die Mittelwerte in der Variable mu
als zweites Argument innerhalb der Funktion mvnpdf()
definieren.
Die Größe der mu
-Matrix sollte gleich der Eingabematrixgröße der multivariaten Normalverteilung sein.
Angenommen, wir möchten die Wahrscheinlichkeitsdichtefunktion gemäß einem anderen Kovarianzwert an bestimmten Punkten finden. Wir können die Kovarianzwerte in der Variable sigma
als drittes Argument innerhalb der Funktion mvnpdf()
definieren.
Die Spaltenanzahl der sigma
-Matrix sollte gleich der Spaltenanzahl der multivariaten Normalverteilungs-Eingabematrix sein. Wenn wir die Wahrscheinlichkeitsdichtefunktion an denselben Punkten finden möchten, können wir denselben Punkt innerhalb der Variablen mu
wiederholen, und standardmäßig ist die Variable mu
ein Vektor aus Nullen und die Variable sigma
ist a Matrix von Einsen.
Überprüfen Sie diesen Link für weitere Details über die Funktion mvnpdf()
oder diesen Link für die Funktion mvnrnd()
.