[R] fitting a histogram to a Gaussian curve

R. Michael Weylandt michael.weylandt at gmail.com
Mon Mar 19 19:49:27 CET 2012


If I understand you correctly, a univariate Gaussian distribution is
uniquely determined by its first two moments so you can just fit those
directly (using sample mean for population mean and sample variance
with Besel's correction for population variance) and get the "best"
Gaussian (in a ML sense).

E.g.,

x <- rnorm(500, 3, 2)

hist(x, freq = FALSE)
lines(seq(min(x), max(x), length.out = 300) -> y, dnorm(y, mean(x),
sd(x)), col = 2)

Hope this helps,
Michael

On Mon, Mar 19, 2012 at 12:47 PM, Vihan Pandey <vihanpandey at gmail.com> wrote:
> Hello,
>
> I am trying to fit my histogram to a smooth Gaussian curve(the data
> closely resembles one except a few bars).
>
> This is my code :
>
> #!/usr/bin/Rscript
>
> out_file = "irc_20M_opencl_test.png"
> png(out_file)
>
> scan("my.csv") -> myvals
>
> hist(myvals, breaks = 50, main = "My Distribution",xlab = "My Values")
>
> pdens <- density(myvals, na.rm=T)
> plot(pdens, col="black", lwd=3, xlab="My values", main="Default KDE")
>
> dev.off()
>
> print(paste("Plot was saved in:", getwd()))
>
> the problem here is that I a jagged distribution, you can see the result :
>
> http://s15.postimage.org/9ucmkx3bf/foobar.png
>
> this is the original histogram :
>
> http://s12.postimage.org/e0lfp7d5p/foobar2.png
>
> any ideas on how I can smoothen it to a Gaussian curve?
>
> Thanks,
>
> - vihan
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list