Kysymys:
Jakautuminen, jonka alue on välillä 0–1 ja jonka välillä on huippu?
Stan Callewaert
2017-11-28 20:46:37 UTC
view on stackexchange narkive permalink

Onko olemassa jakelua vai voinko työskennellä toisesta jakelusta luodakseni samanlaisen jakelun kuin alla olevassa kuvassa (anteeksi virheellisten piirustusten vuoksi)?

distribution jossa annan luvun (esimerkeissä 0,2, 0,5 ja 0,9) piikin sijainnin ja keskihajonnan (sigma), joka tekee toiminnosta leveämmän tai vähemmän leveän.

P.S .: Kun annettu luku on 0,5, jakauma on normaalijakauma.

https://en.wikipedia.org/wiki/Beta_distribution
Huomaa, että tapaus 0,5 ei olisi normaalijakauma, koska normaalijakauman alue on $ \ pm \ infty $
Jos otat kuvasi kirjaimellisesti, niin ei näytä siltä, että se näyttää tältä, koska alue on kaikissa tapauksissa ehdottomasti pienempi kuin 1. Jos aiot rajoittaa tuen arvoon "[0,1]", et voi rajoittaamyös PDF: n väli arvoon "[0,1]" (muu kuin triviaalissa yhtenäisessä tapauksessa).
Viisi vastused:
Tim
2017-11-28 20:57:59 UTC
view on stackexchange narkive permalink

Yksi mahdollinen valinta on beetajakauma, mutta parametroidaan uudelleen keskimääräisen $ \ mu $ ja tarkkuuden $ \ phi $ suhteen, ts. "kiinteälle" $ \ mu $, mitä suurempi on $ \ phi $: n arvo, sitä pienempi varianssi on $ y $ "(katso Ferrari ja Cribari-Neto, 2004). Todennäköisyystiheysfunktio rakennetaan korvaamalla beetajakauman vakioparametrit $ \ alpha = \ phi \ mu $ ja $ \ beta = \ phi (1- \ mu) $

$$ f (y) = \ frac {1} {\ mathrm {B} (\ phi \ mu, \; \ phi (1- \ mu))} \; y ^ {\ phi \ mu-1} (1-y) ^ {\ phi (1- \ mu) -1} $$

missä $ E (Y) = \ mu $ ja $ \ mathrm {Var} (Y) = \ frac {\ mu (1- \ mu)} {1+ \ phi} $.

Vaihtoehtoisesti voit laskea sopivat $ \ alpha $ ja $ \ beta $ -parametrit, jotka johtavat beeta-jakautumiseen ennalta määritetyllä keskiarvolla ja varianssilla. Huomaa kuitenkin, että beeta-jakaumalle on rajoituksia mahdollisille varianssiarvoille. Minulle henkilökohtaisesti parametrisointi tarkkuudella on intuitiivisempi (ajattele $ x \, / \, \ phi $ -prosentteja binomisesti hajautetussa $ X $, näytekoko $ \ phi $ ja todennäköisyys menestys $ \ mu $).

Kumaraswamy-jakelu on toinen rajattu jatkuva jakauma, mutta olisi vaikeampi parametroida uudelleen kuten yllä.

Kuten muut ovat huomanneet, se ei ole ei normaalia, koska normaalijakelulla on $ (- \ infty, \ infty) $ -tuki, joten parhaimmillaan voit käyttää katkaistua normaalia arvioina.

Ferrari, S., & Cribari-Neto, F. (2004). Beetaregressio mallinnusnopeuksille ja mittasuhteille. Journal of Applied Statistics, 31 (7), 799-815.

