2016-07-29 13 views
1

Ich habe versucht, einige der anderen Antworten zu diesem Thema zu sehen, aber ich war verwirrt.Ich versuche, eine normale Verteilungskurve zu ggplot hinzuzufügen, und es funktioniert nicht

Ich habe ein Histogramm einiger Beispieldaten, die in Ordnung sind. Ich versuche zum Vergleich eine normale Verteilungskurve darüber zu überlagern. Ich benutze ggplot. Ich versuche, stat_function für die Kurve zu verwenden, und es wird einfach nicht angezeigt.

Dieser Teil mag verwirrend klingen, aber beide Argumente in stat_function sollen vom zugrunde liegenden Histogramm unabhängig sein, oder muss einer von ihnen gleich sein. Ich schaue mir nur einen anderen Beispielcode an, und in diesem Fall sieht es so aus, als hätten sie Mittelwert aus Histogramm und SD angegeben (oder umgekehrt). enter image description here

Hier ist mein Code:

sim_cnt<-1000 
lambda<-.2 
samp_sz<-40 
set.seed(222) 
mn<-1/lambda 
st_dv<-1/lambda 
mns<-sapply(1:sim_cnt,function(x){mean(rexp(samp_sz,lambda))}) 

library(ggplot2) 

g<-ggplot(data=data.frame(mns), aes(x=mns))+ geom_histogram(binwidth=.3, fill="red", color="green")+geom_vline(xintercept=mean(mns),size =1, col="black")+labs(x="Means")+ggtitle("Sample Distribution")+stat_function(fun=dnorm, color="pink",args=list(sd=.7905694,mean=5)) 
g 
+0

Dies ist kein Duplikat. Der andere verwendete zugrunde liegende Daten. Dieser verwendet Vergleichsdaten. – David

Antwort

0

Ich änderte die Farben rot und grün für Sie, weil Rot-Grün-Blindheit ist die häufigste erbliche Farbmangel ist. Ich multipliziere die Zählung mit 0,3, so dass die Bandbreite des Dichtediagramms mit der Histogramm-Binbreite übereinstimmt.

g<-ggplot(data=data.frame(mns), aes(x=mns))+ 
    geom_histogram(binwidth=.3, fill="red", color="blue")+ 
    geom_vline(xintercept=mean(mns),size =1, col="black")+ 
    labs(x="Means")+ ggtitle("Sample Distribution") 
g + stat_density(aes(y = .3 * ..count..), geom = "line", 
       color = "blue", size = 1) 

enter image description here

+1

Danke. Das ist ein Anfang. Ich bin besorgt über die "Klumpigkeit" der Kurve, ich denke, die kommt aus der Multiplikation mit der Zählung. Nicht sicher. Kann die Kurve glatt sein? Die Kurve sollte nicht die Daten des Histogramms verwenden, sondern nur eine normale Verteilungskurve anzeigen, so dass ich sie mit dem Histogramm vergleichen kann. – David

+0

Ah, Verteilung nicht Dichte. Die Klumpigkeit dieses Dichtediagramms ist auf die Stichprobenvariation Ihres Verfahrens zurückzuführen. Der Grund, warum ich diesen Fehler gemacht habe, ist, dass Sie ein Histogramm von Zählungen anstatt von Frequenzen auftragen. Da Sie dies tun, macht es einen Vergleich mit der normalen Dichte, die einen y-Wert von weniger als 0,5 haben wird. Sie werden dies in der Lösung der anderen doppelten Frage notieren. – shayaa

+0

Ich schaute auf das Duplikat, aber es scheint, als wolle ich eine Kurve der zugrunde liegenden Daten über das Histogramm der zugrunde liegenden Daten legen, was ich nicht mache. Außerdem sehe ich aufgrund eines Fehlers in meiner Aufgabe, dass die theoretische Standardabweichung falsch aufgeführt wurde. Es sollte 0,7905694, nicht 5 sein. Die sd der zugrunde liegenden Daten ist 0,808. – David