概率論08 隨機變數的函式

Vamei發表於2013-08-01

作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段宣告。謝謝!

 

隨機變數的函式

在前面的文章中,我先將概率值分配給各個事件,得到事件的概率分佈

通過事件與隨機變數的對映,讓事件“數值化”,事件的概率值轉移到隨機變數上,獲得隨機變數的概率分佈

我們使用隨機變數的函式,來定製新的隨機變數。隨機變數的函式是從舊有的隨機變數到一個新隨機變數的對映。通過函式的對映功能,原有隨機變數對應新的隨機變數。通過原有隨機變數的概率分佈,我們可以獲知新隨機變數的概率分佈。事件,隨機變數,隨機變數函式的關係如下:

 

 

一個簡單的例子是擲硬幣。出現正面的話,我贏1個籌碼,負面的話,我輸1個籌碼。那麼,投擲一次,贏的籌碼數是一個隨機變數X,X可能取值為1和-1。因此X的分佈為:

$$P(1) = 0.5$$

$$P(-1) = 0.5$$

換一個角度來思考,我們將正負面“換算”成輸贏的錢。如果一個籌碼需要10元錢買,那麼投擲一次硬幣,贏的錢是一個隨機變數Y,且[$ Y = 10X $]。Y的分佈為:

$$P(10) = 0.5$$

$$P(-10) = 0.5$$

Y實際上是隨機變數X的一個函式。X的1對應Y的10,X的-1對應Y的-10。即[$Y = 10X $]

小總結,在上面的實驗中,硬幣為正面為一個事件。贏得的籌碼數為一個隨機變數X。贏得的錢是X的函式Y,它也是一個隨機變數。

 

隨機變數的函式還可以是多變數函式,[$Y = g(X_1, X_2, ..., X_n)$]。Y的值y對應的是多維空間的點[$(x_1, x_2,..., x_n)$]。比如擲硬幣,第一次贏的籌碼為[$X_1$],第二次贏的籌碼為[$X_2$]。我們可以構成一個新的隨機變數[$Y = X_1 + X_2$],即兩次贏得的籌碼的總和。

 

獲得新概率分佈的基本方法

一個核心問題是,如何通過X的概率分佈,來獲得[$Y=g(X)$]的概率分佈。基本的思路是,如果我們想知道Y取某個值y的概率,可以找到對應的X值x的概率。這兩個概率相等。

 

因此,我們使用如下方法來獲得Y的概率。如果有函式關係[$Y=g(X_1, X_2, ..., X_n)$],獲得Y分佈的基本方法是:

1. 通過[$Y=g(X_1, X_2, ..., X_n)$],找到對應[$\{ Y \le y \}$]的[$(x_1, x_2, ..., x_n)$]區間I。

2. 在區間I上,積分[$ f(x_1, x_2, ..., x_n) $],獲得[$ P(Y \le y) $]

3. 通過微分,獲得密度函式。

 

如果有函式關係[$ Y = X^2 $], 而X滿足下面的分佈:

$$f(x) = \frac{1}{\sqrt{2\pi}}e^{-x^2/2}$$

對於任意[$y \ge 0$]來說,

$$F(y) = P(Y \le y) = P(X^2 \le y) = P(-\sqrt{y} \le X \le \sqrt{y}) $$

$$F(y) = \int_{-\sqrt{y}}^{\sqrt{y}}\frac{1}{\sqrt{2\pi}}e^{-x^2/2}dx = 2 \int_{0}^{\sqrt{y}}\frac{1}{\sqrt{2\pi}}e^{-x^2/2}dx$$

對上面的F(y)微分,即獲得密度函式

$$f(y) = \frac{1}{\sqrt{2\pi}}y^{-1/2}e^{-y/2}, 0 \le y \le \infty$$

 

繪製密度函式 

 

import numpy as np
import matplotlib.pyplot as plt

pi = np.pi

x = np.linspace(-10, 10, 200)
y = np.linspace(0.1, 10, 100)

fx = 1/np.sqrt(2*pi)*np.exp(-x**2/2)
fy = 1/np.sqrt(2*pi)*(y**(-1/2))*np.exp(-y/2)

plt.plot(x, fx, color = "red", label="X distribution")
plt.plot(y, fy, label="Y distribution")

plt.title("Y = X*X")
plt.xlabel("RV")
plt.ylabel("pdf")

plt.legend()

plt.show()

 

上面的例子展示的是單變數函式,我們看一個多變數函式的例子。即[$ Y=g(X_1, X_2, ..., X_n) $],且已知[$X_1, X_2, ..., X_n$]的聯合分佈為[$f(x_1, x_2, ..., x_n)$]。我們需要找到滿足[$ g(x_1, x_2, ..., x_n) \le y $]的區間。

比如,[$ Y = X_1 + X_2 $],且[$X_1, X_2$]滿足如下分佈:

$$f(x_1, x_2) = \frac{1}{2 \pi} \exp \left( -\frac{1}{2} \left( x_1^2 + x_2^2 \right) \right)$$

