Ydintiheyden arvio

Ytimen tiheyden arviointi ( KDE ) on ei -  parametrinen menetelmä satunnaismuuttujan tiheyden arvioimiseen [ ] . Ytimen tiheyden estimointi on datan tasoitusongelma, jossa populaatio päätellään äärellisistä datanäytteistä . Joillakin aloilla, kuten signaalinkäsittelyssä ja matemaattisessa taloustieteessä , menetelmää kutsutaan myös Parzen-Rosenblatt-ikkunamenetelmäksi . Uskotaan, että Emmanuel Parzen ja Murray Rosenblatt loivat itsenäisesti menetelmän nykyisessä muodossaan [1] [2] .

Määritelmä

Olkoon yksiulotteinen näyte riippumattomista identtisesti jakautuneista suureista, jotka on erotettu jostain jakaumasta, jonka tiheys on tuntematon ƒ . Tehtävämme on estimoida funktion ƒ muoto . Sen ydintiheysestimaattori on

jossa K on ydin eli ei-negatiivinen funktio ja h > 0 on tasoitusparametri, jota kutsutaan kaistanleveydeksi . Ydintä, jonka indeksi on h , kutsutaan painotetuksi ytimeksi ja se määritellään nimellä . Intuitiivisesti yritetään valita h niin pieni kuin data sallii, mutta aina on valittavissa estimaattorin biasin ja sen varianssin välillä. Kaistanleveyden valintaa käsitellään tarkemmin alla.

On olemassa useita yleisimmin käytettyjä ydintoimintoja : homogeeninen, kolmiomainen, kaksipainoinen, kolmipainoinen, Epanechnikov, normaali ja muut. Epanechnikov-ydin on optimaalinen keskineliövirheen [3] mielessä , vaikka ennen sitä lueteltujen ytimien tehokkuuden menetys on pieni [4] . Kätevien matemaattisten ominaisuuksien vuoksi käytetään usein normaalia ydintä, jonka keskiarvo on , missä on standardi normaalitiheysfunktio .

Ytimen tiheysestimaatin rakentaminen löytää tulkinnan tiheysestimaatin ulkopuolelta [5] . Esimerkiksi termodynamiikassa tämä vastaa lämmön määrää, joka syntyy, kun lämpöoperaattoriytimet ( lämpöyhtälön perusratkaisut ) sijoitetaan kuhunkin datapisteeseen x i . Samanlaisia ​​menetelmiä käytetään erillisten Laplace-operaattoreiden rakentamiseen pilvipisteisiin monimuotoista oppimista varten .

Ytimen tiheysarviot liittyvät läheisesti histogrammeihin , mutta niille voidaan antaa ominaisuuksia, kuten sileys tai jatkuvuus, valitsemalla sopiva ydin. Tämän näkemiseksi verrataan histogrammin rakennetta ja ytimen tiheysarviota näissä 6 pisteessä:

yksi 2 3 neljä 5 6
-2.1 -1.3 -0.4 1.9 5.1 6.2

Histogrammissa vaaka-akseli on jaettu osaväliin, jotka kattavat tietoalueen. Tässä tapauksessa meillä on 6 palkkia, joista jokaisen pituus on 2. Kun datapiste putoaa palkin sisään, asetamme 1/12 korkeuden suorakulmion. Jos segmenttiin putoaa useampi kuin yksi piste, asetamme suorakulmiot päällekkäin.

Ytimen tiheyden arviota varten asetetaan normaali ydin, jonka varianssi on 2,25 (näkyy punaisilla katkoviivoilla) jokaiselle x i -datapisteelle . Ytimet lasketaan yhteen, jotta saadaan arvio ytimen tiheydestä (kiinteä sininen käyrä). Ytimen tiheysestimaatin tasaisuus on ilmeinen verrattuna histogrammin diskreettisyyteen, koska ytimen tiheysestimaatit konvergoivat nopeammin jatkuvien satunnaismuuttujien todelliseen taustatiheyteen [6] .

Kaistanleveyden valinta

