Výpočet optimálního počtu košů v histogramu

Mám zájem o nalezení co nejoptimálnější metody pro určení počtu košů, které bych měl použít v histogram. Moje data by se měla pohybovat maximálně od 30 do 350 objektů, zejména se snažím aplikovat prahování (jako Otsuova metoda), kde „dobré“ objekty, kterých bych měl mít méně a měly by být více rozprostřeny, jsou odděleny od „špatných“ objektů, které by měly mít vyšší hustotu. Konkrétní hodnota by měla pro každý objekt skóre 1-10. Měl jsem 5-10 objektů se skóre 6-10 a 20-25 objektů se skóre 1-4. Chtěl bych najít vzor binování histogramu, který obecně umožňuje něco jako Otsuova metoda prahovat nad objekty s nízkým skóre. Avšak při implementaci Otsu, kterou jsem viděl, byla velikost přihrádky 256 a často mám mnohem méně datových bodů než 256, což podle mě naznačuje, že 256 není dobré číslo přihrádky. Jaké přístupy mám při tak malém počtu údajů použít k výpočtu počtu přihrádek, které se mají použít?

Komentáře

  • Myslím, že Sturges iv id = “ Pro n < 200 lze použít pravidlo 96ad172fb5 „>

; kde n je počet pozorování

odpověď

Pravidlo Freedman-Diaconis je velmi robustní a v praxi funguje dobře. Šířka bin je nastavena na $ h = 2 \ times \ text {IQR} \ times n ^ {- 1/3} $ . Počet košů je tedy $ (\ max- \ min) / h $ , kde $ n $ je počet pozorování, max je maximální hodnota a min je minimální hodnota.

V základním R můžete použít:

 hist(x, breaks="FD")  

U jiných vykreslovacích knihoven bez této možnosti (např. ggplot2) můžete vypočítat šířku bin jako:

 bw <- 2 * IQR(x) / length(x)^(1/3) ### for example ##### ggplot() + geom_histogram(aes(x), binwidth = bw)  

komentáře

  • @nico. Výchozí hodnota v R je break = “ Sturges „, která ne vždy přináší dobré výsledky.
  • Jak se dá vypočítat IQR?
  • @KurtMueller IQR znamená mezikvartilní rozsah. Podívejte se na 1. kvartil a 3. kvartil a rozdíl je IQR. IQR již přichází s R, takže jej můžete použít.
  • Pokud se nemýlím, odpověď by měla znít num_bins <- diff(range(x)) / (2 * IQR(x) / length(x)^(1/3))
  • nclass.FD před devíti lety neexistoval.

Odpověď

Pokud používáte příliš málo přihrádek, histogram opravdu nevykresluje data velmi dobře. Pokud máte příliš mnoho přihrádek, získáte rozbitý vzhled hřebenu, který také nedává smysl pro distribuci.

Jeden řešením je vytvořit graf, který ukazuje každou hodnotu. Buď tečkovaný graf, nebo kumulativní rozdělení kmitočtů, které nevyžadují žádné přihrádky.

Pokud chcete vytvořit rozložení kmitočtů se stejně rozmístěnými přihrádkami, musíte se rozhodnout, kolik přihrádek (nebo šířku) každého z nich). Rozhodnutí jasně závisí na počtu hodnot. Pokud máte spoustu hodnot, bude váš graf vypadat lépe a bude informativní, pokud máte spoustu košů. Toto stránka wikipedia uvádí několik metod pro rozhodování o šířce koše z počtu pozorování. Nejjednodušší metodou je nastavit počet košů rovný druhé odmocnině z počtu hodnot, které binujete.

Tato stránka od Hideaki Shimazaki vysvětluje alternativní metodu. Výpočet je trochu složitější, ale zdá se, že odvádí skvělou práci. Horní část stránky je aplikace Java. Přejděte kolem ní, abyste viděli teorii a vysvětlení, pak pokračujte v posouvání a vyhledejte odkazy na dokumenty, které vysvětlují metodu.

Komentáře

Odpověď

Možná příspěvek „ Zajímavé budou varianty histogramu „od Denby a Mallows:

Tato nová obrazovka, kterou nazýváme“ dhist „(pro úhlopříčku) -cut histogram) zachovává žádoucí vlastnosti hist o stejné šířce i hist o stejné ploše. Pokud jsou v datech špičky, zobrazí se vysoké úzké přihrádky, jako je ea hist, a zobrazí izolované odlehlé hodnoty, jako je obvyklý histogram.

Zmiňují se také tento kód v R je k dispozici na vyžádání.

Odpověď

Viděli jste Metoda Shimazaki-Shinomoto ?

Ačkoli se to zdá být výpočetně nákladné, může vám přinést dobré výsledky. Stojí za to to zkusit, pokud výpočetní čas není vaším problémem.Některé implementace této metody jsou v java, MATLAB atd. V následujícím odkazu, který běží dostatečně rychle: webové rozhraní

Komentáře

Odpověď

Nejsem si jistý, zda se to počítá jako přísně dobrá praxe, ale mám tendenci vytvářet více než jeden histogram s různými šířkami přihrádky a vybrat histogram, na který má histogram použití na základě kterého histogramu odpovídá interpretaci, kterou se snažím komunikovat nejlépe. I když to vnáší určitou subjektivitu do výběru histogramu, odůvodňuji to na základě toho, že jsem měl mnohem více času na pochopení dat než osoba, které histogram dávám, takže jim musím dát velmi stručnou zprávu.

