[R] Ifelse leading to inconsistent result
pdalgd at gmail.com
Wed Jun 26 18:59:17 CEST 2013
On Jun 26, 2013, at 17:40 , Neville O'Reilly wrote:
> I have used ifelse in count variables to count the number of times in a simulation the values of a vector of logprice fall within mutually exclusive ranges. However, there is a double count in the result i.e. i am getting output indicating values falling in mutually exclusive ranges. Here is the code and result
> R script
Don't use ifelse, it just confuses the logic.
As far as I can tell, the code is equivalent (except for integer conversion) to
CountLoss[i] <- (minlogP < log(950000)) | (maxlogP <= log (1000000))
CountProf[i] <- (maxlogP >= log (1100000))
and that doesn't look mutually exclusive to me.
> niter = 1e5 # number of iterations is 10^5
> CountLoss = rep(0,niter)
> CountProf = rep (0,niter)
> set.seed(2009) # enables reproducibility of result if script run again"
> for (i in 1:niter)
> r = rnorm(100,mean=.05/253,
> sd=.23/sqrt(253)) # generate 100 random normal numbers
> logPrice = log(1e6) + cumsum(r) #vector of 100 days log prices
> maxlogP = max(logPrice) # max price over next 100 days
> minlogP = min(logPrice)
> CountLoss[i] <- ifelse (minlogP < log(950000), 1, ifelse (maxlogP > log (1000000), 0, 1))
> CountProf[i] <- ifelse (maxlogP < log (1100000),0,1)
> mean(CountLoss) # fraction of times out of niter that stock is sold for a loss in a 100 day period
> mean(CountProf) # fraction of times out of niter that stock is sold for a profit in a 100 day period
>  64246
>> mean(CountLoss) # fraction of times out of niter that stock is sold for a loss in a 100 day period
>  0.64246
>  51857
>> mean(CountProf) # fraction of times out of niter that stock is sold for a profit in a 100 day period
>  0.51857
> CountLoss and CountProf should sum to less than the number of interations. When I troubleshoot by reducing the number of iterations and that size of the logprice, I can't reproduce the contradicion.
> R-help at r-project.org mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
Peter Dalgaard, Professor
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
More information about the R-help