[R] Probability distribution of fitted gaussian distribution.
David Winsemius
dwinsemius at comcast.net
Sat Jan 3 22:33:15 CET 2015
On Jan 3, 2015, at 9:27 AM, Jacob Varughese wrote:
> Hi,
>
> I have a discrete set of data on the returns for 3 indices with 206 data
> points. Since the number of points is less it doesnt exact look like a
> gaussian distribution.
>
> I wanted to fit the data to a gaussian distribution and have used the
> fitdist function and have gotten the plots and the mean and sd estimates
> for the gaussian that fits my data.
>
> What I then want to do is to get a U=F(x) where U is the uniform variable
> corresponding to the CDF function applied on the fitted theoritical CDF
> curve. How can I get that?
>
>
> Equivalent data that I find in matlab. Here the ksdensity gives an array of
> f and xi values and I could use the f values for my usage. But I am trying
> to work it out in R. The steps that I am going through in R are below. I
> have also attached the input sheet that I am using for the indices. Sorry
> in advance, case its a dumb one.
>
> Estimate Density
>
> Generate a sample data set from a mixture of two normal distributions.
>
> rng default % for reproducibility
> x = [randn(30,1); 5+randn(30,1)];
>
> Plot the estimated density.
>
> [f,xi] = ksdensity(x);
> figure
> plot(xi,f);
>
> Steps that I am following.
>
> # Reading and finding the returns for 3 indices.
> CDSPrices<-read.csv("CDS.csv")
> numRows=nrow(CDSPrices)
> CDSReturnsN225=CDSPrices$N225[2:numRows]/CDSPrices$N225[1:numRows-1]-1
> CDSReturnsSPX=CDSPrices$SPX[2:numRows]/CDSPrices$SPX[1:numRows-1]-1
> CDSReturnsIBOVESPA=CDSPrices$IBOVESPA[2:numRows]/CDSPrices$IBOVESPA[1:numRows-1]-1
> CDS_Returns<-cbind(CDSReturnsN225,CDSReturnsSPX,CDSReturnsIBOVESPA)
>
> # Using fitdist to fit a gaussian distribution onto the discrete empirical
> data I have.
> library(fitdistrplus)
> fittedNormal<-fitdist(CDS_Returns[,1],"norm")
> plot(fittedNormal)
>
>
>> fittedNormal[]
> $estimate
> mean sd
> -0.002035951 0.028654032
>
> $method
> [1] "mle"
>
> $sd
> mean sd
> 0.001996421 0.001403953
Wouldn't you get pretty much the same result from:
list( mean=mean(CDS_Returns[,1], sd=sd(CDS_Returns[,1]) ) # ?
... since the sample mean is identical to the MLE estimate and the sample SD is at worst only different by a factor of N/(N-1).
And for what you are calling " U=F(x) where U is the uniform variable
corresponding to the CDF function applied on the fitted theoritical CDF
curve", wouldn't that just involve the use of the `qnorm` function?
>
> Reference
>
> http://cran.r-project.org/web/packages/fitdistrplus/fitdistrplus.pdf ~
> Page 15
>
>
> --
> *Jacob Varughese*
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
David Winsemius
Alameda, CA, USA
More information about the R-help
mailing list