Jsem také velkým fanouškem prezentace histogramů se stejným počtem bodů v každém zásobníku, než se stejnou šířkou zásobníku. Obvykle mi připadá, že tato data představují mnohem lépe než konstantní šířku koše, i když je obtížnější je vyrobit.

Komentáře

  • omlouvám se, měl jsem zmínit, že to musím udělat automatizovaným způsobem. možnost “ dělat to několikrát, dokud nenajdu ten, který nejlépe vyhovuje mému účelu “ won ‚ nepracuji pro mě. musí být provedeno výpočetně …
  • souhlasím – myšlenka, že existuje jeden “ optimální “ bin šířka je obrovský zjednodušující předpoklad.

Odpověď

Pokud potřebuji programově určit počet přihrádek, obvykle začněte s histogramem, který má mnohem více zásobníků, než je potřeba. Jakmile je histogram vyplněn, pak kombinuji koše, dokud nebudu mít dostatek záznamů na koš pro metodu, kterou používám, např. pokud chci modelovat Poissonovy nejistoty v počítacím experimentu s nejistotami z normálního rozdělení, dokud nebudu mít více než něco jako 10 záznamů.

Odpovědět

Tuto odpověď považujte za doplňkovou pana Odpověď Roba Hyndmana .

Za účelem vytvoření histogramových grafů s přesně stejnými intervaly nebo „binwidths“ pomocí pravidla Freedman – Diaconis buď se základním balíkem R nebo ggplot2, můžeme použít jedno hodnot funkce hist() a to breaks. Předpokládejme, že chceme vytvořit histogram qsec z mtcars dat pomocí pravidla Freedman – Diaconis. V základním R používáme

x <- mtcars$qsec hist(x, breaks = "FD") 

Mezitím v ggplot2 balíček, který používáme

h <- hist(x, breaks = "FD", plot = FALSE) qplot(x, geom = "histogram", breaks = h$breaks, fill = I("red"), col = I("white")) 

Nebo alternativně

ggplot(mtcars, aes(x)) + geom_histogram(breaks = h$breaks, col = "white") 

Všichni generují histogramové grafy s přesně stejnými intervaly a počtem košů, jak bylo zamýšleno.

Odpověď

I mít 600 pozorování pro Au g / t. Velikost koše 1 mi dává toto: zde zadejte popis obrázku

Automatický výběr (vynechejte rozsah přihrádky) dává toto: zde zadejte popis obrázku

Data vypadají v prvním a druhém grafu jako O „K, jako by není problém s integritou dat. Na otázku odpovídá pouze velikost koše 0,1 (g / t): měření byla nepřesná a nepřesná zde zadejte popis obrázku

Můj úsudek: 1. Existuje žádná měřicí technika na Zemi, která by ukazovala skutečnou hodnotu přírodního jevu. Všechna měření jsou přibližná, některá se blíží skutečné hodnotě. Závisí to na designu vzorkování, kalibraci, lidské kvalifikaci atd. 2. Proto je distribuce spíše zkreslená než symetrická. 3. Tvar distribuce by měl alespoň přibližně vypadat jako „zvonovitý“ úsek. Jeden zvon najednou (pokud zde není několik geologických prostředí). 4. Distribuce frekvence s manipulací s velikostí koše může pomoci odhalit vzor o tom, jak přesné a přesné bylo měření provedeno. Aby člověk potřeboval spíše experimentální vyzvednutí velikosti přihrádky, než pravidlo vyříznuté na kameni.

Komentáře

  • Jedná se spíše o komentář než o Odpověz, pokud nebudeš vysvětlovat morálku. Já ‚ říkám, že morální je toto: Všechna pravidla jsou běžnými pravidly, některá mají statističtější základ než ostatní, ale většina pravidel nemusí dělat to, co si přejete, pokud mají distribuce velmi vysokou šikmost nebo špičatost. Použijte tedy také svůj úsudek.
  • Přidali jste komentáře, ale není mi jasné, že by nějaké přispěly k vláknu užitečnými novými podrobnostmi. 1.je v pořádku, ale ne problém zde. 2. nevyplývá ‚ z 1., protože některá rozdělení jsou téměř symetrická. 3. je pochybný: existuje mnoho situací, kdy se očekávají jiné tvary než zvony. 4. je také pochybná, protože kvalita původních měření často není patrná z žádného histogramu, ale často je nejlépe ji zkoumat s důrazem na velmi jemnou strukturu distribuce.
  • 2. Téměř symetrická není symetrická. Nemůžete být téměř těhotná: buď těhotná, nebo ne.
  • Jistě, ale přesná symetrie v datech je tak velmi vzácná, že kdybych řekl “ symetrické “ někdo by proti tomu mohl také rozumně namítnout. ‚ Je velmi snadné být téměř symetrický; proto a jak máme opatření skewness.
  • Všimněte si, ale váš komentář byl obecný a postrádal kontext, který nyní dáváte. Na oplátku jsem řekl “ pochybné “ ne “ špatně „. Mým hlavním komentářem zůstává, že vaše odpověď ‚ t do vlákna příliš nepřidává, jak zvolit velikost přihrádky nebo ekvivalentní počet přihrádek. Další příklad, ve kterém je to ‚ obtížné, je otočením otázky, nikoli skutečnou odpovědí.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *