2017-03-24 4 views
1

Ich habe einen Vektor Daten mit der Länge 444000 ungefähr genannt, und die meisten der numerischen Werte liegen zwischen 1 und 100 (fast alle von ihnen). Ich möchte das Histogramm zeichnen und die entsprechende Dichte darauf zeichnen. Ich dies jedoch, wenn ich das Histogramm zeichnen erhalten:R - Histogramm Zeigt keine Dichte aufgrund der Größe der Daten

hist(data,freq=FALSE) 

enter image description here

Was kann ich tun, um tatsächlich ein detaillierteres Histogramm zu sehen? Ich habe versucht, den Breaks-Code zu verwenden, es hat geholfen, aber es ist wirklich schwer, das Histogramm zu sehen, weil es so klein ist. Zum Beispiel habe ich Pausen = 2000 und bekam dies:

enter image description here

Gibt es etwas, das ich tun kann? Vielen Dank!

+0

Versuchen Sie 'Plot (Dichte (Daten))'. – Fernando

+0

Hey, danke für die Rückmeldung. Ich brauche das Histogramm auch, weil ich den Parameter einschätze und die Dichte auf dem Histogramm zeichnen möchte, um zu zeigen, dass es gut passt. – mathstackuser123

+0

Können Sie die Ausreißer ignorieren? Oder führen Sie 2 Histogramme nebeneinander, die 2 verschiedene Bereiche zeigen. – Fernando

Antwort

3

Da Sie keine Daten zeigen, werde ich einige zufällige Daten generieren:

d <- c(rexp(1e4, 100), runif(100, max=5e4)) 
hist(d) 

enter image description here

Umgang mit Ausreißern wie diese, können Sie das Histogramm der Protokolle angezeigt werden, aber das kann schwer zu interpretieren:

enter image description here

Wenn Sie mit zeigt eine Teilmenge der Daten in Ordnung sind, dann können Sie fil Die Ausreißer werden entweder dynamisch (möglicherweise unter Verwendung von quantile) oder manuell ausgegeben. Die wichtigste Sache beim Anzeigen dieser Visualisierung in Ihrer Analyse ist, dass wenn Sie müssen Daten für die Handlung entfernen, dann beim Entfernen vorne sein. (Dies ist kurz und bündig ... es wäre auch informativ sein, die Reichweite und/oder andere Eigenschaften der ausgelassenen Daten aufzunehmen, aber das ist subjektiv und wird auf den tatsächlichen Daten unterschiedlich eingeschätzt werden.)

quantile(d, seq(0, 1, len=11)) 
d2 <- d[ d < quantile(d, 0.90) ] 
hist(d2) 
txt <- sprintf("(%d points shown, %d excluded)", length(d2), length(d) - length(d2)) 
mtext(txt, side = 1, line = 3, adj = 1) 

enter image description here

d3 <- d[ d < 10 ] 
hist(d3) 
txt <- sprintf("(%d points shown, %d excluded)", length(d3), length(d) - length(d3)) 
mtext(txt, side = 1, line = 3, adj = 1) 

enter image description here

+0

Hey, Danke für die Antwort! Es half! – mathstackuser123

Verwandte Themen