Angenommen, die Wahrscheinlichkeitsvariablen $ x $ und $ y $ haben eine Beziehung von $ x = g (y) $. Nehmen Sie außerdem an, dass Sie die Wahrscheinlichkeitsdichtefunktion $ p_x (x) $ für $ x $ kennen. Betrachten Sie zu diesem Zeitpunkt die Form der Wahrscheinlichkeitsdichtefunktion $ p_y (y) $ für $ y $.
Eine einfache Konvertierung wäre $ p_x (g (y)) $, was eine Wahrscheinlichkeitsdichtefunktion für $ x $ ist, also $ p_y (y) \ neq p_x (g (y)) $.
Die Beziehung zwischen $ p_x (x) $ und $ p_y (y) $ gilt für jeden Bereich $ x_1 \ sim x_2 $.
\int_{x_1}^{x_2} p_x(x) \mathrm{d}x = \int_{g^{-1}(x_1)}^{g^{-1}(x_2)} p_y(y) \mathrm{d}y
Sollte sein. $ G ^ {-1} (x) $ ist jedoch die Umkehrfunktion von $ g (x) $.
Unter Verwendung der variablen Transformationsformel des Integrals
\begin{align}
\int_{x_1}^{x_2} p_x(x) \mathrm{d}x&=\int_{x_1}^{x_2} p_x(g(y)) \mathrm{d}x\\
&=\int_{g^{-1}(x_1)}^{g^{-1}(x_2)} p_x(g(y))\left|
\frac{\partial g(y)}{\partial y}\right| \mathrm{d}y
\end{align}
Deshalb,
p_y(y) = p_x(g(y))\left|
\frac{\partial g(y)}{\partial y}\right|
Es wird sein.
p_x(x) = \mathcal{N}(x\mid\mu,\sigma^2)\\
x = g(y) = \ln(y)-\ln(1-y)+5\\
y = g^{-1}(x) = \frac{1}{1+\exp(-x+5)}
Betrachten Sie den Fall von.
\frac{\partial g(y)}{\partial y} = \frac{1}{y(1-y)}
Als,
p_y(y) = \mathcal{N}(g(y)\mid\mu,\sigma^2)\frac{1}{y(1-y)}
Überprüfen Sie, ob dies mit dem Histogramm der Daten übereinstimmt, die durch Konvertieren der Stichprobe von $ p_x (x) $ mit $ y = g ^ {-1} (x) $ erhalten wurden.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
#Gaußsche Verteilungsdichtefunktion
def gaussianDist(sig,mu,x):
y=np.exp(-(x-mu)**2/(2*sig**2))/(np.sqrt(2*np.pi)*sig)
return y
#Probabilistische Variablenumwandlungsfunktion
def g(y):
x=np.log(y)-np.log(1-y)+5
return x
#Inverse Funktion der Umrechnungsfunktion der stochastischen Variablen
def invg(x):
y=1/(1+np.exp(-x+5))
return y
#Gaußsche Verteilung px(x)Durchschnitt, Streuung
sig=1.0
mu=6
#Anzahl der Histogrammproben
N = 50000
plt.xlim([0,10])
plt.ylim([0,1])
####
x = np.linspace(0,10,100)
#Zeichnen Sie die Konvertierungsfunktion stochastischer Variablen
y=invg(x)
plt.plot(x,y,'b')
#px(x)Handlung
y = gaussianDist(sig,mu,x)
plt.plot(x,y,'r')
#px(x)Zeichnen Sie das Histogramm basierend auf der Probe von
x_sample = mu + sig * np.random.randn(N)
plt.hist(x_sample,bins=20,normed=True,color='lavender')
####
y=np.linspace(0.01,0.99,100)
##py(y)Handlung
x=gaussianDist(sig,mu,g(y))/(y*(1-y))
plt.plot(x,y,'m')
#px(x)Probe aus g^-1(x)Zeichnen Sie das Histogramm der in konvertierten Daten
y_sample = invg(mu + sig * np.random.randn(N))
plt.hist(y_sample,bins=20,normed=True,orientation="horizontal",color='lavender')
#px(g(y))Zeichnen Sie die konvertierte Funktion einfach wie
x = gaussianDist(sig,mu,g(y))
plt.plot(x/(x.sum()*0.01) ,y,'lime')
####
#Durchschnittliches mu und g^-1(mu)Zeichnen Sie die Beziehung mit
plt.plot([mu, mu], [0, invg(mu)], 'k--')
plt.plot([0, mu], [invg(mu), invg(mu)], 'k--')