Die Schwierigkeit bei der Verwendung von Histogrammen, um die Form abzuleiten
Während Histogramme oft nützlich und nützlich sind, können sie irreführend sein. Ihr Aussehen kann sich sehr stark ändern, wenn sich die Positionen der Behältergrenzen ändern.
Dieses Problem ist seit langem bekannt *, aber vielleicht nicht so weit verbreitet wie es sein sollte - es wird in Diskussionen auf Elementarebene nur selten erwähnt (obwohl es Ausnahmen gibt).
* Paul Rubin [1] hat es beispielsweise so ausgedrückt: " Es ist allgemein bekannt, dass das Ändern der Endpunkte in einem Histogramm das Erscheinungsbild erheblich verändern kann ." .
Ich denke, es ist ein Thema, das bei der Einführung von Histogrammen ausführlicher erörtert werden sollte. Ich werde einige Beispiele und Diskussionen geben.
Warum Sie sich nicht auf ein einzelnes Histogramm eines Datensatzes verlassen sollten
Schauen Sie sich diese vier Histogramme an:
Das sind vier sehr unterschiedlich aussehende Histogramme.
Wenn Sie die folgenden Daten einfügen (ich verwende hier R):
Annie <- c(3.15,5.46,3.28,4.2,1.98,2.28,3.12,4.1,3.42,3.91,2.06,5.53,
5.19,2.39,1.88,3.43,5.51,2.54,3.64,4.33,4.85,5.56,1.89,4.84,5.74,3.22,
5.52,1.84,4.31,2.01,4.01,5.31,2.56,5.11,2.58,4.43,4.96,1.9,5.6,1.92)
Brian <- c(2.9, 5.21, 3.03, 3.95, 1.73, 2.03, 2.87, 3.85, 3.17, 3.66,
1.81, 5.28, 4.94, 2.14, 1.63, 3.18, 5.26, 2.29, 3.39, 4.08, 4.6,
5.31, 1.64, 4.59, 5.49, 2.97, 5.27, 1.59, 4.06, 1.76, 3.76, 5.06,
2.31, 4.86, 2.33, 4.18, 4.71, 1.65, 5.35, 1.67)
Chris <- c(2.65, 4.96, 2.78, 3.7, 1.48, 1.78, 2.62, 3.6, 2.92, 3.41, 1.56,
5.03, 4.69, 1.89, 1.38, 2.93, 5.01, 2.04, 3.14, 3.83, 4.35, 5.06,
1.39, 4.34, 5.24, 2.72, 5.02, 1.34, 3.81, 1.51, 3.51, 4.81, 2.06,
4.61, 2.08, 3.93, 4.46, 1.4, 5.1, 1.42)
Zoe <- c(2.4, 4.71, 2.53, 3.45, 1.23, 1.53, 2.37, 3.35, 2.67, 3.16,
1.31, 4.78, 4.44, 1.64, 1.13, 2.68, 4.76, 1.79, 2.89, 3.58, 4.1,
4.81, 1.14, 4.09, 4.99, 2.47, 4.77, 1.09, 3.56, 1.26, 3.26, 4.56,
1.81, 4.36, 1.83, 3.68, 4.21, 1.15, 4.85, 1.17)
Dann können Sie sie selbst generieren:
opar<-par()
par(mfrow=c(2,2))
hist(Annie,breaks=1:6,main="Annie",xlab="V1",col="lightblue")
hist(Brian,breaks=1:6,main="Brian",xlab="V2",col="lightblue")
hist(Chris,breaks=1:6,main="Chris",xlab="V3",col="lightblue")
hist(Zoe,breaks=1:6,main="Zoe",xlab="V4",col="lightblue")
par(opar)
Schauen Sie sich nun dieses Streifendiagramm an:
x<-c(Annie,Brian,Chris,Zoe)
g<-rep(c('A','B','C','Z'),each=40)
stripchart(x~g,pch='|')
abline(v=(5:23)/4,col=8,lty=3)
abline(v=(2:5),col=6,lty=3)
(Wenn es immer noch nicht klar ist, was passiert , wenn Sie Annies Daten aus jedem Satz subtrahieren: head(matrix(x-Annie,nrow=40))
)
Die Daten wurden einfach jedes Mal um 0,25 nach links verschoben.
Die Eindrücke, die wir von den Histogrammen erhalten - rechte Neigung, gleichmäßige Neigung, linke Neigung und bimodale Neigung - waren jedoch völlig unterschiedlich. Unser Eindruck war gänzlich von der Position des ersten Binursprungs im Verhältnis zum Minimum abhängig.
Also nicht nur 'exponentiell' gegen 'nicht-wirklich-exponentiell', sondern 'rechtes Versatz' gegen 'linkes Versatz' oder 'bimodal' gegen 'Uniform', indem Sie sich einfach dorthin bewegen, wo Ihre Behälter beginnen.
Bearbeiten: Wenn Sie die binwidth variieren, können Sie Sachen wie diese passieren:
Das sind in beiden Fällen die gleichen 34 Beobachtungen, nur unterschiedliche Haltepunkte, einer mit der Binwidth und der andere mit der Binwidth .0,810.8
x <- c(1.03, 1.24, 1.47, 1.52, 1.92, 1.93, 1.94, 1.95, 1.96, 1.97, 1.98,
1.99, 2.72, 2.75, 2.78, 2.81, 2.84, 2.87, 2.9, 2.93, 2.96, 2.99, 3.6,
3.64, 3.66, 3.72, 3.77, 3.88, 3.91, 4.14, 4.54, 4.77, 4.81, 5.62)
hist(x,breaks=seq(0.3,6.7,by=0.8),xlim=c(0,6.7),col="green3",freq=FALSE)
hist(x,breaks=0:8,col="aquamarine",freq=FALSE)
Nifty, was?
Ja, diese Daten wurden absichtlich erstellt, um dies zu tun ... aber die Lektion ist klar - was Sie in einem Histogramm zu sehen glauben, ist möglicherweise kein besonders genauer Eindruck der Daten.
Was können wir tun?
Histogramme sind weit verbreitet, häufig leicht zu erhalten und manchmal zu erwarten. Was können wir tun, um solche Probleme zu vermeiden oder zu lindern?
Wie Nick Cox in einem Kommentar zu einer verwandten Frage ausführt : Die Faustregel sollte immer lauten, dass Details, die gegenüber Variationen der Behälterbreite und des Behälterursprungs robust sind, wahrscheinlich echt sind. Details, die für solche fragil sind, sind wahrscheinlich falsch oder trivial .
Zumindest sollten Sie immer Histogramme mit mehreren verschiedenen Binbreiten oder Binursprüngen oder vorzugsweise mit beiden erstellen.
Alternativ können Sie eine Schätzung der Kerneldichte bei nicht zu großer Bandbreite überprüfen.
Ein anderer Ansatz, der die Beliebigkeit von Histogrammen verringert, sind gemittelte verschobene Histogramme .
(das ist eines der aktuellsten Daten), aber wenn Sie sich darum bemühen, können Sie auch eine Schätzung der Kerneldichte verwenden.
Wenn ich ein Histogramm mache (ich benutze sie, obwohl ich mir des Problems sehr bewusst bin), bevorzuge ich fast immer die Verwendung von wesentlich mehr Behältern als es die typischen Standardeinstellungen des Programms bieten, und sehr oft mache ich gerne mehrere Histogramme mit unterschiedlicher Behälterbreite (und gelegentlich Herkunft). Wenn die Impressionen einigermaßen konsistent sind, ist es unwahrscheinlich, dass Sie dieses Problem haben. Wenn sie nicht konsistent sind, sollten Sie genauer hinschauen. Versuchen Sie es mit einer Schätzung der Kerneldichte, einer empirischen CDF, einem QQ-Diagramm oder etwas anderem ähnlich.
Während Histogramme manchmal irreführend sein können, sind Boxplots für solche Probleme noch anfälliger. Mit einem Boxplot können Sie nicht einmal sagen, dass Sie mehr Behälter verwenden möchten. Sehen Sie sich die vier sehr unterschiedlichen Datensätze in diesem Beitrag an , alle mit identischen, symmetrischen Boxplots, obwohl einer der Datensätze ziemlich schief ist.
[1]: Rubin, Paul (2014) "Histogram Abuse!",
Blogbeitrag ODER in einer OB-Welt , 23. Januar 2014
Link ... (alternativer Link)