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