Parametric Approach
MLE
给定一个模型和一组观测数据,最大似然估计法的目标是找到一组参数值,使得在这组参数下观测到实际数据的概率(即似然)最大。具体地,似然函数被定义为
L ( θ ∣ x ) = ∏ i = 1 n f ( x i ∣ θ ) L(\theta|x) = \prod\limits^n_{i=1} f(x_i | \theta) L(θ∣x)=i=1∏nf(xi∣θ)
这里, f ( x i ∣ θ ) f(x_i|\theta) f(xi∣θ) 是给定参数 θ \theta θ 下观测到 x i x_i xi 的概率密度。如果我们假设所有的观测数据都是独立同分布的,那么整体的似然就是每一个观测值的似然的乘积。
由于似然函数通常包含乘法运算,为了简化计算,我们通常会取对数,将乘法转化为加法,于是就得到了对数似然函数:
L ( θ ∣ x ) = ln L ( θ ∣ x ) = ∑ i = 1 n ln f ( x i ∣ θ ) \mathcal{L}(\theta|x) = \ln L(\theta|x) = \sum\limits^n_{i=1} \ln f(x_i | \theta) L(θ∣x)=lnL(θ∣x)=i=1∑nlnf(xi∣θ)
然后,我们的任务就是找到一个参数 θ \theta θ,使得这个对数似然函数最大。这个参数就是我们所说的最大似然估计。
Non-parametric Approach
Histograms
- Very simple visualization.
- Sensitive to the number of bins chosen and bin width.
Kernel Density Estimator (KDE)
在KDE(核密度估计)中,每一个数据点都会构建一个以该点为中心的kernel function。这个密度函数通过将所有这些kernel function相加,然后除以数据的数量来得到,以确保满足以下条件:
- 密度函数的所有可能值都是非负的
- 密度函数在其支持集上的定积分等于1
对于简单的KDE(也叫箱型核),所有在一个给定宽度h(即窗口或带宽)内的点被赋予相同的权重。你可以将其想象成一个长方形的窗口,滑过所有的数据点,窗口内的点贡献同样的权重,窗口外的点不贡献权重。这就好比说,我们认为窗口内的所有点对估计密度的影响是一样的:
f ^ ( x ) = 1 2 n h ∑ i = 1 n 1 { ∣ X i − x ∣ < h } \hat{f}(x) = \frac{1}{2nh} \sum\limits_{i =1}^n 1_{\{|X_i-x| < h\}} f^(x)=2nh1i=1∑n1{∣Xi−x∣<h}
这里的 1 A = 1 1_A = 1 1A=1 如果 A A A 为真,否则 1 A = 0 1_A = 0 1A=0。
对于更通用的核密度估计,我们使用一个kernel function K来赋予不同的权重。这个kernel function是一个非负的函数,它的值在中心最大,在远离中心的地方逐渐减小,总和为1。这意味着在计算一个点的密度估计时,距离该点近的观测值将被赋予更大的权重,而距离远的观测值将被赋予更小的权重:
f ^ ( x ) = 1 n h ∑ i = 1 n K ( X i − x h ) \hat{f}(x) = \frac{1}{nh} \sum\limits_{i =1}^n K(\frac{X_i-x}{h}) f^(x)=nh1i=1∑nK(hXi−x)
其中 K K K 是kernel function, h h h 是带宽参数(可能是固定的或变化的)。
Kernel function是一种特殊的概率密度函数,具有以下性质:
- 非负性: K ( x ) ≥ 0 K(x) \geq 0 K(x)≥0
- 对称性: K ( − x ) = K ( x ) K(-x) = K(x) K(−x)=K(x)
- 单位测度: ∫ K ( x ) d x = 1 \int K(x)dx = 1 ∫K(x)dx=1
我们有两个主要的参数可以进行调整:
- kernel function K K K的选择
- 带宽参数 h h h的选择
通常来说,kernel function的选择对结果的影响并不大,而带宽参数 h h h的选择对结果的影响就会很大。
选择合适的带宽 h h h可以平衡偏差和方差之间的权衡。
如果 h h h 太小,密度估计将趋向于在观测数据附近的地方过度地局部分配概率密度,会导致估计的密度函数出现许多虚假的模式(即估计曲线波动太大)。如果 h h h 太大,密度估计将过于分散地分配概率密度,可能会把 f f f 的重要特征平滑掉(即估计曲线过于平坦)。
V a r ( f ^ ( X ) ) = O ( 1 n h ) Var(\hat f (X)) = O(\frac{1}{nh}) Var(f^(X))=O(nh1)
B i a s ( f ^ ( X ) ) = O ( h ) Bias(\hat f (X)) = O(h) Bias(f^(X))=O(h)
总的来说,小的带宽会导致高的方差,大的带宽会导致高的偏差小的带宽会导致高的方差,大的带宽则会导致高的偏差。
以下是一些常用的kernel function:
Uniform Kernel: K ( x ) = 1 2 1 ∣ x ∣ ≤ 1 K(x) = \frac{1}{2} 1_{{|x| \leq 1}} K(x)=211∣x∣≤1
Gaussian Kernel: K ( x ) = 1 2 π e − 1 2 x 2 K(x) = \frac{1}{\sqrt{2\pi}} e^{-\frac{1}{2}x^2} K(x)=2π1e−21x2
Epanechnikov Kernel: K ( x ) = 3 4 ( 1 − x 2 ) 1 { ∣ x ∣ ≤ 1 } K(x) = \frac{3}{4}(1 - x^2) 1_{\{|x| \leq 1\}} K(x)=43(1−x2)1{∣x∣≤1}