On Feb 20, 2012, at 10:11 AM, <murali.me...@avivainvestors.com> wrote:

Folks,

I'm trying to get stats from a matrix for each transition from one state to another.

I have a matrix x as below.

structure(c(0, 2, 2, 2, 0, 0, 0, 1, 1, 1, 1, 2, 2, 1, 1, 1, 0,
0, 2, 2, 0.21, -0.57, -0.59, 0.16, -1.62, 0.18, -0.81, -0.19,
-0.76, 0.74, -1.51, 2.79, 0.41, 1.63, -0.86, -0.81, 0.39, -1.38,
0.06, 0.84, 0.51, -1, -1.29, 2.15, 0.39, 0.78, 0.85, 1.18, 1.66,
0.9, -0.94, -1.29, -0.23, -0.92, -0.21, 1.02, -0.77, -0.68, -0.33,
0.04), .Dim = c(20L, 3L), .Dimnames = list(NULL, c("State", "V1",
"V2")))

Is it possible to get, say, mean values of each variable in state 1 when the previous state was 0, in state 2 when the previous state was 0, and so on with all available transitions between states 0, 1, 2?

In the above case, mean of V1 in state 2 when previous state was 0 would be

mean(c(-0.57, -0.59, 0.16, 0.06, 0.84)) = -0.02

while the mean of V1 in state 0 when previous state was 2 would be:

mean(c(1.62, 0.18, -0.81)) = 0.33

If I try something like

by(x[, 2:3], x[, 1], FUN = colMeans)

I get the means for each state. I'm not sure how to get the split by transition?

Add an extra column of previous states: and tabulate:

> sss <-cbind(sss,  c(NA, sss[,"State"][-nrow(sss)]) )

> table(sss[,"State"], sss[,4])

    0 1 2
  0 3 1 1
  1 1 5 1
  2 2 1 4

The requested means for "V1" by transition types:
> tapply(sss[,"V1"], INDEX=interaction(sss[,"State"], sss[,4]), mean)
   0.0    1.0    2.0    0.1    1.1    2.1    0.2    1.2    2.2
-0.670 -0.190 -0.255  0.390 -0.640  2.790 -1.620  1.630  0.205

The counts on which those means are based:
> tapply(sss[,"V1"], INDEX=interaction(sss[,"State"], sss[,4]), length)
0.0 1.0 2.0 0.1 1.1 2.1 0.2 1.2 2.2
  3   1   2   1   5   1   1   1   4

--

David Winsemius, MD
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.

Reply via email to