An introduction to kernel density estimation

概述

這一講分爲三個部分:首先是直方圖——如何構造直方圖及其屬性;接下來是核密度估計——它是直方圖的泛化和改進。 最後是如何選擇最合適的核,以便我們提取數據中的所有重要特徵。

1. 直方圖

直方圖是最簡單最常見的一種非參數密度估計器。構建直方圖時,我們將數據值的覆蓋域劃分爲相等的子間隔——稱爲“ bins”。每次當數據值落入特定的子間隔時,將寬度等於binwidth高度爲1的塊放在其頂部 。在構造直方圖時需要考慮兩個要點:bin的寬度(binwidth)和bin的端點座標。

現在使用一組數據是從1956年至1984年飛機的翼展的對數值。(完整的數據集可在Bowman&Azzalini(1997)Applied Smoothing Techniques for Data Analysis中找到。使用其中的一個子集{2,22,42,62,82,102,122,142,162,182,202,222}\{2,22,42,62,82,102,122,142,162,182,202,222\}。因爲僅作顯示效果,所以選用數據子集防止圖過於擁擠)數據點由叉號表示 在x軸上。

如果選擇bin的端點爲[0,0.5],binwidth爲0.5,直方圖如左側所示。 根據左側的直方圖,概率密度似乎是單峯的並且向右傾斜。使用相同的binwidth但端點向右移動爲[0.25,0.75],則輸出直方圖如右圖所示。此時對數據密度就有完全不同的估計——看起來是雙峯的。端點的選擇對直方圖的形狀有特別明顯的影響。
在這裏插入圖片描述
通過示例對比說明了直方圖的屬性:

  • 不光滑;
  • 取決於bin的端點;
  • 取決於bin的寬度。

核密度估計

我們可以通過使用內核密度估計器來緩解前兩個問題。爲了消除對bin端點的依賴,我們將每個數據塊的中心放在數據點上而不是固定這些數據塊的端點。
在這裏插入圖片描述
在上面的“直方圖”中,我們放置了一個寬度爲1/2且高度爲1/6的塊(虛線框),因爲有12個數據點,然後將它們加起來。 由於我們開始提取一些更精細的結構,因此該密度估計值(實線)比任何一個直方圖都沒有塊狀。 這表明密度是雙峯的。

這就是所謂的盒式核密度估計——因爲我們使用了不連續的內核構建基塊所以得到的估計也是不連續的。如果我們使用平滑內核作構建基塊將獲得平滑密度估計。因此我們也可以消除直方圖的第一個問題。不幸的是我們仍然無法消除對帶寬的依賴(這相當於直方圖的binwidth)。

選擇合適的帶寬非常重要——太小或太大的值都無用。如果我們使用帶寬(標準偏差)爲0.1的高斯內核(每條曲線下的面積爲1/12),從下圖所示可知帶寬太小,內核密度估計不夠平滑。 在這種密度下似乎是4個高斯分佈的疊加——其中某些肯定存在數據的誤差。 我們可以嘗試通過將高斯內核的帶寬增加到0.5來消除這一缺陷。僅使用一個高斯分佈,我們獲得了更爲平坦的估計。 因爲選擇的帶寬太大導致過於平滑遮蓋了大多數的數據特徵。

在這裏插入圖片描述

最佳帶寬選擇

應該如何選擇最佳帶寬呢?一種常見的方法是使用使最佳性標準最小化的帶寬(這是最佳帶寬的函數)AMISE =Asymptotic Mean Integrated Squared Error,因此最佳帶寬= argmin AMISE,即最佳帶寬是使AMISE最小化的參數。

AMISE仍然取決於真實潛在概率密度(當然我們沒有!)。因此我們也需要從數據中估算AMISE。這意味着所選帶寬是漸近近似的估計。 現在聽起來好像離真正的最佳值太遠了,但事實證明這種特殊的帶寬選擇可以保留所有重要特徵,同時保證分佈的平滑度。

當前數據集的帶寬的最佳值爲大約爲0.25。根據最佳平滑的內核密度估計,概率分佈是兩個高斯分佈的疊加。因爲這些是飛機機翼跨度的對數,所以這意味着有一組較小的、較輕的飛機——它們聚集在2.5左右(約12 m)。而較大的飛機可能使用噴氣式發動機,因爲它們大約是在1960年代以商業規模使用的,分組在3.5(大約33 m)附近。
在這裏插入圖片描述
與直方圖相比,核密度估計器的屬性爲:

  • 平滑;
  • 沒有端點;
  • 取決於帶寬(bandwidth)。

相關文獻:

[1] An introduction to kernel density estimation (http://www.mvstat.net/tduong/research/seminars/seminar-2001-05.pdf)
[2] A blog from Michael Lerner(https://mglerner.github.io/posts/histograms-and-kernel-density-estimation-kde-2.html?p=28)
[3] Wiki KDE 介紹(https://en.wikipedia.org/wiki/Kernel_density_estimation)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章