Da ich die multivariate t-Verteilung untersucht habe, handelt es sich um eine Zusammenfassung.
(In dem Moment, als ich diesen Artikel schrieb, habe ich die Daten weggeblasen und neu geschrieben ... Ich möchte sterben ...)
Folgen Sie der Notation von Multivariate T-Distribution auf Wikipedia, da Gugu als erstes gefunden wird. Die Wahrscheinlichkeitsdichtefunktion für die multivariate t-Verteilung ist unten definiert.
Was ist in erster Linie die t-Verteilung? Man kann sagen, dass die t-Verteilung die Parameter berücksichtigt, die die Streuung der Normalverteilung erhöhen oder verringern, die Gammaverteilung annehmen und schließlich die Integration eliminieren. Hier können wir eine inverse Gammaverteilung und eine Chi-Quadrat-Verteilung anstelle einer Gammaverteilung annehmen, aber es scheint, dass alle Werte mit einer geringfügigen Änderung gleich sind. (Ich habe es nicht versucht)
Auf diese Weise können Sie das durchschnittliche Verhalten anzeigen, wenn Sie sich über den Wert der Varianz nicht sicher sind.
Betrachten Sie zwei stochastische Variablen $ V \ sim Gam (\ alpha, \ beta) $, $ X \ sim N (\ textbf {0}, {\ bf \ Sigma}) $. $ X $ ist eine Normalverteilung der Dimension $ d $.
Diese beiden stochastischen Variablen werden von den Funktionen $ f und g $ in $ Y und U $ umgewandelt.
Hier ist $ g $ eine gleiche Funktion von $ V $, $ \ mu \ in \ mathbb {R} ^ {d} $ ist ein d-dimensionaler Vektor, der den Durchschnitt darstellt, und $ V $ ist unabhängig von $ X $. Ich werde annehmen.
Dieses $ f (\ cdot) $ ist eine Geradenfunktion (Ebene), wenn $ V $ fest ist, und ist eine Eins-zu-Eins-Korrespondenzfunktion. Daher existiert die Umkehrfunktion $ f ^ {-1} (\ cdot)
Finden Sie die Verteilung von $ Y $ aus $ V und X $, deren Verteilung bereits bekannt ist. Da es zwei stochastische Variablen gibt, $ U $ und $ Y $, wird die Verteilung von $ Y $ durch Integrieren und Eliminieren von $ U $ unter Berücksichtigung der gleichzeitigen Verteilung von $ U und Y $ erhalten.
Pr(u,y) = Pr(U < u, Y < y) = Pr(g(V) < u,f(X) < y) \\
= Pr(V < g^{-1}(u), X < f^{-1}(y)) \\
= Pr(V < u, X<\sqrt{u}(y - \mu)) = Pr(V < u) Pr(X < \sqrt{u}(y - \mu)). \tag{5}
Hier wird angenommen, dass $ V $ und $ X $ unabhängig sind.
Sei $ p_ {V} und p_ {X} $ die Wahrscheinlichkeitsdichtefunktion von $ V $ bzw. $ X
Hier,
J = \begin{pmatrix} \frac{\partial x}{\partial y^{T}} & \frac{\partial x}{\partial u} \\ \frac{\partial v}{\partial y^{T}} & \frac{\partial v}{\partial u} \end{pmatrix} =
\begin{pmatrix} \sqrt{u}I_{d} & \frac{1}{2\sqrt{u}(y-\mu)} \\ \textbf{0} & 1 \end{pmatrix}. \tag{8}
Da die Jacobi-Matrix $ J $ eine obere Dreiecksmatrix ist, ist der Matrixausdruck das Produkt diagonaler Elemente.
p_{X}(\sqrt{u}(\textbf{y} - \mu)) = \frac{1}{(2\pi)^{\frac{d}{2}}} \frac{1}{\sqrt{\det(\Sigma)}} \exp{\Bigl( - \frac{1}{2} \sqrt{u}(\textbf{y} - \mu)^{T} \Sigma^{-1} \sqrt{u}(\textbf{y} - \mu) \Bigr)} \\
= \frac{1}{(2\pi)^{\frac{d}{2}}} u^{-\frac{d}{2}} u^{\frac{d}{2}} \frac{1}{\sqrt{\det(\Sigma)}} \exp{\Bigl( - \frac{1}{2} (\textbf{y} - \mu)^{T} (u \Sigma^{-1}) (\textbf{y} - \mu) \Bigr)} \\
= u^{-\frac{d}{2}} \frac{1}{(2\pi)^{\frac{d}{2}}} \frac{1}{\sqrt{\det(\frac{\Sigma}{u})}} \exp{\Bigl( - \frac{1}{2} (\textbf{y} - \mu)^{T} (u \Sigma^{-1}) (\textbf{y} - \mu) \Bigr)} = u^{-\frac{d}{2}} N(\mu, \frac{\Sigma}{u}). \tag{13}
Die Wahrscheinlichkeitsdichtefunktion $ p_ {U, Y} (u, y) $ von $ Pr (u, y) $ ist
Durch Integrieren von $ p_ {U, Y} (u, y) $ in Bezug auf $ u $ erhalten wir die Wahrscheinlichkeitsdichtefunktion $ p_ {Y} $ von $ Y
Zur Vereinfachung der Notation wird hier der Abstand der normalverteilten Maharanobis auf $ \ Delta ^ {2} = (\ textbf {y} - \ mu) ^ {T} \ Sigma ^ {-1} () gesetzt. Notiert als textbf {y} - \ mu) $.
Extrahieren Sie nur den Teil, der von $ u $ abhängt
Wenn hier $ z = u (\ beta + \ frac {\ Delta ^ {2}} {2}) $ ist, dann ist $ u = z (\ beta + \ frac {\ Delta ^ {2}} {2 }) ^ {-1} $ und $ du = (\ beta + \ frac {\ Delta ^ {2}} {2}) ^ {-1} dz $. Wenn $ u = 0 $, $ z = 0 $, $ u \ bis \ infty $ und $ z \ bis \ infty $.
Aus der Definition der Gammafunktion
Betrachtet man den $ u $ -unabhängigen Term von $ (17) $
p_{Y}(\textbf{y}) = \frac{\beta^{\alpha}}{\Gamma(\alpha)} \frac{1}{(2\pi)^{\frac{d}{2}}} \frac{1}{\sqrt{\det(\Sigma)}} \Bigl( \beta + \frac{\Delta^{2}}{2} \Bigr)^{-\frac{d}{2} -\alpha} \\
= \frac{\Gamma \Bigl( \frac{d}{2} + \alpha \Bigr)}{\Gamma(\alpha)}\frac{\beta^{\alpha}}{(2\pi)^{\frac{d}{2}}} \frac{1}{\sqrt{\det(\Sigma)}} \Bigl( \beta + \frac{\Delta^{2}}{2} \Bigr)^{-\frac{d}{2} -\alpha} \Bigl( \frac{1}{\beta} \Bigr)^{\frac{d}{2} + \alpha} \beta^{-\frac{d}{2}-\alpha} \\
= \frac{\Gamma \Bigl( \frac{d}{2} + \alpha \Bigr)}{\Gamma(\alpha)}\frac{1}{(2 \beta \pi)^{\frac{d}{2}}} \frac{1}{\sqrt{\det(\Sigma)}} \Bigl( 1 + \frac{\Delta^{2}}{2 \beta} \Bigr)^{-\frac{d}{2} -\alpha}. \tag{19}
Wenn hier $ \ alpha = \ beta = \ frac {\ nu} {2} $ und $ p = d $ gesetzt sind,
Da der Ausdruck $ (2) $ die Methode zum Generieren von Zufallszahlen ist, werden wir dies in Python implementieren.
# -*- coding: utf-8 -*-
#!/usr/bin/python
import numpy as np
import matplotlib.pyplot as plt
#Stellen Sie die Parameter ein.
N = 5000
d = 10
df = 4
mean = np.zeros(d)
cov = np.eye(d)
#Zufällige Erzeugung aus der Gammaverteilung
V = np.random.gamma(shape=df/2., scale=df/2.,size=N)
#Zufällige Generierung aus multivariater Normalverteilung
X = np.random.multivariate_normal(mean=mean, cov=cov, size=N)
#Konvertiere X.
V = V.reshape((N,1))
denom = np.sqrt(np.tile(V,d))
Y = mean + X / denom
#Generieren Sie zum Vergleich Zufallszahlen aus einer multivariaten Normalverteilung.
#(Frage:Ist es in Ordnung, wenn der Vergleich so aussieht? )
cov_ = ((df - 2) / float(df)) * np.corrcoef(Y.T)
X_ = np.random.multivariate_normal(mean=mean, cov=cov_, size=N)
#Handlung.
fig = plt.figure()
ax = fig.add_subplot(111)
ax.hist(X_[:,0], color="blue", normed=True, label="Normal dist", bins=30)
ax.hist(Y[:,0], color="red", normed=True, label="t dist", bins=30, alpha=0.5)
ax.set_title("Comparison of normal and t distribution")
ax.legend()
fig.show()
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(X_[:,0], X_[:,1],color="blue",label="Normal dist")
ax.scatter(Y[:,0], Y[:,1],color="red",label="t dist",alpha=0.5)
ax.set_title("scatter plot of t and normal dist")
ax.legend()
fig.show()
Die Dispersion ist groß und es sieht aus wie eine t-Verteilung? (Ich wollte jeweils nur eine Dimension vergleichen, aber ich habe es umgeschrieben und erschöpft, also geht es um ...)
Ich bin ein Atmosphärenmathematiker, also sag mir bitte, wenn du einen Fehler machst. Wenn ich Zeit habe, möchte ich die Verbindung verschiedener Distributionen verfolgen.
Recommended Posts