Skip to content
Jidian Stone
  • Home
  • / Articles
  • /
  • provtagning från normalfördelningen med Box-Muller Transform

provtagning från normalfördelningen med Box-Muller Transform

augusti 14, 2021Articles
X
  • Sekretess & Cookies
  • en snabb genomgång av kartesiska och polära koordinater.
  • Rita normalt distribuerade prover med Box-Muller transform
  • inslagning upp

Sekretess & Cookies

denna webbplats använder cookies. Genom att fortsätta godkänner du deras användning. Läs mer, inklusive hur du kontrollerar cookies.

Fick Det!

annonser

normalfördelningen är arbetshästen för många vanliga statistiska analyser och att kunna dra prover från denna distribution ligger i hjärtat av många statistiska/maskininlärningsalgoritmer. Det har funnits ett antal metoder som utvecklats för att ta prov från normalfördelningen inklusive invers Transformationsprovtagning, Ziggurat-algoritmen och Förhållandemetoden (en avstötningsprovtagningsteknik). I det här inlägget kommer vi att fokusera på en elegant metod som kallas Box-Muller transform.

en snabb genomgång av kartesiska och polära koordinater.

innan vi kan prata om att använda Box-Muller-transformationen, låt oss uppdatera vår förståelse för förhållandet mellan kartesiska och polära koordinater. Du kanske kommer ihåg från geometri att om x och y är två punkter i det kartesiska planet kan de representeras i polära koordinater med en radie r och en vinkel \theta med följande relationer:

 r^2 = x^2 + y^2

\tan (\theta) = \ frac{y}{x}, och därför

 x = r \ cos(\theta)

y = r \ sin (\theta)

Observera att om  r \ leq 1 och \theta \i , kartlägger vi värden som finns i enhetscirkeln, som visas i figuren nedan. Observera också att slumpmässiga variabler i en sådan cirkel kan genereras genom att omvandla värden som samplas från den enhetliga fördelningen. Specifikt kan radier samplas från  r \ sim Unif(0,1) och vinkel kan samplas från \theta \sim 2\pi \gånger Unif (0,1). En liknande mekanism (dvs. ritningspunkter i en cirkel med enhetliga variabler) är kärnan i Box-Muller-transformationen för provtagning av normala slumpmässiga variabler.

exempel på förhållandet mellan kartesiska och polära koordinater

Rita normalt distribuerade prover med Box-Muller transform

Ok, nu när vi har diskuterat hur kartesiska koordinater representeras i polära koordinater, låt oss gå vidare till hur vi kan använda detta förhållande för att generera slumpmässiga variabler. Box-Muller provtagning baseras på att representera den gemensamma fördelningen av två oberoende standard normala slumpmässiga kartesiska variabler X och Y

X \ sim N(0,1)

y \ sim N(0,1)

i polära koordinater. Den gemensamma fördelningen  p (x, y) (som är cirkulär-symmetrisk) är:

 p (x, y) = p(x)p (y) = \frac{1} {\sqrt{2 \ pi}} e^{- \frac{x^2}{2}} \ frac{1} {\sqrt{2\pi}}e^{-\frac{y^2}{2}}

= \frac{1}{2 \ pi}e^{- \frac{x^2 + y^2}{2}}

om vi märker attx^2 + y^2 termen i exponentens täljare är lika med r^2(som ovan) kan vi göra sambandet mellan den kartesiska representationen av den gemensamma normalfördelningen och dess polära representation:

 p (x, y) = \ vänster (\frac{1}{2 \ pi} \ höger ) \ vänster (e^{\frac {- r^2}{2}} \ höger )

vilket är produkten av två densitetsfunktioner, en exponentiell fördelning över kvadrerade radier:

r^2\sim Exp (\frac{1}{2})

och en jämn fördelning över vinklar:

\theta \ sim Unif (0,2 \ pi)

precis som de som nämns ovan när du genererar punkter på enhetscirkeln. Om vi nu gör en annan koppling mellan den exponentiella fördelningen och den enhetliga fördelningen, nämligen det:

 Exp (\lambda) = \frac {- \log(Unif (0,1))} {\lambda}

sedan  r \ sim \sqrt{-2\log (Unif(0,1))}

detta ger oss ett sätt att generera poäng från den gemensamma gaussiska fördelningen genom provtagning från två oberoende enhetliga fördelningar, en för r och en annan för \theta och omvandla dem till kartesiska koordinater via relationerna ovan. I detalj går proceduren enligt följande:

  1. Rita,  u_1, u_2 \ sim Unif(0,1)
  2. omvandla variablerna till radie och vinkelrepresentation  r = \ sqrt{-2 \ log (u_1)} och \theta = 2\pi u_2
  3. omvandla radie och vinkel till kartesiska koordinater: x = r \cos(\theta), y = r \sin (\theta)

vilka resultat är två oberoende normala slumpmässiga variabler, X och Y. En Matlab-implementering av Box-Muller-algoritmen visas nedan:

% NORMAL SAMPLES USING BOX-MUELLER METHOD% DRAW SAMPLES FROM PROPOSAL DISTRIBUTIONu = rand(2,100000);r = sqrt(-2*log(u(1,:)));theta = 2*pi*u(2,:);x = r.*cos(theta);y = r.*sin(theta);% DISPLAY BOX-MULLER SAMPLESfigure% X SAMPLESsubplot(121);hist(x,100);colormap hot;axis squaretitle(sprintf('Box-Muller Samples Y\n Mean = %1.2f\n Variance = %1.2f\n Kurtosis = %1.2f',mean(x),var(x),3-kurtosis(x)))xlim()% Y SAMPLESsubplot(122);hist(y,100);colormap hot;axis squaretitle(sprintf('Box-Muller Samples X\n Mean = %1.2f\n Variance = %1.2f\n Kurtosis = %1.2f',mean(y),var(y),3-kurtosis(y)))xlim()

Box-Muller-prover för normalfördelning

inslagning upp

utmatningen från MATLAB-koden visas ovan. Lägg märke till att de första, andra och fjärde centrala momenten (medelvärde, varians och kurtos) för de genererade proverna överensstämmer med standardnormalen. Box-Muller Trans är ett annat exempel på hur enhetliga variabler på intervallet (0,1) och kan transformeras för att ta prov från en mer komplicerad fördelning.

annonser

Write a Reply or Comment Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Senaste inläggen

  • Calcific trochanteric bursit: upplösning av förkalkningar och klinisk remission med icke-invasiv behandling. En fallrapport
  • bildörr ljuddämpning
  • utveckling av allergier: dold risk för syre
  • Byggnadschef arbetsbeskrivning
  • Mozzarella och tomat Caprese Flatbread
  • vanilj brunt socker Scrub recept! {DIY Body Scrub}
  • det här är när din Canker öm Är något mer allvarligt
  • 5 Saker din kamera kan göra som din Smartphone kanske inte kan göra

Arkiv

  • februari 2022
  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021
  • augusti 2021
  • juli 2021
  • juni 2021
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • NorskNorsk
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語
  • 한국어한국어

Copyright Jidian Stone 2022 | Theme by ThemeinProgress | Proudly powered by WordPress