Doanes Formel für das Histogramm-Binning


9

Ich implementiere verschiedene Algorithmen, um die beste Anzahl von Bins für Histogramme zu schätzen. Die meisten von mir implementierten sind auf der Wikipedia-Seite "Histogramm" im Abschnitt " Anzahl der Fächer und Breite " * beschrieben.

Ich habe ein Problem mit Doanes Formel:

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

Wo nist die Datengröße?

Das Problem ist, wenn die Kurtosis negativ ist und n >> 1weil das Argument der lognegativ wird.

* (Diese Seite hat sich geändert, seit dies veröffentlicht wurde. Der Link wurde so bearbeitet, dass er auf die Seite verweist, die zum Zeitpunkt der Veröffentlichung war.)


1
Wissen Sie, ob diese Formel Kurtosis oder überschüssige Kurtosis verwendet (dh hat Normal dist 4 oder 0)?
Peter Flom - Monica wieder einsetzen

@PeterFlom: In der Originalarbeit ( amstat.tandfonline.com/doi/pdf/10.1080/00031305.1976.10479172 ) wird die Kurtosis als Skewness definiert, aber ich bin kein Experte. Das Originalpapier unterscheidet sich auch stark von der Wikipedia-Formel
Ruggero Turra

1
Ähm, was? Die Kurtosis ist definiert als die Schiefe? Das macht keinen Sinn; Sie sind sehr verschieden. Ich kann nicht auf das Papier zugreifen, aber es hört sich so an, als ob irgendwo etwas durcheinander ist.
Peter Flom - Reinstate Monica

@ PeterFlom Normalverteilung sollte Kurtosis von 3 nicht 4 haben.
Glen_b -Reinstate Monica

@PeterFlom Ich habe das Problem von Schiefe gegen Kurtosis untersucht - siehe "Bearbeiten 2" in meiner Antwort.
Glen_b -State Monica

Antworten:


11

Diese Antwort hat sich erheblich verändert, als ich die Wikipedia-Seite untersuche. Ich habe die Antworten weitgehend so belassen, wie sie waren, aber zu ihnen hinzugefügt, so dass dies derzeit einen Fortschritt des Verstehens darstellt; In den letzten Teilen finden Sie die besten Informationen.

Kurze Antwort: Die Wikipedia-Seite - und die Formel des OP, die anscheinend dieselbe war - sind aus mindestens drei verschiedenen Gründen einfach falsch. Ich werde meine ursprüngliche Diskussion verlassen (die davon ausging, dass das OP und Wikipedia es richtig gemacht haben), da dies einige Probleme erklärt. Eine bessere Diskussion folgt später. Der kurze Rat: Vergiss einfach Doane. Wenn Sie es verwenden müssen, verwenden Sie, was Wikipedia jetzt sagt (ich habe es behoben).


Ich glaube, dass sich die Formel auf eine übermäßige Kurtosis beziehen muss; Mein Grund dafür ist, dass eine Formel für normale Daten geändert wird, um nicht normale Daten zu berücksichtigen, sodass Sie erwarten würden, dass sie die unveränderten Daten normal wiedergeben. Dies geschieht, wenn Sie eine übermäßige Kurtosis verwenden.

Dies wirft jedoch das Problem auf, dass der Term im Protokoll bei großen Stichproben negativ werden kann (tatsächlich ist es möglich, bei ziemlich kleinem zu sein ). Ich würde vorschlagen, es nicht mit negativer überschüssiger Kurtosis zu verwenden (ich würde es sowieso nie über die Unimodalität hinaus verwenden; sobald die Dinge multimodal werden, möchten Sie die Idee der überschüssigen Kurtosis auf jeden Modus anwenden , nicht über sie hinweg glätten!), Allerdings mit milden Fällen ( Übermäßige Kurtosis von weniger als 0) und bescheidene Stichprobengrößen sind kein großes Problem.n0n

Ich würde auch vorschlagen, dass es auf jeden Fall viel zu wenig Behälter bei großen Stichprobengrößen geben wird, selbst wenn es wie beabsichtigt funktioniert.

Möglicherweise finden Sie dieses Papier (von dem regulären CVer Rob Hyndman ):

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