Ytimen kaistanleveys on vapaa parametri , jolla on vahva vaikutus estimointitulokseen. Tämän vaikutuksen näyttämiseksi otamme näennäissatunnaisen näytteen tavallisesta normaalijakaumasta (näkyy sinisinä pylväinä nauhakaaviossa vaaka-akselilla). Harmaa käyrä edustaa todellista tiheyttä (normaalitiheys keskiarvolla 0 ja varianssilla 1). Vertailun vuoksi punainen käyrä ei ole tarpeeksi tasainen , koska se sisältää liian monia satunnaisia ​​piikkejä, joita esiintyy käytettäessä kaistanleveyttä h = 0,05, mikä on liian pieni. Vihreä käyrä on ylitasoitettu , koska käytetty kaistanleveys h = 2 piilottaa rakenteen merkittävästi. Mustan käyrän, jonka kaistanleveys on h = 0,337, katsotaan olevan optimaalisesti tasoitettu, koska sen tiheysestimaatti on lähellä todellista tiheyttä.

Yleisimmin käytetty optimikriteeri tämän parametrin valinnassa on odotetun häviön funktio L 2 , jota kutsutaan myös Mean Integrated Squared Error [ ] : 

Heikoilla oletuksilla funktioista ƒ ja K ( ƒ on yleensä tuntematon todellinen tiheysfunktio) [1] [2] , MISE ( h )=AMISE( h ) + o(1/(nh) + h 4 ) , missä o on "o" pieni . AMISE tarkoittaa "asymptotic MISE" (asymptotic MISE), joka koostuu kahdesta johtavasta jäsenestä

missä funktiolle g , , ja ƒ'' on funktion ƒ toinen derivaatta . Löytääkseen arvon h AMISE , jossa minimi AMISE saavutetaan, on tarpeen erottaa edellinen AMISE lauseke h :n suhteen ja saada ratkaisu seuraavasta algebrallisesta yhtälöstä [7] :

tai

AMISE:n ja h AMISEn laskentakaavoja ei voida käyttää suoraan, koska niissä on tuntematon tiheysfunktio ƒ tai sen toinen derivaatta ƒ'' , joten kaistanleveyden valintaan on kehitetty lukuisia automaattisia tietopohjaisia ​​menetelmiä. Monissa katsauksissa on verrattu näiden menetelmien suorituskykyä [8] [9] [10] [11] [12] [13] [14] yleiseen yksimielisyyteen, jonka mukaan kytkettävät näytteenottotoiminnot [5] [15] ja ristiinvalidointitoiminnot [ 16] [17] [18] ovat hyödyllisimpiä useissa eri tietosarjoissa.

Korvaamalla minkä tahansa kaistanleveyden h , jolla on sama asymptoottinen järjestys n −1/5 kuin h AMISE :llä, saadaan , jossa O  — "O" on suuri . Voidaan osoittaa, että heikoilla olettamuksilla ei voi olla ei-parametrista estimaattoria, joka konvergoi nopeammin kuin ytimen estimaattori [19] . Huomaa, että nopeus n −4/5 on pienempi kuin n − 1 parametristen menetelmien tyypillinen konvergenssinopeus .

Jos kaistanleveys ei ole kiinteä ja voi muuttua riippuen joko estimaatin koon (palloestimaattori) tai otoksen koon (pistekohtainen estimaattori) sijainnista saadaan tehokas menetelmä, jota kutsutaan adaptiiviseksi ytimen tiheyden estimointimenetelmäksi . .

Kaistanleveyden valinta ytimen tiheysestimaatille hitaasti laskevan "häntän" kanssa on suhteellisen vaikea tehtävä [20] .

Nyrkkisääntö kaistanleveyden valinnassa

Jos Gaussin perusfunktioita käytetään yksimuuttujaisen datan approksimoimiseen ja arvioitu taustatiheys on Gaussin, optimaalinen valinta h :lle ​​(eli kaistanleveys, joka minimoi keskimääräisen kertyneen neliövirheen ) on [21]

missä on näytteen keskihajonta . Approksimaatiota kutsutaan normaalijakauman approksimaatioksi , Gaussin jakaumaksi tai Silvermanin (1986) peukalosääntöksi . Vaikka tätä peukalosääntöä on laskennallisesti helppo soveltaa, sitä tulee käyttää varoen, sillä se antaa erittäin epätarkkoja arvioita, kun tiheys ei ole lähellä normaalia. Harkitse esimerkiksi bimodaalista Gaussin sekoitusestimaattia:

