Rainer M Krug
2008-Jan-15 12:24 UTC
[R] Looking for simpler solution to probabilistic question
Hi I have two processes which take with a certain probability (p1 and p2) x number of years to complete (age1 and age2). As soon as thge first process is completed, the second one begins. I want to calculate the time it takes for the both processes to be completed. I have the following script which gives me the answer, butI think there must be a more elegant way of doing the calculations between the ##### Any ideas welcom, Rainer age1 <- 1:20 p1 <- dnorm(age1,10,2) age2 <- 10:30 p2 <- dnorm(age2,15,1) ###### age <- matrix(age1, ncol=length(age1), nrow=length(age2), byrow=TRUE) + age2 p <- matrix(p1, ncol=length(p1), nrow=length(p2), byrow=TRUE) + p2 p <- as.numeric(tapply(p, age, sum)) p <- p / sum(p) ##### age <- sort(unique(as.numeric(age))) plot(age, p) lines(age1, p1) lines(age2, p2)
Dimitris Rizopoulos
2008-Jan-15 12:55 UTC
[R] Looking for simpler solution to probabilistic question
matrix(age1, ncol=length(age1), nrow=length(age2), byrow=TRUE) + age2 can be replaced by outer(age2, age1, "+") and the same for 'p'. Best, Dimitris ---- Dimitris Rizopoulos Ph.D. Student Biostatistical Centre School of Public Health Catholic University of Leuven Address: Kapucijnenvoer 35, Leuven, Belgium Tel: +32/(0)16/336899 Fax: +32/(0)16/337015 Web: http://med.kuleuven.be/biostat/ http://www.student.kuleuven.be/~m0390867/dimitris.htm ----- Original Message ----- From: "Rainer M Krug" <R.M.Krug at gmail.com> To: "r-help" <r-help at stat.math.ethz.ch> Sent: Tuesday, January 15, 2008 1:24 PM Subject: [R] Looking for simpler solution to probabilistic question> Hi > > I have two processes which take with a certain probability (p1 and > p2) x > number of years to complete (age1 and age2). As soon as thge first > process is completed, the second one begins. I want to calculate the > time it takes for the both processes to be completed. > > I have the following script which gives me the answer, butI think > there > must be a more elegant way of doing the calculations between the > ##### > > Any ideas welcom, > > Rainer > > > age1 <- 1:20 > p1 <- dnorm(age1,10,2) > > age2 <- 10:30 > p2 <- dnorm(age2,15,1) > > ###### > age <- matrix(age1, ncol=length(age1), nrow=length(age2), > byrow=TRUE) + age2 > > p <- matrix(p1, ncol=length(p1), nrow=length(p2), byrow=TRUE) + p2 > p <- as.numeric(tapply(p, age, sum)) > p <- p / sum(p) > ##### > > age <- sort(unique(as.numeric(age))) > > plot(age, p) > > lines(age1, p1) > lines(age2, p2) > > ______________________________________________ > 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. >Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
Berwin A Turlach
2008-Jan-15 13:28 UTC
[R] Looking for simpler solution to probabilistic question
G'day Rainer, On Tue, 15 Jan 2008 14:24:08 +0200 Rainer M Krug <R.M.Krug at gmail.com> wrote:> I have two processes which take with a certain probability (p1 and > p2) x number of years to complete (age1 and age2). As soon as thge > first process is completed, the second one begins. I want to > calculate the time it takes for the both processes to be completed. > > I have the following script which gives me the answer, butI think > there must be a more elegant way of doing the calculations between > the #####The code between the #### together with the first line after the second #### could be just shortened to:> ager <- range(age1) + range(age2) > ager <- ager[1]:ager[2] > pp1 <- c(cumsum(p1), rev(cumsum(rev(p1)))) > pp2 <- c(cumsum(p2[-21]), rev(cumsum(rev(p2)))[-1]) > pr <- pp1+pp2 > pr <- pr/sum(pr)> all.equal(p, pr)[1] TRUE> all.equal(age, ager)[1] TRUE If this is more elegant is probably in the eye of the beholder, but it should definitely use less memory. :) BTW, I am intrigued, in which situation does this problem arise? The time it takes the second process to finish seems to depend in a curious way on the time it took the first process to complete..... Cheers, Berwin =========================== Full address ============================Berwin A Turlach Tel.: +65 6516 4416 (secr) Dept of Statistics and Applied Probability +65 6516 6650 (self) Faculty of Science FAX : +65 6872 3919 National University of Singapore 6 Science Drive 2, Blk S16, Level 7 e-mail: statba at nus.edu.sg Singapore 117546 http://www.stat.nus.edu.sg/~statba