[R] Copying matrices with certain probabilities

2009-10-04 Thread William Aue
Hi all! Below is the problem I am struggling with.

Let’s say I have a matrix (x) of values:

# [,1] [,2] [,3] [,4]
#[1,]    1    3    2    1
#[2,]    2    1    3    2

I need to copy the items into a new matrix (y) with certain
probability guidelines. I need to set it up such that:

1. for each item there is a probability (a) that the item will or will
not be copied at all from x to y. If nothing is copied then the
corresponding value in y should be 0.

2. If something is copied from x to y, then there should be a separate
probability (b) that the items will be correctly copied to y with
items that are incorrectly copied being randomly drawn from a
geometric distribution.

So y may look like the below example. Row 1 shows that [1,2] was
copied and subsequently correctly copied but nothing else in [1,] was
copied. In [2,], [2,1] was copied but subsequently incorrectly copied,
[2,2]  [2,3] were not copied at all, and [2,4] was copied and
correctly copied.

# [,1] [,2] [,3] [,4]
#[1,]0300
#[2,]5002

I would also like to setup a loop for this process wherein if
something doesn’t get copied at all during a previous pass, then there
is the opportunity for it to be copied on a second/third/etc pass.

I hope this is clear enough. I am still a novice at R, so any
help/guidance that can be offered will be greatly appreciated.

Best,

Billy Aue

__
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.


Re: [R] Copying matrices with certain probabilities

2009-10-04 Thread David Winsemius


On Oct 4, 2009, at 9:36 AM, William Aue wrote:


Hi all! Below is the problem I am struggling with.

Let’s say I have a matrix (x) of values:

# [,1] [,2] [,3] [,4]
#[1,]1321
#[2,]2132

I need to copy the items into a new matrix (y) with certain
probability guidelines. I need to set it up such that:

1. for each item there is a probability (a) that the item will or will
not be copied at all from x to y. If nothing is copied then the
corresponding value in y should be 0.


That would be simple enough with binomial sampling using the specified  
probabilities.


?sample
?rbinom

Matrices in R can be thought of as folded vectors so the * operator  
acts element wise. If you populated a probability matrix, P, you could  
get useful results with M * P



2. If something is copied from x to y, then there should be a separate
probability (b) that the items will be correctly copied to y with
items that are incorrectly copied being randomly drawn from a
geometric distribution.


So, why then did you not offer two 2 x 4 matrices of correct and  
incorrect probabilities to specify what you mean? And while you are at  
it can you also specify what sort of geometric distribution parameters  
you have in mind to go along with the incorrect draws?


?rgeom




So y may look like the below example. Row 1 shows that [1,2] was
copied and subsequently correctly copied but nothing else in [1,] was
copied. In [2,], [2,1] was copied but subsequently incorrectly copied,
[2,2]  [2,3] were not copied at all, and [2,4] was copied and
correctly copied.

# [,1] [,2] [,3] [,4]
#[1,]0300
#[2,]5002

I would also like to setup a loop for this process wherein if
something doesn’t get copied at all during a previous pass, then there
is the opportunity for it to be copied on a second/third/etc pass.


And can you clarify whether this would be the same matrix that I above  
suggested should have been offered in your original posting should the  
probabiliies increase if the item was not copied at all. If the  
probabilies should get altered , i.e, the (inhomogeneous) process has  
memory, then in what way should thoe probabilities change?




I hope this is clear enough. I am still a novice at R, so any
help/guidance that can be offered will be greatly appreciated.

OK, ... and provide commented, minimal, self-contained, reproducible  
code. That would mean specifying your matrices along the lines of:


M - matrix(c( 0, 3, 0,  0,  5, 0, 0, 2), nrow=2, byrow=TRUE)

...rather than expecting the responders to repeat that work.


Best,

Billy Aue



David Winsemius, MD
Heritage Laboratories
West Hartford, CT

__
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.