200 pisteen näytteestä. Oikeassa alakulmassa oleva kuva näyttää todellisen tiheyden ja kaksi ytimen tiheyden arviota - toisessa nyrkkisääntöä käyttäen ja toisessa kaistanvalintaa yhtälön [5] [15] ratkaisemisen perusteella . Peukalosääntöön perustuva arvio on liian tasoitettu. Matlab-skripti käyttää esimerkkinä kde.m :ää, ja se on annettu alla.

% Data randn ( ' siemen' , 1 ) data =[ randn ( 100 , 1 ) - 10 ; randn ( 100 , 1 ) + 10 ]; % Kahden normaalijakauman sekoitus %Totta phi =@( x ) exp ( - .5 * x .^ 2 ) / sqrt ( 2 * pi ); % normaalitiheys tpdf =@( x ) phi ( x + 10 ) / 2 + phi ( x - 10 ) / 2 ; % Todellinen tiheys % Ydin h = std ( data ) * ( 4/3 / numero ( data ) ) ^ ( 1/5 ) ; _ _ % Kaistanleveys Silvermanin peukalosääntön mukaan ydin =@( x ) keskiarvo ( phi (( x - data ) / h ) / h ); % Ydintiheys kpdf =@( x ) arrayfun ( kernel , x ); % elementti sovellukselta % tontti kuva ( 2 ), clf , pidä kiinni x = linaavaruus ( -25 , +25 , 1000 ) ; _ % Viivan tiheys kuvaaja ( x , tpdf ( x )) % Todellisen tiheyden kuvaaja plot ( x , kpdf ( x )) % Ydintiheyden kuvaaja peukalosääntöllä kde ( data ) % Ytimen tiheyskäyrä ja ratkaisu yhtälöön vyöhykkeen laskemista varten

Suhde tiheysestimaattorin ominaisfunktioon

Otos annettaessa on luonnollista arvioida ominaisfunktio as

Tuntemalla ominaisfunktion, voidaan löytää vastaava todennäköisyystiheys Fourier-muunnoskaavojen avulla . Tämän inversiokaavan soveltamisessa on yksi vaikeus, joka on se, että se johtaa divergenttiintegraaliin, koska estimaatti on epäluotettava suurelle t :lle . Tämän ongelman välttämiseksi estimaattori kerrotaan vaimennusfunktiolla , joka on 1 origossa, ja laskee sitten 0:aan äärettömässä. "Kaistanleveysparametri" h ohjaa kuinka paljon yritämme rajoittaa funktion vaihtelua . Erityisesti kun h on pieni, se on suunnilleen yhtä suuri kuin yksi suurelle t :lle , mikä tarkoittaa, että se pysyy käytännössä muuttumattomana t :n tärkeimmällä alueella .

Yleisin tapa valita funktio on joko homogeeninen funktio , joka käytännössä tarkoittaa inversiokaavan integrointivälin katkaisemista [−1/ h , 1/ h ] tai Gaussin funktio . Kun funktio on valittu, voidaan käyttää inversiokaavaa ja tiheysestimaattori on

jossa K on vaimennusfunktion Fourier-muunnos . Tällöin ytimen tiheysestimaattori on sama kuin tiheysestimaattorin ominaisfunktio.

Tilastolliset toteutukset

