Formula di Doane per il binning dell'istogramma


9

Sto implementando vari algoritmi per stimare il miglior numero di bin da utilizzare per gli istogrammi. La maggior parte di quelli che sto implementando sono descritti nella pagina "Istogramma" di Wikipedia nella sezione " Numero di bin e larghezza " *.

Sono bloccato su un problema con la formula di Doane:

1 + log(n) + log(1 + kurtosis(data) * sqrt(n / 6.))

dov'è nla dimensione dei dati.

Il problema è quando la curtosi è negativa e n >> 1perché l'argomento del logdiventa negativo.

* (quella pagina è cambiata da quando è stata pubblicata, collegamento modificato per puntare alla pagina come era al momento della pubblicazione)


1
Sai se quella formula usa la curtosi o la curtosi in eccesso (cioè la dist normale ha 4 o 0)?
Peter Flom

@PeterFlom: nel documento originale ( amstat.tandfonline.com/doi/pdf/10.1080/00031305.1976.10479172 ) la curtosi è definita come l'asimmetria, ma non sono esperto. Il documento originale è anche abbastanza diverso dalla formula di Wikipedia
Ruggero Turra

1
Errr, cosa? La curtosi è definita come l'asimmetria? Non ha senso; sono molto diversi. Non riesco ad accedere al documento, ma sembra che qualcosa sia incasinato da qualche parte.
Peter Flom

@PeterFlom La distribuzione normale dovrebbe avere una curtosi di 3 e non di 4.
Glen_b -Reinstate Monica

@PeterFlom Ho studiato il problema dell'asimmetria contro la curtosi - vedi "Modifica 2" nella mia risposta.
Glen_b

Risposte:


11

Questa risposta ha subito cambiamenti significativi mentre studio la pagina di Wikipedia. Ho lasciato le risposte in gran parte come erano, ma aggiunte ad esse, quindi al momento questo costituisce una progressione della comprensione; le ultime parti sono dove si trovano le migliori informazioni.

Risposta breve: la pagina di Wikipedia - e la formula del PO, che sembra essere stata la stessa - sono semplicemente sbagliate, per almeno tre ragioni diverse. Lascio la mia discussione originale (che presupponeva che l'OP e Wikipedia avessero ragione) poiché ciò spiega alcuni problemi. Una discussione migliore segue più avanti. Il breve consiglio: dimentica semplicemente Doane. Se è necessario utilizzare, usare quello che wikipedia dice ora (ho riparato).


Credo che la formula debba riferirsi alla curtosi in eccesso; la mia ragione è che modifica una formula per i dati normali per tenere conto di dati non normali, quindi ti aspetteresti che riproduca quello non modificato al normale. Lo fa se usi la curtosi in eccesso.

Ciò, tuttavia, solleva il problema che il termine nel registro può diventare negativo con campioni di grandi dimensioni (in effetti, è possibile essere con abbastanza piccolo ). Suggerirei di non usarlo con la kurtosi in eccesso negativa (non lo userei mai oltre l'unimodalità; una volta che le cose diventano multimodali, vuoi applicare l'idea di kurtosi in eccesso a ciascuna modalità, non lisciarle!), Anche se con casi lievi ( eccesso di curtosi poco meno di 0) e modeste dimensioni del campione non sarà un grosso problema.0n

Suggerirei anche che, in ogni caso, darà troppi pochi contenitori per campioni di grandi dimensioni, anche quando funziona come previsto.

È possibile trovare questo documento (dal normale CVer Rob Hyndman ):

http://www.robjhyndman.com/papers/sturges.pdf

di un certo interesse. Se l'argomentazione di Sturges è sbagliata, la formula di Doane ha lo stesso problema ... come Rob nota chiaramente nel documento.

In quel documento (e in questa risposta ) annuisce alla regola di Freedman-Diaconis. Nel documento sottolinea anche l'approccio citato da Matt Wand (si riferisce al documento di lavoro che non sembra essere online, ma il documento successivo è disponibile se si ha accesso):

http://www.jstor.org/discover/10.2307/2684697

[Modifica: in realtà un link al documento di lavoro è sulla pagina del citeseer ]

Tale approccio prevede una stima approssimativa di particolari funzionali al fine di ottenere larghezze del contenitore approssimativamente ottimali (in termini di errore quadrato quadrato medio, MISE) per stimare la densità sottostante. Mentre questi funzionano bene e danno molti più cassonetti rispetto a Sturges o Doane in generale, a volte preferisco ancora usare ancora più cassonetti, anche se di solito è un ottimo primo tentativo.

Francamente non so perché l'approccio di Wand (o almeno la regola di Fredman Diaconis) non sia un default praticamente dappertutto.

R offre almeno il calcolo di Freedman-Diaconis del numero di bin:

 nclass.FD(rnorm(100))
[1] 11
 nclass.FD(runif(100))
[1] 6
 nclass.FD(rt(100,1))
[1] 71

Vedere ?nclass.FD

Personalmente, per me questo è troppo pochi bidoni nei primi due casi; Raddoppierei entrambi nonostante il fatto che potrebbe essere un po 'più rumoroso che ottimale. Poiché n diventa grande, penso che nella maggior parte dei casi funzioni molto bene.


Modifica 2:

Ho deciso di indagare sul problema dell'asimmetria e della curtosi in cui @PeterFlom ha giustamente espresso perplessità.

Ho appena dato un'occhiata al documento di Doane a cui era stato collegato (l'avevo letto prima ... ma era quasi 30 anni fa) - non fa alcun riferimento alla curtosi, solo all'asimmetria.