Pidän vastauksestasi, olen rakentanut siitä joitain kaavioita.Ainoa ongelma minulla on, että en näytä pystyvän hallitsemaan leveyttä (sigma käyrän normaalijakaumassa).Haluaisin saada kaavan, joka laskee phi-arvon, kun tietty sigma-arvo annetaan.Minulla on ongelma, että käyrä kääntyy ylösalaisin tai muodostaa oudon muodon, se on käytös, jonka haluan välttää.
Lyhyesti sanottuna: Haluaisin antaa funktiolle mu ja sigman ja saada sitten jakauman, joka on leveä, kun sigma on iso ja ohut (mutta ei käännä ylösalaisin tai osoittaa outoa käyttäytymistä), kun sigma on pieni.
Tarkkuus ja keskihajonta liittyvät: $ \ phi = \ mu (1- \ mu) / \ sigma ^ 2 - 1 $.Beeta-jakelu on myös yksimuotoista (ei näytä outoa käyttäytymistä), kun $ \ alpha $ ja $ \ beta $ ovat suurempia kuin 1. Tämä tarkoittaa, että kun $ \ mu = 1/2 $, sinun on valittava $ \ phi>2 $ tai vastaavasti $ \ sigma <0,707 $.
Toinen mainittava asia on, että voit tietysti käyttää beetajakaumien seoksia, jos yksittäinen beetajakauma ei ole tarpeeksi joustava.
@knrumsey Olen käyttänyt samaa kaavaa phi: lle, ainoa ongelma, joka minulla näyttää olevan, on se, että kun sigma on iso luku, phista tulee negatiivinen luku, mikä tarkoittaa, että alfasta tulee myös negatiivinen luku.Alfa ei voi olla negatiivinen Wikipedian mukaan.Onko tähän ratkaisu?
Sinulla on jakelu, joka tukee yksikön aikaväliä.Kiinteälle $ \ mu $: lle on suurin mahdollinen varianssi.
Mikä tarkoittaa, että jakelu ei voi olla yksimuotoinen pienille muille, ja siksi tämä toiminto ei ole toteuttamiskelpoinen ratkaisu ongelmaan
user137329
2017-11-28 20:49:27 UTC
view on stackexchange narkive permalink

Kokeile beeta-jakelua, sen alue on 0: sta 1. Oletko kokeillut tätä vielä? Keskimääräinen arvo on $ \ frac {\ alpha} {(\ alpha + \ beta)} $

Näyttää erittäin mielenkiintoiselta, mutta miten voin muuntaa numeroni (huippuarvoni) ja sigmani alfa- ja beeta-arvoiksi?
Etsi vain wikipediasta ... se on kahden parametrin jakauma.Näiden kahden välillä he voivat virittää huippuarvosi (ylimääräisellä vapausasteella).
Bill
2017-11-29 02:52:42 UTC
view on stackexchange narkive permalink

Muutan luomakseni tällaisen muuttujan. Aloita satunnaismuuttujalla x, jolla on tuki koko todelliselle riville (kuten normaalille), ja muunna se sitten uudeksi satunnaismuuttujaksi $ y = \ frac {exp (x)} {1 + exp (x)} $. Presto, sinulla on satunnaismuuttuja, joka on jaettu yksikköintervallille. Koska tämä muutos on lisääntymässä, voit siirtää y: n keskiarvoa / mediaania / tilaa siirtämällä x: n keskiarvoa / mediaania / tilaa. Haluatko tehdä $ y $: sta enemmän hajautettua (esimerkiksi kvartiilien välisen alueen suhteen)? Tee vain $ x $ enemmän hajallaan.

Funktiossa $ \ frac {exp (x)} {1 + exp (x)} $ ei ole mitään erityistä. Mikä tahansa kumulatiivinen jakautumistoiminto tuottaa uuden satunnaismuuttujan, joka on määritelty yksikköintervallille.

Joten mikä tahansa satunnainen muuttuja, joka on muunnettu kytkemällä se mihin tahansa cdf: hen ($ y = F (x) $), tekee mitä haluat --- tekee rv: n. jakautuu yksikköintervallille, jonka ominaisuuksia voit mukauttaa mukavasti säätämällä muuntamattoman satunnaismuuttujan parametreja intuitiivisella tavalla. Niin kauan kuin $ F () $ on tiukasti yksitoikkoinen, muunnettu muuttuja näyttää monella tapaa muuntamattomalta. Haluat esimerkiksi, että $ y $ on yksimodaalinen satunnaismuuttuja yksikön aikavälillä. Niin kauan kuin $ F () $ kasvaa tiukasti ja $ x $ on yksimuotoinen, saat sen. $ X $: n mediaanin / keskiarvon / tilan lisääminen kasvattaa $ y $: n mediaani / keskiarvo / -tilaa. Kvartiilien välisen $ x $ -välin lisääminen (siirtämällä 25. prosenttipistettä alaspäin ja 75. prosenttipiste ylöspäin) lisää kvartiilien välistä aluetta $ y $. Tiukka yksitoikkoisuus on mukava asia.

