Estimación de densidad nuclear

Kernel Density Estimation ( KDE ) es un método no paramétrico para  estimar [ en la densidad de una variable aleatoria . La estimación de la densidad del núcleo es un problema de suavizado de datos en el que se infiere una población a partir de muestras de datos finitos . En algunos campos, como el procesamiento de señales y la economía matemática , el método también se denomina método de ventana de Parzen-Rosenblatt . Se cree que Emmanuel Parzen y Murray Rosenblatt crearon de forma independiente el método en su forma actual. [1] [2] .

Definición

Sea una muestra unidimensional de cantidades independientes distribuidas idénticamente extraídas de alguna distribución con una densidad desconocida ƒ . Nuestra tarea es estimar la forma de la función ƒ . Su estimador de densidad kernel es

donde K es el núcleo , es decir, una función no negativa, y h > 0 es un parámetro de suavizado llamado ancho de banda . El kernel con índice h se denomina kernel ponderado y se define como . Intuitivamente, uno trata de elegir h tan pequeño como lo permitan los datos, pero siempre hay una elección entre el sesgo del estimador y su varianza. La selección de ancho de banda se analiza con más detalle a continuación.

Hay una serie de las funciones kernel más utilizadas : homogénea, triangular, biponderada, triponderada, Epanechnikov, normal y otras. El kernel de Epanechnikov es óptimo en el sentido del error cuadrático medio [3] , aunque la pérdida de eficiencia para los kernels enumerados antes es pequeña [4] . Debido a propiedades matemáticas convenientes, a menudo se usa un kernel normal cuya media es , donde es la función de densidad normal estándar .

La construcción de una estimación de densidad kernel encuentra una interpretación en áreas fuera de la estimación de densidad [5] . Por ejemplo, en termodinámica , esto es equivalente a la cantidad de calor producido cuando los núcleos del operador de calor (las soluciones fundamentales de la ecuación del calor ) se colocan en cada punto de datos x i . Se utilizan métodos similares para construir operadores discretos de Laplace en puntos de nube para el aprendizaje basado en múltiples .

Las estimaciones de la densidad del kernel están estrechamente relacionadas con los histogramas , pero se pueden dotar de propiedades como la suavidad o la continuidad eligiendo un kernel apropiado. Para ver esto, comparemos la construcción del histograma y la estimación de la densidad del núcleo en estos 6 puntos:

una 2 3 cuatro 5 6
-2.1 -1.3 -0.4 1.9 5.1 6.2

Para un histograma, el eje horizontal se divide en subintervalos que cubren el área de datos. En este caso, tenemos 6 barras, cada una de longitud 2. Cuando el punto de datos cae dentro de la barra, colocamos un rectángulo de 1/12 de altura. Si más de un punto cae en el segmento, colocamos los rectángulos uno encima del otro.

Para la estimación de la densidad del núcleo, colocamos un núcleo normal con una varianza de 2,25 (que se muestra en las líneas punteadas rojas) para cada punto de datos x i . Los núcleos se suman para dar una estimación de la densidad del núcleo (curva azul sólida). La suavidad de la estimación de la densidad del núcleo es evidente cuando se compara con la discreción del histograma, ya que las estimaciones de la densidad del núcleo convergen más rápidamente a la densidad subyacente real para las variables aleatorias continuas [6] .

Selección de ancho de banda

El ancho de banda del kernel es un parámetro libre que tiene una fuerte influencia en el resultado de la estimación. Para mostrar este efecto, tomaremos una muestra pseudoaleatoria de la distribución normal habitual (que se muestra como barras azules en el gráfico de franjas en el eje horizontal). La curva gris representa la densidad real (densidad normal con media 0 y varianza 1). En comparación, la curva roja no es lo suficientemente suave porque contiene demasiados picos aleatorios que ocurren cuando se usa un ancho de banda h = 0.05, que es demasiado pequeño. La curva verde está demasiado suavizada porque el ancho de banda h = 2 utilizado oculta la estructura de manera significativa. Se considera que la curva negra con un ancho de banda de h = 0,337 está óptimamente suavizada, ya que su estimación de densidad está cerca de la densidad real.

El criterio de optimalidad más utilizado para elegir este parámetro es la función de pérdida esperada L 2 , también llamada Error cuadrático integrado medio [ ] : 

Bajo suposiciones débiles sobre las funciones ƒ y K ( ƒ es generalmente una función de densidad real desconocida) [1] [2] , MISE ( h )=AMISE( h ) + o(1/(nh) + h 4 ) , donde o es "o" pequeña . AMISE significa "Asymptotic MISE" (MISE asintótico), que consta de dos miembros principales

donde para la función g , , y ƒ'' es la segunda derivada de ƒ . Para encontrar el valor h AMISE , donde se alcanza el AMISE mínimo, es necesario diferenciar la expresión anterior para AMISE con respecto a h y obtener una solución a partir de la siguiente ecuación algebraica [7] :

o

Las fórmulas para calcular AMISE y h AMISE no se pueden usar directamente porque involucran una función de densidad desconocida ƒ o su segunda derivada ƒ'' , por lo que se han desarrollado una gran cantidad de métodos automáticos basados ​​en datos para la selección del ancho de banda. Muchas revisiones han comparado el rendimiento de estos métodos [8] [9] [10] [11] [12] [13] [14] con el consenso general de que las funciones de muestreo conectables [5] [15] y las funciones de validación cruzada [ 16] [ 17] [18] son ​​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 h AMISE en AMISE se obtiene , donde O  — "O" es grande . Se puede demostrar que, bajo supuestos débiles, no puede haber un estimador no paramétrico que converja más rápido que el estimador kernel [19] . Tenga en cuenta que la tasa n −4/5 es menor que la tasa de convergencia típica de n − 1 métodos paramétricos.

Si el ancho de banda no es fijo y puede cambiar dependiendo de la ubicación del tamaño de la estimación ( estimador de globo ) o del tamaño de la muestra (estimador puntual), se obtiene un método poderoso, llamado método de estimación de densidad de núcleo adaptativo .

La elección del ancho de banda para una estimación de la densidad del kernel con una "cola" que disminuye lentamente es una tarea relativamente difícil [20] .

Regla general para la selección del ancho de banda

Si se utilizan funciones gaussianas básicas para aproximar datos univariados y la densidad subyacente estimada es gaussiana, la opción óptima para h (es decir, el ancho de banda que minimiza el error cuadrático medio acumulado ) es [21]

donde es la desviación estándar de la muestra. La aproximación se denomina aproximación de distribución normal , distribución gaussiana o regla práctica de Silverman (1986) . Aunque esta regla general es fácil de aplicar desde el punto de vista computacional, debe utilizarse con precaución, ya que proporciona estimaciones muy inexactas cuando la densidad no se acerca a lo normal. Por ejemplo, considere la estimación de la mezcla gaussiana bimodal:

de una muestra con 200 puntos. La figura en la parte inferior derecha muestra la densidad real y dos estimaciones de densidad kernel: una que utiliza una regla general para la selección de bandas y la otra que utiliza una selección de bandas basada en la resolución de la ecuación [5] [15] . La estimación basada en la regla empírica está demasiado suavizada. El script de Matlab usa kde.m como ejemplo y se proporciona a continuación.

%Datos randn ( ' semilla' , 1 ) datos =[ randn ( 100 , 1 ) - 10 ; randn ( 100 , 1 ) + 10 ]; % Mezcla de dos distribuciones normales %Verdadero phi =@( x ) exp ( - .5 * x .^ 2 ) / sqrt ( 2 * pi ); % densidad normal tpdf =@( x ) phi ( x + 10 ) / 2 + phi ( x - 10 ) / 2 ; % de densidad real % Núcleo h = std ( datos ) * ( 4 / 3 / numel ( datos ) ) ^ ( 1/5 ) ; % de ancho de banda según la regla general de Silverman kernel =@( x ) media ( phi (( x - datos ) / h ) / h ); % densidad nuclear kpdf =@( x ) arrayfun ( kernel , x ); % aplicación elemento por elemento %gráfico figura ( 2 ) , clf , espera x = espacio lineal ( - 25 , + 25 , 1000 ); % de densidad de línea plot ( x , tpdf ( x )) % Gráfico de densidad real plot ( x , kpdf ( x )) % Diagrama de densidad nuclear con regla empírica kde ( datos ) % Diagrama de densidad del kernel con solución a la ecuación para el cálculo de la banda

Relación con la función característica del estimador de densidad

Dada una muestra , es natural evaluar la función característica como

Conociendo la función característica, se puede encontrar la densidad de probabilidad correspondiente a través de las fórmulas de la transformada de Fourier . Hay una dificultad al aplicar esta fórmula de inversión, y es que conduce a una integral divergente, ya que la estimación no es confiable para t grande . Para evitar este problema, el estimador se multiplica por la función de amortiguamiento , que es 1 en el origen y luego cae a 0 en el infinito. El "parámetro de ancho de banda" h controla cuánto tratamos de limitar la variación de la función . En particular, cuando h es pequeño, será aproximadamente igual a uno para t grande , lo que significa que permanece prácticamente sin cambios en la región más importante de t .

La forma más común de elegir una función es una función homogénea , lo que significa truncar el intervalo de integración en la fórmula de inversión a [−1/ h , 1/ h ] , o una función gaussiana . Cuando se selecciona la función, se puede aplicar la fórmula de inversión y el estimador de densidad es

donde K es la transformada de Fourier de la función de amortiguamiento . Entonces, el estimador de densidad kernel es lo mismo que la función característica del estimador de densidad.

Implementaciones estadísticas

Una lista incompleta de software que implementa estimadores de densidad del kernel:

  • En la versión 4.4 de Analytica , KDE utiliza la opción Suavizado la función de densidad de probabilidad y, para las expresiones, la opción está disponible como una Pdffunción integrada.
  • En los lenguajes C / C++ , FIGTree es una biblioteca que se puede usar para calcular una estimación de la densidad del kernel usando kernels normales. Interfaz MATLAB disponible.
  • En C++ , libagf es una biblioteca para la estimación adaptativa de la densidad del kernel .
  • En CrimeStat , la estimación de la densidad del núcleo se implementa con cinco funciones del núcleo diferentes: normal, uniforme, de cuarto orden, exponencial negativa y triangular. Los procedimientos de estimación de densidad de núcleo simple y doble están disponibles. La estimación de la densidad del kernel también se utiliza en el procedimiento de interpolación Head Bang, en la estimación de la función de densidad del viaje al crimen en 2D y en la estimación del estimador del viaje al crimen bayesiano en 3D.
  • En el marco ELKI , las funciones de densidad del núcleo se pueden encontrar en el paquetede.lmu.ifi.dbs.elki.math.statistics.kernelfunctions
  • En los productos de ESRI , el mapeo de la densidad del kernel se encuentra en el kit de herramientas de Spatial Analyst y utiliza un kernel de cuarto orden (no ponderado).
  • Para el programa Excel , la Royal Society of Chemistry ha creado un complemento para realizar estimaciones de densidad nuclear basadas en el informe técnico del Comité de Métodos Analíticos 4 .
  • En gnuplot , se implementa una estimación de la densidad del kernel con la opción smooth kdensity, el archivo de datos puede contener el peso y el ancho de banda para cada punto, o el ancho de banda se puede configurar automáticamente [22] de acuerdo con la "regla general de Silverman" (ver arriba).
  • En Haskell , la densidad del kernel se implementa en el paquete de estadísticas .
  • En IGOR Pro , la estimación de la densidad del kernel se implementa como una operación StatsKDE(agregada en la versión 7.00 de Igor Pro). El ancho de banda se puede especificar o estimar mediante los promedios de Silverman, Scott o Bowmann y Azzalini. Tipos de kernel: Epanechnikov, biponderado, triponderado, triangular, gaussiano y rectangular.
  • En el lenguaje Java , el paquete Weka proporciona weka.estimators.KernelEstimator , entre otras cosas.
  • En JavaScript el paquete de visualización D3.js contiene el paquete KDE en el paquete science.stats.
  • El paquete JMP puede usar la "plataforma de distribución" para generar una estimación de la densidad del kernel 1D, y la "plataforma Fit Y by X" puede usarse para generar una estimación de la densidad del kernel 2D.
  • En el lenguaje Julia , la estimación de la densidad del kernel se implementa en el paquete KernelDensity.jl .
  • En MATLAB, la estimación de la densidad del kernel se implementa a través de una función ksdensity(Statistics Toolbox). En la versión 2018 de MATLAB, se pueden especificar tanto el ancho de banda como el suavizado del kernel , incluidas otras opciones, como la especificación de límites de densidad del kernel. Alternativamente, un paquete gratuito para MATLAB que implementa la selección automática de ancho de banda [5] está disponible en la página "MATLAB Central File Exchange" para
  • En el sistema Mathematica , la evaluación numérica de la distribución del kernel se implementa como la función SmoothKernelDistribution aquí , y la evaluación simbólica se implementa usando la función KernelMixtureDistribution aquí , y ambas implementaciones seleccionan el ancho de banda de los datos presentados.
  • Para el paquete de Minitab , la Royal Society of Chemistry creó una macro para hacer la estimación de la densidad nuclear basada en su informe técnico 4 del Comité de Métodos Analíticos .
  • En la biblioteca NAG , la estimación de la densidad del núcleo se implementa mediante un procedimiento g10ba(disponible en Fortran [24] y C [25] ).
  • En la biblioteca Nuklei , los métodos de densidad del núcleo en C++ se centran en los melones del grupo euclidiano especial .
  • En el sistema Octave , la estimación de la densidad del kernel se implementa como una característica kernel_density(paquete de economía matemática).
  • En el paquete Origin 2D, se puede trazar un gráfico de densidad del kernel utilizando la interfaz de usuario del paquete, y los códigos para las dos funciones Ksdensity para 1D y Ks2density para 2D se pueden tomar en LabTalk , Python o C.
  • En Perl , la implementación se puede encontrar en el módulo Estadísticas-KernelEstimati
  • En PHP , la implementación se puede encontrar en la biblioteca MathPHP
  • Hay muchas implementaciones en Python : Módulo pyqt_fit.kde en el paquete PyQt-Fit , SciPy ( scipy.stats.gaussian_kdey scipy.signal.parzen), Statsmodels ( KDEUnivariatey KDEMultivariate), y Scikit-learn ( KernelDensity) (ver comparación [26] ). KDEpy admite datos ponderados y la implementación de FFT es un orden de magnitud más rápida que otras implementaciones.
  • En el lenguaje R, esto se implementa a través de la distribucióndensity base , a través de la biblioteca KernSmooth , a través bkdede la biblioteca AdaptGauss (para estimar la densidad de la distribución de Pareto), a través de la biblioteca ks , a través de y en la biblioteca evmix , en la biblioteca np (datos numéricos y categóricos), en la biblioteca sm . Para una implementación de características que no requiere la instalación de ningún paquete o biblioteca, consulte kde.R. La biblioteca btb , diseñada para el análisis urbano, implementa una estimación de la densidad del kernel a través de .ParetoDensityEstimationkdedkdendbckdennpudenssm.densitykde.Rkernel_smoothing
  • En el sistema SAS (programa) , se puede utilizar un procedimiento proc kdepara estimar densidades nucleares unidimensionales y bidimensionales.
  • En el paquete Stata , esto se implementa como kdensity[27] , por ejemplo histogram x, kdensity. Alternativamente, el módulo KDENS gratuito de Stata está disponible aquí , que le permite evaluar funciones de densidad 1D o 2D.
  • En Apache Spark puedes usar una clase KernelDensity()(ver la documentación oficial )

Véase también

  • Núcleo (estadísticas)
  • Suavizador nuclear
  • regresión nuclear
  • Estimación de densidad (con presentación de otros ejemplos)
  • Procedimiento de turno promedio
  • Estimación multivariante de la densidad kernel
  • Estimación adaptativa de la densidad del kernel

Notas

  1. 1 2 Rosenblatt, 1956 , pág. 832.
  2. 1 2 Parzen, 1962 , pág. 1065.
  3. Epanechnikov, 1969 , p. 153–158.
  4. Varita mágica, Jones, 1995 .
  5. 1 2 3 4 Botev, Grotowski, Kroese, 2010 , pág. 2916–2957.
  6. Scott, 1979 , pág. 605–610.
  7. V. A. Epanechnikov, "Estimación no paramétrica de la densidad de probabilidad multidimensional", Teor. Veroyatnost. y su aplicación, 14:1 (1969), 156–161; Teoría probabilística. Appl.14:1 (1969), 153–158 . www.mathnet.ru _ Consultado: 31 de enero de 2022.
  8. Park, Marrón, 1990 , p. 66–72.
  9. Park, Turlach, 1992 , pág. 251–270.
  10. Cao, Cuevas, Manteiga, 1994 , p. 153–176.
  11. Jones, Marron, Sheather, 1996 , p. 401–407.
  12. Funda, 1992 , pág. 225-250, 271-281.
  13. Agarwal, Aluru, 2010 , pág. 575–597.
  14. Xu, Yan, Xu, 2015 , pág. 28–37.
  15. 1 2 Sheather, Jones, 1991 , pág. 683–690.
  16. Rudemo, 1982 , pág. 65–78.
  17. Bowman 1984 , pág. 353–360.
  18. Hall, Marron, Park, 1992 , p. 1–20.
  19. Wahba, 1975 , pág. 15–29.
  20. Buch-Larsen, 2005 , pág. 503–518.
  21. Silverman, 1986 , pág. 48.
  22. Janert, 2009 , pág. apartado 13.2.2.
  23. Horová, Koláček, Zelinka, 2012 .
  24. ↑ Documento de rutina de la biblioteca NAG del grupo de algoritmos numéricos : nagf_smooth_kerndens_gauss (g10baf) . Manual de la biblioteca NAG, Mark 23 . Consultado: 16 de febrero de 2012.
  25. ↑ Documento de rutina de la biblioteca NAG del grupo de algoritmos numéricos : nag_kernel_density_estim (g10bac) (enlace descendente) . Manual de la biblioteca NAG, Mark 9 . Fecha de acceso: 16 de febrero de 2012. Archivado desde el original el 24 de noviembre de 2011. 
  26. Vanderplas, Jake Kernel Density Estimation in Python (1 de diciembre de 2013). Consultado: 12 de marzo de 2014.
  27. https://www.stata.com/manuals13/rkdensity.pdf

Literatura

  • Rosenblatt M. Observaciones sobre algunas estimaciones no paramétricas de una función de densidad // The Annals of Mathematical Statistics. - 1956. - T. 27 , núm. 3 . -doi : 10.1214 / aoms/1177728190 .
  • Parzen E. Sobre la estimación de una función de densidad de probabilidad y modo // The Annals of Mathematical Statistics . - 1962. - T. 33 , núm. 3 . -doi : 10.1214 / aoms/1177704472 . — .
  • Epanechnikov VA Estimación no paramétrica de una densidad de probabilidad multivariada // Teoría de la probabilidad y sus aplicaciones. - 1969. - T. 14 . -doi : 10.1137/ 1114019 .
  • Wand MP, Jones MC Kernel Smoothing. — Londres: Chapman & Hall/CRC, 1995. — ISBN 0-412-55270-1 .
  • Botev ZI, Grotowski JF, Kroese DP Estimación de la densidad del núcleo mediante difusión // Annals of Statistics . - 2010. - T. 38 , núm. 5 . -doi : 10.1214 / 10-AOS799 . -arXiv : 1011.2602 . _
  • Scott D. Sobre histogramas óptimos y basados ​​en datos // Biometrika. - 1979. - T. 66 , núm. 3 . -doi : 10.1093 / biomet/66.3.605 .
  • Park BU, Marron JS Comparación de selectores de ancho de banda basados ​​en datos // Revista de la Asociación Estadounidense de Estadística . - 1990. - T. 85 , núm. 409 . -doi : 10.1080/ 01621459.1990.10475307 . — .
  • Park BU, Turlach BA Rendimiento práctico de varios selectores de ancho de banda basados ​​en datos (con discusión)  // Estadística computacional. - 1992. - T. 7 . — S. 251–270 .
  • Cao R., Cuevas A., Manteiga WG Un estudio comparativo de varios métodos de suavizado en la estimación de densidad // Estadística computacional y análisis de datos. - 1994. - T. 17 , núm. 2 . -doi : 10.1016 / 0167-9473(92)00066-Z .
  • Jones MC, Marron JS, Sheather SJ Una breve encuesta sobre la selección del ancho de banda para la estimación de la densidad // Revista de la Asociación Estadounidense de Estadística. - 1996. - T. 91 , núm. 433 . -doi : 10.2307/ 2291420 . — .
  • Sheather SJ El rendimiento de seis métodos populares de selección de ancho de banda en algunos conjuntos de datos reales (con discusión) // Estadísticas computacionales. - 1992. - T. 7 .
  • Agarwal N., Aluru NR Un enfoque de colocación estocástica basado en datos para la cuantificación de la incertidumbre en MEMS  // Revista internacional de métodos numéricos en ingeniería. - 2010. - T. 83 , núm. 5 .
  • Xu X., Yan Z., Xu S. Estimación de la distribución de probabilidad de la velocidad del viento mediante el método de densidad del núcleo basado en la difusión  // Investigación de sistemas de energía eléctrica. - 2015. - T. 121 . — P. 28–37 .
  • Sheather SJ, Jones MC Un método confiable de selección de ancho de banda basado en datos para la estimación de la densidad del kernel // Journal of the Royal Statistical Society, Serie B. - 1991. - V. 53 , no. 3 . — .
  • Rudemo M. Elección empírica de histogramas y estimadores de densidad kernel // Scandinavian Journal of Statistics. - 1982. - T. 9 , núm. 2 . — .
  • Bowman AW Un método alternativo de validación cruzada para suavizar las estimaciones de densidad // Biometrika. - 1984. - T. 71 , núm. 2 . -doi : 10.1093 / biomet/71.2.353 .
  • Hall P., Marron JS, Park BU Validación cruzada suavizada  // Teoría de la probabilidad y campos relacionados. - 1992. - T. 92 . — P. 1–20 . -doi : 10.1007/ BF01205233 .
  • Wahba G. Propiedades de convergencia óptima de los métodos de series ortogonales, kernel y nudos variables para la estimación de la densidad  // Annals of Statistics . - 1975. - T. 3 , núm. 1 . -doi : 10.1214 / aos/1176342997 .
  • TINE Buch-Larsen. Estimación de la densidad del kernel para distribuciones de colas pesadas utilizando la transformación de Champernowne // Estadísticas. - 2005. - T. 39 , núm. 6 _ -doi : 10.1080/ 02331880500439782 .
  • Silverman BW Estimación de densidad para estadísticas y análisis de datos. — Londres: Chapman & Hall/CRC, 1986. — ISBN 0-412-24620-1 .
  • Philip K. Janet. sección 13.2.2 Estimaciones de densidad del kernel // Gnuplot en acción: comprensión de datos con gráficos. - Connecticut, EE. UU.: Publicaciones de Manning, 2009. - ISBN 978-1-933988-39-9 .
  • Horová I., Koláček J., Zelinka J. Kernel Smoothing en MATLAB: teoría y práctica del kernel Smoothing. - Singapur: World Scientific Publishing, 2012. - ISBN 978-981-4405-48-5 .

Enlaces