La formula effettiva di Doane è:Ke=log2(1+g1σg1)

dove è il numero di bin aggiunti, è l' del terzo momento. [Beh, in realtà, Doane, dopo un uso abbastanza comune del tempo, usa per l' firmata (!) Del terzo momento (l'origine di questo abuso di notazione particolarmente non edificante è piuttosto antica e non ho intenzione di perseguire esso, tranne per dire che per fortuna ora appare molto meno spesso).]Keg1B1

Ora al normale, (sebbene quell'approssimazione sia piuttosto scarsa fino a quando n è ben oltre 100; Doane usa la prima forma)σg1=6(n-2)(n+1)(n+3)6n

Tuttavia, sembra che lungo la strada qualcuno abbia cercato di adattarlo alla kurtosi (al momento in cui scrivo questa Wikipedia ce l' ha in termini di kurtosi , per esempio, e non penso che abbiano inventato ) - ma c'è una ragione chiara credere che la formula sia semplicemente sbagliata (si noti che l'errore standard utilizzato è quell'approssimazione finale per il se dell'asimmetria che ho dato sopra). Penso di aver visto questo uso della kurtosi in diversi luoghi oltre a Wikipedia, ma oltre a non essere nel documento di Doane, non è presente nel documento di Scott, né nel documento di Hyndman che indico, né nel documento di Wand. Sembra che provenga da qualche parte (comunque sono sicuro che non è originale su Wikipedia), perché Doane non ha l'approssimazione diσg1. Sembra che sia stato suonato più volte prima che finisse lì; Sarei interessato se qualcuno lo rintracciasse.

Mi sembra che l' argomento di Doane dovrebbe estendersi felicemente alla curtosi, ma si dovrebbe usare l' errore standard corretto .

Tuttavia, poiché Doane fa affidamento sull'argomento di Sturges e Sturges sembra essere difettoso, forse l'intera impresa è condannata. In ogni caso ho modificato la pagina di discussione dell'istogramma su wikipedia rilevando l'errore.

---

B1


B1

Piccoli errori di quella scala (l'assenza del valore assoluto) accadono non di rado nelle riviste - al di fuori delle statistiche ho visto quelli molto più ovvi (e più eclatanti). Per quanto riguarda la notazione, in realtà è abbastanza comune; eg1 , eg2 , eg3 ... Potrei indicarne dozzine
Glen_b -Reinstate Monica

2

La misura della curtosi definita in termini di secondo e quarto momento non è mai negativa ( vedi ), quindi la log(1+...)>0.

Questa quantità è implementato nel comando kurtosis()dalla libreria R moments. Inoltre, utilizzando il comando hist()è possibile specificare il numero di interruzioni come segue

library(moments)

n <- 250
data <- rnorm(n)

# Sturges formula log_2(n) + 1
hist(data,breaks = "Sturges")

# Doane's formula    
Doane <- 1 + log(n) + log(1 + kurtosis(data) * sqrt(n / 6.))
hist(data,breaks = Doane)

La formula utilizzata nel comando kurtosis()è semplicemente mean((data - mean(data))^4)/mean((data - mean(data))^2)^2.

Ora, se vuoi studiare qual è la formula `` migliore '', allora avrai bisogno di un criterio. Considera che questo è stato ampiamente discusso nella letteratura statistica.


quello che non so è qual è la definizione di curtosi nella formula di Doane
Ruggero Turra

C'è un collegamento alla definizione di curtosi nella voce di Wikipedia che hai pubblicato. Per inciso, è lo stesso di quello che ho pubblicato. È stimato come il quarto momento centrale del campione diviso per il quadrato del secondo momento centrale del campione. Per favore, vedi la mia modifica per il codice.
Miles Davis

1
di nuovo, non so se la tua sia la formula di Doane corretta, se ad esempio guardi il foglio usa log2 invece di log
Ruggero Turra

Bene, questa è la "formula di Doane" che hai pubblicato ¬¬ . Comunque, questo può essere banalmente corretto usando log(n,2)invece di log(n). MA, la voce di Wikipedia e altre fonti indicano che dovrebbe essere log.
Miles Davis,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.