為了讓[$x_1 + x_2 \le y$],我們可以讓[$x_1$]任意取值,而讓[$x_2 \le y - x_1$]

$$F_Y(y) = \int_{-\infty}^{\infty} \int_{-\infty}^{y - x_1} f(x_1, x_2)  dx_2dx_1 $$

讓x_2 = v - x_1,有

$$F_Y(y) = \int_{-\infty}^{\infty} \int_{-\infty}^{y} f(x_1, v - x_1)dvdx_1 =  \int_{-\infty}^{y} \int_{-\infty}^{\infty}f(x_1, v - x_1)dvdx_1$$

微分,可得y的分佈為:

$$ f_Y(y) = \int_{-\infty}^{\infty} f(x_1, y - x_1) dx_1  = \int_{-\infty}^{\infty} \frac{1}{2 \pi} \exp \left( -\frac{1}{2} \left( x_1^2 + (y - x_1)^2 \right) \right) dx_1 $$

上述方程也可以使用數值方法求解:

程式碼如下:

# By Vamei

import numpy as np
import scipy.integrate
import matplotlib.pyplot as plt
pi = np.pi

'''
core of the integral
'''
def int_core(y):
    f = lambda x: 1.0/(2*pi)*np.exp(-0.5*(x**2 + (y-x)**2))
    return f

'''
calculate f(y)
'''
def density(y):
    rlt = scipy.integrate.quad(int_core(y), -np.inf, np.inf)
    return rlt[0]

# get distribution
y  = np.linspace(-10, 10, 100)
fy = map(density, y)

plt.plot(y, fy)
plt.title("PDF of X1+X2")
plt.ylabel("f(y)")
plt.xlabel("y")
plt.show()

上面的int_core()函式是一個閉包,它表示積分核部分。density()函式用於求某個y值下的積分結果。

 

(我們也可以利用解析的方法,推匯出f(y)滿足分佈[$N(0, \sqrt{2})$]。如果有微積分基礎,可以將此作為練習。)

 

單變數函式的通用公式

上面求新的隨機變數分佈的步驟較為繁瑣。在一些特殊情況下,我們可以直接代入通用公式,來獲得新的分佈。

(通用公式實際上是從基本方法推匯出的數學表示式)

 

對於單變數函式來說,如果[$Y=g(X)$],g是一個可微並且單調變化的函式 (在該條件,存在反函式[$g^{-1}$],使得[$X=g^{-1}(Y))$]。那麼我們可以使用下面的通用公式,來獲得Y的分佈:

$$f_Y(y) = f_X(g^{-1}(y)) \cdot \frac{d}{dy}g^{-1}(y)$$

 

假設X為標準分佈,即[$N(0, 1)$],且[$Y = 5X + 1$],那麼[$g^{-1}(y) = (y - 1)/5$],因此:

$$f_Y(y) = f_X((y-1)/5) \cdot (1/5) = \frac{1}{5\sqrt{2\pi}}e^{-(y-1)^2/(2 \times 25)}$$

可以看到,新的分佈是一個[$\mu = 1, \sigma=5$]的正態分佈,即[$N(1, 5)$]

 

並不是所有的函式都有反變換,所以這裡的“通用”公式並不能適用於所有的情況。

 

多變數函式的通用公式

在一些特殊情況下,我們可以使用多變數函式的通用公式。

 

如果[$U=g_1(X, Y), V=g_2(X, Y)$],且存在反變換,使得

$$X = h_1(U, V)$$

$$Y = h_2(U, V)$$

那麼,我們可以通過如下公式,從X,Y的分佈獲得U,V的聯合分佈:

$$f_{UV}(u, v) = f_{XY}(h_1(u, v), h_2(u, v))|J|$$

J表示雅可比變換(Jacobian tranformation),表示如下

$$J = \left| \begin{array}{cc} \frac{\partial x}{\partial u} & \frac{\partial x}{\partial v} \\ \frac{\partial y}{\partial u} & \frac{\partial y}{\partial v} \end{array} \right| =\frac{\partial x}{\partial u}\frac{\partial y}{\partial v}-\frac{\partial x}{\partial v}\frac{\partial y}{\partial u} $$

 

如果X和Y是獨立的隨機變數,且有相同的分佈$$f(x) = e^{-x}, x \ge 0$$。如果[$U = X+Y, V= Y$],求U和V的聯合分佈。

由於X和Y獨立,所以

$$f_XY(x, y) = f(x)f(y) = e^{-x}e^{-y}$$

根據[$ U=X+Y $],[$V= Y$],可以得到[$ u \ge 0, v \ge 0$], 且有:

$$X = U - V$$
$$Y = V$$

因此

$$f(u, v) = e^{-(u-v)}e^{-v} = e^{-u}, u \ge 0, v \ge 0$$

總結

通過隨機變數的函式,我們可以利用已知隨機變數,建立新的隨機變數,並獲得其分佈。

歡迎繼續閱讀“資料科學”系列文章

相關文章