Gibt es in R eine Funktion, die eine Kurve an ein Histogramm anpasst?
Angenommen, Sie hatten das folgende Histogramm
hist(c(rep(65, times=5), rep(25, times=5), rep(35, times=10), rep(45, times=4)))
Es sieht normal aus, ist aber schief. Ich möchte eine normale Kurve anpassen, die schief ist, um dieses Histogramm zu umwickeln.
Diese Frage ist ziemlich einfach, aber ich kann die Antwort für R im Internet nicht finden.
r
histogram
curve-fitting
r-faq
user5243421
quelle
quelle
Antworten:
Wenn ich Ihre Frage richtig verstehe, möchten Sie wahrscheinlich eine Dichteschätzung zusammen mit dem Histogramm:
Lange später bearbeiten:
Hier ist eine etwas elegantere Version:
zusammen mit dem Diagramm, das es erzeugt:
quelle
lines(density(X,na.rm= TRUE)
da der Vektor NA-Werte enthalten kann.So etwas ist mit ggplot2 einfach
oder um das Ergebnis von Dirks Lösung nachzuahmen
quelle
So mache ich das:
Eine Bonusübung besteht darin, dies mit dem ggplot2-Paket zu tun ...
quelle
Dirk hat erklärt, wie die Dichtefunktion über dem Histogramm dargestellt wird. Aber manchmal möchten Sie vielleicht mit der stärkeren Annahme einer verzerrten Normalverteilung gehen und diese anstelle der Dichte zeichnen. Sie können die Parameter der Verteilung schätzen und mit dem sn-Paket zeichnen :
Dies funktioniert wahrscheinlich besser bei Daten, die normaler sind:
quelle
Ich hatte das gleiche Problem, aber Dirks Lösung schien nicht zu funktionieren. Ich bekam jedes Mal diese Warnmeldung
Ich lese durch
?hist
und fand überfreq: a logical vector set TRUE by default.
Der Code, der für mich funktioniert hat, ist
quelle