Hi,
I created a function for obtaining the normal cumulative distribution (I
know all this already exists in R, I just wanted to verify my
understanding of it). below is the code I came up with.
cdf<-function(x) {
erf<-function(x) {
# approximation to the error function (erf) of the
# normal cumulative distribution function
# from Winitzki (2008)
a <- 0.147
partc <- 1+a*x^2
partb <- 4/pi+a*x^2
parta <- -x^2*(partb/partc)
erf <- sqrt(1-exp(parta))
erf
}
# cumulative density function
cdf<- 1/2*(1+erf(x/sqrt(2)))
cdf
}
The erf(x) produces positive values whatever the sign of x. Instead of
obtaining the expected sigmoid shape of the erf() I end up with a
positive values V shape. erf(x) should be negative for negative values
of x. I figure I need some form of conditional statement in the above
code but all my attempts at using "if" and "for" failed miserably.
Clearly, I don't understand how to use them properly in R. If anyone
could point me in the right direction as on how to code conditional
events in R that would be much appreciated.
many thanks in advance
Pierre-Olivier
[[alternative HTML version deleted]]
______________________________________________
[email protected] 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.