von Interesse. Wenn Sturges 'Argument falsch ist, hat Doanes Formel das gleiche Problem ... wie Rob in der Zeitung deutlich feststellt.

In diesem Artikel (und in dieser Antwort ) nickt er der Freedman-Diaconis-Regel zu. In dem Artikel verweist er auch auf den von Matt Wand erwähnten Ansatz (er bezieht sich auf das Arbeitspapier, das nicht online zu sein scheint, aber das nachfolgende Papier ist verfügbar, wenn Sie Zugriff haben):

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

[Bearbeiten: Tatsächlich befindet sich auf der Citeseer-Seite ein Link zum Arbeitspapier ]

Dieser Ansatz beinhaltet das ungefähre Schätzen bestimmter Funktionale, um annähernd optimale (in Bezug auf den mittleren integrierten quadratischen Fehler, MISE) Behälterbreiten zum Schätzen der zugrunde liegenden Dichte zu erhalten. Während diese gut funktionieren und viel mehr Behälter als Sturges oder Doane im Allgemeinen ergeben, bevorzuge ich manchmal immer noch, immer noch mehr Behälter zu verwenden, obwohl dies normalerweise ein sehr guter erster Versuch ist.

Ehrlich gesagt weiß ich nicht, warum Wand's Ansatz (oder zumindest die Fredman Diaconis-Regel) nicht überall ein Standard ist.

R bietet zumindest die Freedman-Diaconis-Berechnung der Anzahl der Behälter an:

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

Sehen ?nclass.FD

Persönlich sind das für mich zumindest in den ersten beiden Fällen zu wenig Mülleimer; Ich würde beide verdoppeln, obwohl es vielleicht etwas lauter als optimal ist. Wenn n groß wird, denke ich, dass es in den meisten Fällen sehr gut funktioniert.


Bearbeiten 2:

Ich beschloss, das Problem von Schiefe gegen Kurtosis zu untersuchen, bei dem @PeterFlom zu Recht seine Verwirrung zum Ausdruck brachte.

Ich habe mir gerade das Doane-Papier angesehen, mit dem wiso verknüpft ist (ich hatte es schon einmal gelesen ... aber das war vor fast 30 Jahren) - es bezieht sich überhaupt nicht auf Kurtosis, sondern nur auf Schiefe.

Doane der tatsächlichen Formel:Ke=log2(1+g1σg1)

Dabei ist die Anzahl der hinzugefügten Fächer, die Schiefe im 3. Moment. [Nun, tatsächlich verwendet Doane nach ziemlich häufigem Gebrauch der Zeit für die signierte (!) Schiefe im 3. Moment (der Ursprung dieses besonders unverbindlichen Missbrauchs der Notation ist ziemlich alt und ich werde nicht weiter verfolgen es, außer zu sagen, dass es jetzt glücklicherweise viel seltener erscheint).]g 1 Keg1b1

Im Normalfall ist (obwohl diese Annäherung ziemlich schlecht ist, bis n weit über 100 liegt; Doane verwendet die erste Form)σg1=6(n2)(n+1)(n+3)6n

Es scheint jedoch, dass auf dem Weg jemand versucht hat, es an die Kurtosis anzupassen (zu dem Zeitpunkt, als ich diese Wikipedia schreibe, hat es zum Beispiel die Kurtosis , und ich glaube nicht, dass sie es erfunden haben) - aber es gibt einen klaren Grund zu glauben, dass die Formel einfach falsch ist (beachten Sie, dass der verwendete Standardfehler die endgültige Annäherung für die Se der oben angegebenen Schiefe ist). Ich glaube, ich habe diese Verwendung von Kurtosis an anderen Orten als in Wikipedia gesehen, aber abgesehen davon, dass sie nicht in Doanes Papier enthalten ist, ist sie weder in Scotts Papier noch in dem Hyndman-Papier, auf das ich verweise, noch in Wand's Papier vorhanden. Es scheint jedoch von irgendwoher gekommen zu sein (dh ich bin sicher, dass es nicht original für Wikipedia ist), da Doane nicht die Annäherung anσg1. Es sieht so aus, als ob es schon mehrmals gespielt wurde, bevor es dort landete. Es würde mich interessieren, wenn jemand es aufspüren würde.