Epätäydellinen luettelo ohjelmistoista, jotka toteuttavat ytimen tiheyden arvioijia:

  • Analytica - julkaisussa 4.4 KDE todennäköisyystiheysfunktion Smoothing-vaihtoehtoa , ja lausekkeille vaihtoehto on käytettävissä sisäänrakennetuna Pdfominaisuutena.
  • C / C++-kielissä FIGTree on kirjasto, jota voidaan käyttää ytimen tiheysestimaatin laskemiseen normaaleilla ytimillä. MATLAB-liitäntä saatavilla.
  • C++ :ssa libagf on adaptiivisen ytimen tiheyden arvioinnin kirjasto .
  • CrimeStatissa ytimen tiheyden estimointi on toteutettu viidellä eri ytimen funktiolla - normaali, yhtenäinen, neljännen asteen funktio, negatiivinen eksponentiaalinen ja kolmio . Käytettävissä on yhden ja kahden ytimen tiheyden arviointimenettelyjä. Ytimen tiheyden estimointia käytetään myös Head Bang -interpolointimenettelyssä, 2D-matka rikokseen -tiheysfunktion arvioinnissa ja 3D Bayesin matka rikokseen -estimaattorissa.
  • ELKI- kehyksessä ytimen tiheysfunktiot löytyvät paketistade.lmu.ifi.dbs.elki.math.statistics.kernelfunctions
  • ESRI - tuotteissa ytimen tiheyskartoitus löytyy Spatial Analyst -työkalupakista, ja se käyttää neljännen asteen (painottamatonta) ydintä.
  • Royal Society of Chemistry on luonut Excel -ohjelmaa varten lisäosan ydintiheyden arvioimiseksi, joka perustuu Analytical Methods Committeen tekniseen esitykseen 4 .
  • Gnuplotissa ytimen tiheysarvio toteutetaan valinnalla smooth kdensity, datatiedosto voi sisältää painon ja kaistanleveyden jokaiselle pisteelle tai kaistanleveys voidaan asettaa automaattisesti [22] "Silvermanin peukalosääntön" mukaisesti (katso yllä).
  • Haskellissa ytimen tiheys on toteutettu tilastopaketissa .
  • IGOR Prossa ytimen tiheyden arviointi toteutetaan operaationa StatsKDE(lisätty Igor Pron versioon 7.00). Kaistanleveys voidaan määrittää tai arvioida Silvermanin, Scottin tai Bowmannin ja Azzalinin keskiarvoilla. Ydintyypit: Epanechnikov, bi-painotettu, kolmipainoinen, kolmiomainen, Gaussin ja suorakaiteen muotoinen.
  • Java-kielessä Weka - paketti sisältää muun muassa weka.estimators.KernelEstimatorin .
  • JavaScriptissä D3.js - visualisointipaketti sisältää KDE paketin science.stats-paketissa.
  • JMP - paketti voi käyttää "Jakelualustaa" 1D-ytimen tiheysestimaatin luomiseen, ja "Fit Y by X -alustaa" voidaan käyttää 2D-ytimen tiheysestimaatin luomiseen.
  • Julia -kielessä ytimen tiheyden arviointi on toteutettu KernelDensity.jl-paketissa .
  • MATLABissa ytimen tiheyden arviointi toteutetaan funktion ksdensity(Statistics Toolbox) kautta. MATLABin 2018-julkaisussa sekä kaistanleveys että ytimen tasoittaja voidaan määrittää , mukaan lukien muut vaihtoehdot, kuten ytimen tiheysrajojen määrittäminen. Vaihtoehtoisesti MATLABille on saatavana ilmainen paketti, joka toteuttaa automaattisen kaistanleveyden valinnan [5] "MATLAB Central File Exchange" -sivulta.
  • Mathematica - järjestelmässä ytimen jakauman numeerinen arviointi on toteutettu funktiona SmoothKernelDistribution tässä ja symbolinen evaluointi KernelMixtureDistribution tässä funktiolla , ja molemmat toteutukset valitsevat kaistanleveyden esitetystä tiedosta.
  • Minitab - pakettia varten Royal Society of Chemistry loi makron ydintiheyden estimointiin perustuen heidän Analytical Methods Committeen tekniseen tiedotteeseen 4 .
  • NAG -kirjastossa ytimen tiheyden estimointi toteutetaan menettelyllä (saatavilla Fortranissa [24] ja C [25] ).g10ba
  • Nuklei -kirjastossa ydintiheysmenetelmät C++ : ssa keskittyvät erityiseen euklidiseen ryhmään kuuluviin meloneihin .
  • Octave - järjestelmässä ytimen tiheyden estimointi on toteutettu ominaisuutena kernel_density(matematical Economics paketti).
  • Origin 2D -paketissa ytimen tiheyskaavio voidaan piirtää paketin käyttöliittymän avulla, ja koodit kahdelle funktiolle Ksdensity for 1D ja Ks2density for 2D voidaan ottaa LabTalkissa , Pythonissa tai C : ssä.
  • Perlissä toteutus löytyy Statistics-KernelEstimati- moduulista
  • PHP : ssä toteutus löytyy MathPHP-kirjastosta
  • Pythonissa on monia toteutuksia : pyqt_fit.kde-moduuli PyQt -Fit-paketissa , SciPy ( scipy.stats.gaussian_kdeja scipy.signal.parzen), Statsmodels ( KDEUnivariateja KDEMultivariate) ja Scikit-learn ( KernelDensity) (katso vertailu [26] ). KDEpy tukee painotettua dataa, ja FFT-toteutus on suuruusluokkaa nopeampi kuin muut toteutukset.
  • R-kielessä tämä on toteutettu kautta densityperusjakelussa , kautta KernSmooth-kirjastossa , bkdekautta AdaptGauss-kirjastossa (pareto-jakauman tiheyden arvioimiseksi), kautta ks -kirjastossa , kautta ja evmix - kirjastossa , np-kirjasto (numeerinen ja kategorinen data), kirjastossa sm . Katso kde.R kohdasta ominaisuustoteutus , joka ei vaadi paketin tai kirjaston asentamista . Kaupunkianalyysiin suunniteltu btb-kirjasto toteuttaa ytimen tiheysarvion kautta .ParetoDensityEstimationkdedkdendbckdennpudenssm.densitykde.Rkernel_smoothing
  • SAS - järjestelmässä (ohjelma) voidaan käyttää proseduuria proc kdeyksi- ja kaksiulotteisten ydintiheyden arvioimiseksi.
  • Stata -paketissa tämä on toteutettu esimerkiksi muodossa [ kdensity27]histogram x, kdensity . Vaihtoehtoisesti Statan ilmainen KDENS-moduuli on saatavilla täältä , jonka avulla voit arvioida 1D- tai 2D-tiheysfunktioita.
  • Apache Sparkissa voit käyttää luokkaa KernelDensity()(katso virallinen dokumentaatio )