Kaavaa $ y $: n keskiarvon ja sd: n laskemiseksi ei ehkä ole helppo löytää, mutta juuri siihen tarkoitetaan Monte Carlon simulaatioita. Saadaksesi suhteellisen kauniita jakeluita, kuten piirtämäsi, haluat, että $ x $ ja $ F () $ ovat jatkuvia satunnaismuuttujia (jatkuvien satunnaismuuttujien cdf) ja tuet todellisella rivillä.

Stan Callewaert
2017-11-29 22:15:07 UTC
view on stackexchange narkive permalink

Jos joku on kiinnostunut ratkaisusta, jota käytin Pythonissa tuottaakseni parametrille satunnaisen arvon, joka on lähellä annettua lukua. Ratkaisuni on olemassa neljässä vaiheessa. Jokaisessa vaiheessa mahdollisuus, että luotu luku on lähempänä annettua lukua, on suurempi.

Tiedän, että ratkaisu ei ole yhtä kaunis kuin yhden jakelun käyttö, mutta näin pystyin ratkaisemaan ongelmani:

numero_tehdas.py:

  tuoda satunnaisesti
tuo numerotunnus nimellä np

luokka NumberFactory:
    def __init __ (itse):
        self.functions = [itse .__ lineaarinen, itse .__ eksponentiaalinen_pisteen neljä, itse.
        itse. vaihe = 0

    def next_stage (itse):
        itse. vaihe + = 1

    def get_mutated_number (itse, numero):
         # Tosi, jos luotu luku on suurempi kuin annettu luku
         # Väärin, jos luotu luku on pienempi kuin annettu luku
        add = bool (np.satunnainen.valinta ([0,1], p = [numero, 1-numero]))

        # Luo luku välillä 0 ja 1, jota käytetään
        # kerrotaan uusi luku, jolla numero-parametri vähennetään tai lisätään
        # Mitä suurempi vaiheluku (0-3), sitä enemmän muutosta on, että mutatoitu luku on lähellä numeroparametriä
        kerro_numero_siemenet = satunnainen. yhtenäinen (0, 1)
        moninkertaistaa_luku = itsetoiminnot [oma vaihe] (kerro_numero_siemenet)

        jos (lisää):
            palautusluku + ((1-numero) * kerro_numero)
        muu:
            paluuluku- (numero * kerro_numero)

    def __lineaarinen (itse, x):
        paluu -x + 1

    def __exponential_point_four (itse, x):
        paluu 0,4 * x ** 2 - 1,4 * x + 1

    def __exponential_point_three (itse, x):
        paluu 0,8 * x ** 2 - 1,8 * x + 1

    def __exponential_point_twenty_five (itse, x):
        paluu x ** 2 - 2 * x + 1

    def get_stage (itse):
        palaa itse. vaihe
 

main.py:

  tuo matplotlib.pyplot plt: ksi
tuo numerotunnus nimellä np

tehdas = NumberFactory ()
numerot = []

factory.next_stage ()
factory.next_stage ()
factory.next_stage ()

_ alueella (100000):
    numerot. liitä (tehdas.muutettu_numero (0.3))

astiat = 100

plt.hist (numerot, lokerot, normattu = True)
plt.plot (1, np.ones_like (lokerot))
plt.show ()
 

Tämän koodin suorittamisen tulos näkyy alla olevassa kuvassa: Graph

Roger Hill
2017-11-29 23:20:37 UTC
view on stackexchange narkive permalink

Haluat ehkä tarkastella Johnson-käyriä.Katso N.L.Johnson: Taajuuskäyrien järjestelmät, jotka on luotu käännösmenetelmillä.1949 Biometrikan osa 36 s. 149-176.R tukee niiden sovittamista mielivaltaisiin käyriin.Erityisesti hänen SB (rajoitetut) käyrät voivat olla hyödyllisiä.

Käytin niitä 40 vuotta, mutta ne olivat tuolloin minulle erittäin hyödyllisiä, ja luulen, että ne toimivat sinulle.



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...