Kursinhalt
Fortgeschrittene Wahrscheinlichkeitstheorie
Fortgeschrittene Wahrscheinlichkeitstheorie
Zufällige Vektoren
Zufallsvektoren repräsentieren mehrere zusammenhängende Zufallsvariablen, die zusammengefasst werden. Sie werden häufig in der Datenwissenschaft verwendet, um Systeme mit miteinander verbundenen Zufallsgrößen zu modellieren, wie z.B. Datensätze, bei denen jeder Vektor einem Datenpunkt entspricht.
Die Wahrscheinlichkeitsverteilung eines Zufallsvektors wird durch seine gemeinsame Verteilungsfunktion beschrieben, die zeigt, wie alle Variablen im Vektor gleichzeitig verteilt sind.
Um einen einfachen Zufallsvektor mit n
Dimensionen zu erstellen:
- Erzeugen Sie
n
unabhängige Zufallsvariablen, die jeweils ihrer Verteilungsfunktion folgen; - Verwenden Sie diese Variablen als Koordinaten für den Vektor;
- Wenden Sie die Multiplikationsregel an, um die gemeinsame Verteilung zu bestimmen:
f = f1 * f2 * ... * fn
.
Diskrete Zufallsvektoren
Für diskrete Werte wird die gemeinsame Verteilung weiterhin mit der PMF beschrieben, wobei die Funktion eine Kombination von Koordinatenwerten nimmt und deren Wahrscheinlichkeit zurückgibt.
Zum Beispiel, betrachten Sie das Werfen von zwei Münzen und das Aufzeichnen der Ergebnisse in einem Vektor. Die PMF für diesen Vektor sieht folgendermaßen aus:
import numpy as np import matplotlib.pyplot as plt from scipy.stats import binom # Define parameters for the binomial distribution n = 1 # Number of trials p = 0.5 # Probability of success # Generate values for the two dimensions x = np.arange(0, n + 1) y = np.arange(0, n + 1) X, Y = np.meshgrid(x, y) # Compute the PMF for each pair of values in the grid pmf = binom.pmf(X, n, p) * binom.pmf(Y, n, p) print(pmf)
Stetige Zufallsvektoren
Für stetige Variablen wird die multivariate Dichtefunktion (PDF) verwendet:
import numpy as np import matplotlib.pyplot as plt # Define mean and covariance matrix for the Gaussian distribution mu = np.array([0, 0]) # Mean vector cov = np.array([[1, 0], [0, 1]]) # Covariance matrix # Generate values for the two dimensions x = np.linspace(-3, 3, 100) y = np.linspace(-3, 3, 100) X, Y = np.meshgrid(x, y) pos = np.dstack((X, Y)) # Compute the PDF for each pair of values in the grid pdf = (1 / (2 * np.pi * np.sqrt(np.linalg.det(cov)))) * np.exp(-0.5 * np.sum(np.dot(pos - mu, np.linalg.inv(cov)) * (pos - mu), axis=2)) # Plot the 2D PDF fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.plot_surface(X, Y, pdf, cmap='viridis') ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('PDF') ax.set_title('Two-dimensional Gaussian PDF') plt.show()
Hinweis
Die Eigenschaften von Zufallsvektoren werden auch in Vektorform angegeben: Dieser Vektor besteht aus Koordinaten, die den Statistiken der Koordinaten des ursprünglichen Vektors entsprechen. Im obigen Beispiel entspricht der
mu
-Vektor den Mittelwerten der Koordinaten,cov
entspricht der Kovarianzmatrix eines zweidimensionalen Zufallsvektors.
Vektoren mit abhängigen Koordinaten
Es gibt aber auch Vektoren mit voneinander abhängigen Koordinaten. Dann können wir die gemeinsame Verteilung nicht mehr als Produkt der Verteilungen der Koordinaten definieren. In diesem Fall wird die gemeinsame Verteilung basierend auf dem Wissen über den Definitionsbereich oder einige zusätzliche Informationen über die Abhängigkeiten zwischen den Koordinaten angegeben.
Betrachten wir das Beispiel von zweidimensionalen Gaußschen Stichproben mit abhängigen Koordinaten. Die Art der Abhängigkeiten wird durch die Kovarianzmatrix bestimmt (die Nebendiagonalelemente sind für die Abhängigkeiten zwischen den entsprechenden Koordinaten verantwortlich):
import numpy as np import matplotlib.pyplot as plt from scipy.stats import multivariate_normal # Define mean vector and covariance matrix for the Gaussian distribution mu = np.array([1, 3]) # Mean vector cov = np.array([[4, -4], [-4, 5]]) # Covariance matrix # Generate samples from the Gaussian distribution samples = multivariate_normal.rvs(mean=mu, cov=cov, size=1000) # Plot the sampled data plt.scatter(samples[:, 0], y = samples[:, 1]) plt.xlabel('X') plt.ylabel('Y') plt.title('Samples from a Two-dimensional Gaussian Distribution with dependant coordinates') plt.show()
Wir können sehen, dass diese Koordinaten eine starke lineare Abhängigkeit aufweisen: Wenn die X-Koordinate zunimmt, nimmt die Y-Koordinate ab.
Danke für Ihr Feedback!