Katso myös

  • Ydin (tilastot)
  • Nuclear Smoother
  • ydinregressio
  • Tiheysarvio (muiden esimerkkien kanssa)
  • Keskimääräinen vaihtomenettely
  • Monimuuttuja ytimen tiheyden arvio
  • Mukautuva ytimen tiheyden arvio

Muistiinpanot

  1. 1 2 Rosenblatt, 1956 , s. 832.
  2. 1 2 Parzen, 1962 , s. 1065.
  3. Epanetšnikov, 1969 , s. 153-158.
  4. Wand, Jones, 1995 .
  5. 1 2 3 4 Botev, Grotowski, Kroese, 2010 , s. 2916–2957.
  6. Scott, 1979 , s. 605–610.
  7. V. A. Epanetšnikov, "Moniulotteisen todennäköisyystiheyden ei-parametrinen estimointi", Teor. Veroyatnost. ja sen sovellus, 14:1 (1969), 156–161; Teoria Probab. Appl. 14:1 (1969), 153–158 . www.mathnet.ru _ Haettu: 31.1.2022.
  8. Park, Marron, 1990 , s. 66–72.
  9. Park, Turlach, 1992 , s. 251-270.
  10. Cao, Cuevas, Manteiga, 1994 , s. 153-176.
  11. Jones, Marron, Sheather, 1996 , s. 401–407.
  12. Sheather, 1992 , s. 225-250, 271-281.
  13. Agarwal, Aluru, 2010 , s. 575–597.
  14. Xu, Yan, Xu, 2015 , s. 28–37.
  15. 1 2 Sheather, Jones, 1991 , s. 683–690.
  16. Rudemo, 1982 , s. 65–78.
  17. Bowman 1984 , s. 353-360.
  18. Hall, Marron, Park, 1992 , s. 1–20.
  19. Wahba, 1975 , s. 15-29.
  20. Buch-Larsen, 2005 , s. 503–518.
  21. Silverman, 1986 , s. 48.
  22. Janert, 2009 , s. kohta 13.2.2.
  23. Horová, Koláček, Zelinka, 2012 .
  24. Numeeristen algoritmien ryhmän NAG-kirjaston rutiiniasiakirja: nagf_smooth_kerndens_gauss (g10baf) . NAG Library Manual, Mark 23 . Haettu: 16. helmikuuta 2012.
  25. Numeeristen algoritmien ryhmän NAG-kirjaston rutiiniasiakirja: nag_kernel_density_estim (g10bac) (downlink) . NAG Library Manual, Mark 9 . Käyttöpäivä: 16. helmikuuta 2012. Arkistoitu alkuperäisestä 24. marraskuuta 2011. 
  26. Vanderplas, Jake Ytimen tiheyden arviointi Pythonissa (1. joulukuuta 2013). Haettu: 12. maaliskuuta 2014.
  27. https://www.stata.com/manuals13/rkdensity.pdf

Kirjallisuus

Linkit