Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Zdravíčko, mám následující data set G hodnot x "kolikátý den spadl v lese strom":
{4,4,4,4,4,10,20,22,55,55,55, 80, 90}
Událost se stala 4. den pětkrát, pak se stala desátý den, následně 20.den, potom 22. , potom 55., potom 55., potom 55., ( 55.den celkem 3x), 80.den.... Dny si označím x. Na počátku bylo nula spadlých stromů.
Například jde o záznam, kdy spadl strom v lese.
Nyní přejdu k pravděpodobnosti a statistice (polo diskrétní)
Udělat kumulativní graf je celkem jednoduché CDF(x): prostě z přiřadí tomu monotóní pole y=počet spadlých stromů (čili vytvořím pole hodnot počet spadlých stromů:den {0:1,1:4,2:4,3:4,4:4,5:4,6:10,7...20,
z toho následně se vytvoří graf {y:x}= {posloupnost přirozených čísel : G} ... pravděpodobně srozumitelnější zapisovat {x:y}: {1:0,4:1,4:2,....} ... Už tady je vidět že sada nesplňuje podmínku funkce, že existují více hodnot x s různou hodnotou y (jeden den, spadlo víc stromů)
Ale celkem zapeklité je udělat "graf derivace" předchozího - čili pravděpodobnostně řečeno derivovat kumulativní funkci, abych získal graf hustoty pravděpodobnosti p(x)=∂CDF(x)/∂x. S zvoleným způsobem hladkosti. Důležité je, aby c·∫p(x)dx=1 = c . ( CDF(poslední den)-CDF(nultý den) )... konstanta c je například celkový počet spadlých stromů a CDF(poslední den) je jedna značící všechny padlé stromy (ne nutně všechny stromy)
Hlavní potíž je v tom, že v "derivační" proměnná x (diskrétní), je proměnlivá (krok diference je proměnnlivý) a že nabývá víc hodnot pro jedno Y.
Jak správně datovou tabulku transformovat a případně jaký filtr aplikovat na hodnoty, aby šel vynést graf četnosti ("frekvence", "hustoty pravděpodobnosti") pádu stromů?
naivní přístup vytvoření množiny G' pomocí rozdílů mezi sousedními členy G je k ničemu. Dává úplný nesmysl. Udává pouze kolik dní uběhlo mezi pádem stromu. (často se stane, že rozdíl je nula, takže ani reciproká hodnota nepřipadá v úvahu)...
jiný přístup je použít již zmíněné pole {y:x} neboli {x:y} a vytvořit diferenci v hodnotách x (den), vyškrtat prvky {x:y}, kde x=0 (dny, kdy spadlo víc stromů) - čili jinými slovy vytvořit {x:count(x)} unikátní v x.
Furt ale když si udělám graf, tam vidím ošklivé skoky (nebo nulové hodnoty), jakou zvolit interpolaci nebo jaký filtr aplikovat na data, aby graf byl hladký a zároveň "zachovávál plochu pod integrálem"?
Offline
Poněkud se v tom tvém popisu ztrácím, ale nehledáš náhodou https://en.wikipedia.org/wiki/Kernel_density_estimation ?
Offline
Vypadá to podle kapitoly Example že ano, díky ,vůbec jsem nevěděl pod čím to hledat.
Přítomnost takovéto funkce v "Excelu" je asi vyloučena... Důležité je, že to je v scipy (případně mathematica, R a podo.)
Trochu ale nesedí, že má jít odhad pravděpodnostního rozdělení nějaké náhodné proměnné. Já ale nemám náhodnou proměnnou, já mám sérii eventů v čase (ne v konkrétní D/M/Y H:M:S, ale pouze D/M/Y), takže vlastně agregací množiny (něco jako {x_i} : {x_i :count(x_i)}) zjistím počet eventů za den. To není hledání nějakého rozdělení náhodné veličiny, ale pokus "vyhladit" křivku - aproximovat funkcí y(t), že čas t již bude spojitý.
Má to s tím společného ten bandwidth parameter, očividně méně než 1 den nemá smysl, což je "kvantizační krok" času.
Cílem je aby křivka byla "akorát vyhlazená", ale ne moc. A především aby se zachoval integrál z té rozdělovací funkce (až na konstantu se rovnal počtu prvků zdrojové množiny {4,4,4,10,20,22,55,55...} nebo součtu agregované množiny {4.1. : 3x, 10.1. -> 1x, 20.1. ->10x})
Offline
Stránky: 1