Es sieht für mich so aus, als ob Doanes Argument sich gerne auf Kurtosis erstrecken sollte , aber der richtige Standardfehler müsste verwendet werden.

Da sich Doane jedoch auf Sturges stützt und das Argument von Sturges fehlerhaft zu sein scheint, ist möglicherweise das gesamte Unternehmen zum Scheitern verurteilt. Auf jeden Fall habe ich die Histogramm-Diskussionsseite auf Wikipedia bearbeitet und den Fehler festgestellt.

--- ---.

Bearbeiten 3: Ich habe die Wikipedia-Seite korrigiert (aber ich habe mir erlaubt, den absoluten Wert der Schiefe zu nehmen, andernfalls kann Doanes ursprüngliche Formel nicht für linksgerichtete Verteilungen verwendet werden - eindeutig für die Anzahl der Behälter, deren Vorzeichen es ist die Schiefe ist unerheblich). Genau genommen hätte ich die Formel in ihrer ursprünglichen (falschen) Form präsentieren und dann erklären sollen, warum sie keinen Sinn ergibt, aber ich denke, dass dies aus mehreren Gründen problematisch ist - nicht zuletzt, dass die Leute versucht sein werden, die Formel einfach zu kopieren und eine zu ignorieren Erläuterung. Ich glaube, es deckt tatsächlich Doanes ursprüngliche Absicht ab. Auf jeden Fall ist es eine enorme Verbesserung gegenüber dem Unsinn, der im Original war. (Bitte, jeder, der auf das Originalpapier zugreifen kann, schaut es sich an und wieb1 ist definiert und überprüfe meine Änderungen auf Wikipedia, um sicherzustellen, dass es vernünftig ist - es waren mindestens drei Dinge falsch - die Kurtosis, der Standardfehler und die falsche Basis von Protokollen sowie Doanes kleiner Fehler.)


vielen Dank. Ich bin übrigens überrascht, einen solchen Fehler bei "The American Statistician" zu sehen. Ich habe die Notation noch nie gesehen . b1
Ruggero Turra

Kleine Fehler dieser Größenordnung (das Fehlen des absoluten Wertes) treten in Zeitschriften nicht allzu selten auf - außerhalb der Statistiken habe ich weitaus offensichtlichere (und ungeheuerlichere) gesehen. Die Notation ist eigentlich ziemlich häufig. eg1 , eg2 , eg3 ... Ich könnte auf Dutzende zeigen
Glen_b -Reinstate Monica

2

Das im zweiten und vierten Moment definierte Kurtosis-Maß ist niemals negativ ( siehe ), dann das log(1+...)>0.

Diese Menge wird im Befehl kurtosis()aus der R-Bibliothek implementiert moments. Darüber hinaus können Sie mit dem Befehl hist()die Anzahl der Pausen wie folgt angeben

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)

Die im Befehl verwendete Formel kurtosis()lautet einfach mean((data - mean(data))^4)/mean((data - mean(data))^2)^2.

Wenn Sie nun untersuchen möchten, was die "beste" Formel ist, benötigen Sie ein Kriterium. Bedenken Sie, dass dies in der statistischen Literatur weitgehend diskutiert wurde.


Was ich nicht weiß, ist die Definition von Kurtosis in Doanes Formel
Ruggero Turra

In dem von Ihnen geposteten Wikipedia-Eintrag befindet sich ein Link zur Definition von Kurtosis. Übrigens ist es das gleiche wie das, das ich gepostet habe. Es wird als das zentrale Moment der vierten Probe geteilt durch das Quadrat des zentralen Moments der zweiten Probe geschätzt. Den Code finden Sie in meiner Bearbeitung.
Miles Davis

1
Auch hier weiß ich nicht, ob Ihre Formel die richtige von Doane ist. Wenn Sie sich das Papier ansehen, verwendet er beispielsweise log2 anstelle von log
Ruggero Turra,

Nun, das ist die "Doane-Formel", die Sie veröffentlicht haben . Auf jeden Fall kann dies trivial korrigiert werden, indem log(n,2)anstelle von verwendet wird log(n). ABER der Wikipedia-Eintrag sowie andere Quellen weisen darauf hin, dass dies der Fall sein sollte log.
Miles Davis
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.