Type a search term to find related articles by LIMS subject matter experts gathered from the most trusted and dynamic collaboration tools in the laboratory informatics industry.
En estadística, la estimación de la densidad de Kernel (KDE) es la aplicación del suavizado de kernel para la estimación de la densidad de probabilidad, es decir, un método no paramétrico para estimar la función de densidad de probabilidad de una variable aleatoria basada en kernels como pesos. KDE responde a un problema fundamental de suavizado de datos en el que se hacen inferencias sobre la población, basándose en una muestra finita de datos. En algunos campos, como el procesamiento de señales y la econometría, también se denomina método de la ventana de Parzen-Rosenblatt, en honor a Emanuel Parzen y Murray Rosenblatt, a quienes se suele atribuir su creación independiente en su forma actual.[1][2]Una de las aplicaciones más conocidas de la estimación de la densidad del núcleo es la estimación de las densidades marginales condicionales de clase de los datos cuando se utiliza un clasificador Bayes ingenuo,[3][4] que puede mejorar su precisión de predicción.[3]
Sean (x1, x2, ..., xn) muestras independientes e idénticamente distribuidas extraídas de alguna distribución univariante con una densidad desconocida ƒ en cualquier punto dado x. Nos interesa estimar la forma de esta función ƒ. Su estimador de densidad kernel es
Donde K es el núcleo (una función no negativa) y h > 0 es un parámetro de suavizado denominado ancho de banda. Un kernel con el subíndice h se denomina kernel escalado y se define como Kh(x) = 1/h K(x/h). Intuitivamente, uno quiere elegir h tan pequeño como permitan los datos; sin embargo, siempre hay un compromiso entre el sesgo del estimador y su varianza. La elección del ancho de banda se analiza con más detalle a continuación.
Se suele utilizar una serie de funciones de kernel: uniforme, triangular, biponderada, triponderada, Epanechnikov, normal y otras. El kernel de Epanechnikov es óptimo en el sentido del error cuadrático medio,[5] aunque la pérdida de eficiencia es pequeña para los kernels enumerados anteriormente.[6] Debido a sus convenientes propiedades matemáticas, a menudo se utiliza el kernel normal, que significa K(x) = ϕ(x), donde ϕ es la función de densidad normal estándar.
La construcción de una estimación de densidad de núcleo encuentra interpretaciones en campos ajenos a la estimación de densidad.[7] Por ejemplo, en termodinámica, equivale a la cantidad de calor generada cuando se colocan kernel de calor (la solución fundamental de la ecuación del calor) en cada ubicación de punto de datos xi. Se utilizan métodos similares para construir operadores discretos de Laplace en nubes de puntos para el aprendizaje de variedades (por ejemplo, el mapa de difusión).
Las estimaciones de densidad de kernel están estrechamente relacionadas con los histogramas, pero pueden dotarse de propiedades como la suavidad o la continuidad mediante el uso de un kernel adecuado. El siguiente diagrama basado en estos 6 puntos de datos ilustra esta relación:
Muestra | 1 | 2 | 3 | 4 | 5 | 6 |
Valor | -2.1 | -1.3 | -0.4 | 1.9 | 5.1 | 6.2 |
Para el histograma, primero se divide el eje horizontal en subintervalos o "bins" que cubren el intervalo de los datos: En este caso, seis intervalos de 2. Cada vez que un dato cae dentro de este intervalo, se coloca en él una caja de 1/12 de altura. Si hay más de un dato dentro del mismo intervalo, las cajas se apilan unas encima de otras.
Para la estimación de la densidad del núcleo, se colocan núcleos normales con una desviación estándar de 1,5 (indicados por las líneas discontinuas rojas) en cada uno de los puntos de datos xi. Los núcleos se suman para obtener la estimación de la densidad del núcleo (curva azul continua). La suavidad de la estimación de la densidad del kernel (en comparación con la discreción del histograma) ilustra cómo las estimaciones de la densidad del kernel convergen más rápidamente a la verdadera densidad subyacente para variables aleatorias continuas.[8]
El ancho de banda del kernel es un parámetro libre que influye mucho en la estimación resultante. Para ilustrar su efecto, tomamos una muestra aleatoria simulada de la distribución normal estándar (representada en los picos azules del rug plot en el eje horizontal). La curva gris es la densidad real (una densidad normal con media 0 y varianza 1). En comparación, la curva roja está poco suavizada, ya que contiene demasiados datos espurios debido a la utilización de un ancho de banda h = 0,05, que es demasiado pequeño. La curva verde está demasiado suavizada, ya que el ancho de banda h = 2 oculta gran parte de la estructura subyacente. La curva negra con un ancho de banda de h = 0,337 se considera óptimamente suavizada, ya que su estimación de la densidad se aproxima a la densidad real. Una situación extrema se da en el límite (sin suavizado), donde la estimación es una suma de n funciones delta centradas en las coordenadas de las muestras analizadas. En el otro límite extremo la estimación conserva la forma del núcleo utilizado, centrada en la media de las muestras (completamente lisa).
El criterio de optimalidad más utilizado para seleccionar este parámetro es la función de riesgo L2 esperado, también denominada error cuadrático medio integrado:
Bajo supuestos débiles sobre ƒ y K, (ƒ es la función de densidad real, generalmente desconocida),[1][2]
donde o es la notación o pequeña, y n el tamaño de la muestra (como arriba). El AMISE es el MISE asintótico, es decir, los dos términos principales,
Donde para una función g, y es la segunda derivada de y es el kernel. El mínimo de este AMISE es la solución de esta ecuación diferencial.
o
Ni las fórmulas AMISE ni las hAMISE pueden utilizarse directamente, ya que implican la función de densidad desconocida o su segunda derivada . Para superar esa dificultad, se han desarrollado diversos métodos automáticos basados en datos para seleccionar el ancho de banda. Se han realizado varios estudios de revisión para comparar su eficacia,[9][10][11][12][13][14][15] con el consenso general de que los selectores de complemento[7][16][17] y los selectores de validación cruzada[18][19][20] son los más útiles en una amplia gama de conjuntos de datos.
Sustituyendo cualquier ancho de banda h que tenga el mismo orden asintótico n-1/5 que hAMISE en el AMISE se obtiene que AMISE(h) = O(n-4/5), donde O es la notación big o. Puede demostrarse que, bajo supuestos débiles, no puede existir un estimador no paramétrico que converja a un ritmo más rápido que el estimador kernel.[21] Obsérvese que el ritmo n-4/5 es más lento que el típico ritmo de convergencia n-1 de los métodos paramétricos.
Si el ancho de banda no se mantiene fijo, sino que varía en función de la ubicación de la estimación (estimador de globo) o de las muestras (estimador puntual), se obtiene un método especialmente potente denominado estimación de densidad kernel adaptativa o de ancho de banda variable.
La selección del ancho de banda para la estimación de la densidad del kernel de distribuciones con colas gruesas es relativamente difícil.[22]
Si se utilizan funciones de base gaussiana para aproximar datos univariantes, y la densidad subyacente que se estima es gaussiana, la elección óptima para h (es decir, el ancho de banda que minimiza el error cuadrático medio integrado) es:[23]
Un valor se considera más robusto cuando mejora el ajuste para distribuciones de cola larga y sesgadas o para distribuciones de mezcla bimodales. Esto suele hacerse empíricamente sustituyendo la desviación típica por el parámetro a continuación:
donde IQR es el rango intercuartílico.
Otra modificación que mejorará el modelo es reducir el factor de 1,06 a 0,9. Entonces la fórmula final sería:
Esta aproximación se denomina aproximación de distribución normal, aproximación gaussiana o regla empírica de Silverman.[23] Aunque esta regla empírica es fácil de calcular, debe utilizarse con precaución, ya que puede dar lugar a estimaciones muy imprecisas cuando la densidad no se aproxima a la normalidad. Por ejemplo, al estimar el modelo de mezcla gaussiana bimodal:
a partir de una muestra de 200 puntos, la figura de la derecha muestra la densidad real y dos estimaciones de densidad kernel: una que utiliza el ancho de banda de la regla empírica y otra que utiliza el ancho de banda de la solución de la ecuación.[7][17] La estimación basada en el ancho de banda de la regla empírica está muy suavizada.
Dada la muestra (x1, x2, ..., xn), es natural estimar la función característica φ(t) = E[eitX] como:
Conociendo la función característica, es posible hallar la correspondiente función de densidad de probabilidad mediante la fórmula de la transformada de Fourier. Una dificultad de la aplicación de esta fórmula de inversión es que conduce a una integral divergente, ya que la estimación no es fiable para t's grandes. Para evitar este problema, el estimador se multiplica por una función de amortiguación ψh(t) = ψ(ht) , que es igual a 1 en el origen y luego cae a 0 en el infinito. El "parámetro de ancho de banda" h controla la rapidez con la que intentamos amortiguar la función . En particular, cuando h es pequeño, entonces ψh(t) será aproximadamente uno para un amplio rango de t's, lo que significa que permanece prácticamente inalterado en la región más importante de t's.
La elección más común para la función ψ es la función uniforme ψ(t) = 1{−1 ≤ t ≤ 1}, lo que significa truncar el intervalo de integración en la fórmula de inversión a [−1/h, 1/h] o la función gaussiana ψ (t) = eπt2. Una vez elegida la función ψ, se puede aplicar la fórmula de inversión, y el estimador de densidad será:
donde K es la transformada de Fourier de la función de amortiguación ψ. Así pues, el estimador de densidad kernel coincide con el estimador de densidad de función característica.
Podemos ampliar la definición del modo (global) a un sentido local y definir los modos locales:
Concretamente, es la colección de puntos para los que la función de densidad se maximiza localmente. Un estimador natural de es un plug-in de KDE,[24][25] donde y son la versión KDE de y . Bajo suposiciones suaves, es un estimador coherente de . Obsérvese que se puede utilizar el algoritmo de desplazamiento de la media[26] [27][28]para calcular el estimador numéricamente.
Una lista no exhaustiva de implementaciones de software de estimadores de densidad kernel incluye:
Pdf
incorporada.de.lmu.ifi.dbs.elki.math.statistics.kernelfunctions
ksdensity
(Statistics Toolbox). A partir de la versión 2018a de MATLAB, se pueden especificar tanto el ancho de banda como el suavizador del kernel, incluyendo otras opciones como especificar el rango de la densidad del kernel.[30] Alternativamente, en el MATLAB Central File Exchange está disponible un paquete de software gratuito de MATLAB que implementa un método de selección automática del ancho de banda[7] para:
En estas páginas está disponible una caja de herramientas MATLAB gratuita con la implementación de la regresión kernel, la estimación de la densidad kernel, la estimación kernel de la función de riesgo y muchas otras (esta caja de herramientas forma parte del libro)[31].
SmoothKernelDistribution
[32] y la estimación simbólica se implementa mediante la función KernelMixtureDistribution
[33], las cuales proporcionan anchos de banda en función de los datos.kernel_density
(paquete econometrics).scipy.stats.gaussian_kde
), Statsmodels (KDEUnivariate
y KDEMultivariate
) y scikit-learn (KernelDensity
) (véase la comparación)[37]. KDEpy soporta datos ponderados y su implementación FFT es órdenes de magnitud más rápida que las otras implementaciones. La biblioteca pandas de uso común[1] ofrece soporte para el trazado kde a través del método plot (df.plot(kind='kde')
)[2]). El paquete getdist para muestras MCMC ponderadas y correlacionadas admite ancho de banda optimizado, corrección de límites y métodos de orden superior para distribuciones 1D y 2D. Un paquete utilizado recientemente para la estimación de la densidad del núcleo es seaborn (import seaborn as sns
, sns.kdeplot()
)[38] También existe una implementación de KDE en la GPU.[39]density
en la distribución base, y la función bw.nrd0
se utiliza en el paquete stats, esta función utiliza la fórmula optimizada en el libro de Silverman. bkde en la biblioteca KernSmooth, ParetoDensityEstimation
en la biblioteca DataVisualizations (para la estimación de la densidad de la distribución pareto), kde en la biblioteca ks, kde
y dbckden
en la biblioteca evmix (esta última para la estimación de la densidad del kernel con corrección de límites para soporte acotado), npudens
en la biblioteca np (datos numéricos y categóricos), sm.density
en la biblioteca sm. Para una implementación de la función kde.R
, que no requiere la instalación de ningún paquete o biblioteca, véase kde.R. La biblioteca btb, dedicada al análisis urbano, implementa la estimación de densidad kernel mediante kernel_smoothing
.proc kde
puede utilizarse para estimar densidades kernel univariantes y bivariantes.KernelDensity()
()[40]kdensity
;[41] por ejemplo histogram x, kdensity
. Alternativamente, existe un módulo gratuito de Stata, KDENS[42], que permite al usuario estimar funciones de densidad 1D o 2D.SwiftStats.KernelDensityEstimation
en la biblioteca estadística de código abierto.