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) > } > sum(CountLoss) > mean(CountLoss) # fraction of times out of niter that stock is sold for a > loss in a 100 day period > sum(CountProf) > mean(CountProf) # fraction of times out of niter that stock is sold for a > profit in a 100 day period > > Output > sum(CountLoss) > [1] 64246 >> mean(CountLoss) # fraction of times out of niter that stock is sold for a >> loss in a 100 day period > [1] 0.64246 >> sum(CountProf) > [1] 51857 >> mean(CountProf) # fraction of times out of niter that stock is sold for a >> profit in a 100 day period > [1] 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@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. -- Peter Dalgaard, Professor Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ R-help@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.