[R-sig-ME] Two random effects with identical conditional modes
boomslang
boomslang_fibs at yahoo.co.uk
Mon Jul 22 01:33:17 CEST 2013
Hello all,
I have data with one categorial variable 'p'. A binary outcome ('result') is the result of a process determined by exactly two DIFFERENT levels of p.
I am interested in the contribution of each level of p to the outcome of 'result'.
The code below produces a small but similar version of the dataset:
set.seed( 1)
p <- letters[1:6]
p1 <- sample( p, 30, replace = T)
p2 <- sample( p, 30, replace = T)
result <- runif( n = 30) > 0.7
x <- data.frame( p1, p2, result)
x <- subset( x, p1 != p2)
print( x, row.names = F)
If I do
glmer( result ~ 1 + (1|p1) + (1|p2), x, binomial)
ranef( fm)
... I get different conditional modes for the levels in p1 and p2, but this is not what I want since the condional mode of 'a' in p1 should be the same as the conditional mode of 'a' in p2.
If I look at the random effects model matrix fm at Zt I see:
12 x 27 sparse Matrix of class "dgCMatrix"
[1,] . . . . . . . . . 1 . . . . . . . . . . . 1 . . 1 . . #p1-a
[2,] 1 . . . 1 . . . . . 1 1 . . . . . . . 1 . . 1 . . . . #p1-b
[3,] . 1 . . . . . . . . . . 1 . 1 . . 1 . . . . . 1 . 1 .
[4,] . . 1 . . . . 1 1 . . . . . . . . . . . 1 . . . . . .
[5,] . . . . . . . . . . . . . 1 . 1 . . . . . . . . . . .
[6,] . . . 1 . 1 1 . . . . . . . . . 1 . 1 . . . . . . . 1 #p1-f
[7,] . . . . . . . 1 . . . . . . . 1 . . . . . . 1 1 . . . #p2-a
[8,] . . . 1 . . . . . . . . . . . . . . . . . 1 . . 1 . . #p2-b
[9,] 1 . 1 . . . . . . 1 . . . . . . 1 . 1 . 1 . . . . . .
[10,] . 1 . . . . . . . . . 1 1 1 . . . . . . . . . . . 1 1
[11,] . . . . 1 1 1 . 1 . 1 . . . 1 . . 1 . . . . . . . . .
[12,] . . . . . . . . . . . . . . . . . . . 1 . . . . . . . #p2-f
... while I need Zt to be more like this:
[1,] . . . . . . . 1 . 1 . . . . . 1 . . . . . 1 1 1 1 . . # a
[2,] 1 . . 1 1 . . . . . 1 1 . . . . . . . 1 . 1 1 . 1 . . # b
[3,] 1 1 1 . . . . . . 1 . . 1 . 1 . 1 1 1 . 1 . . 1 . 1 . # c
[4,] . 1 1 . . . . 1 1 . . 1 1 1 . . . . . . 1 . . . . 1 1 # d
[5,] . . . . 1 1 1 . 1 . 1 . . 1 1 1 . 1 . . . . . . . . . # e
[6,] . . . 1 . 1 1 . . . . . . . . . 1 . 1 1 . . . . . . 1 # f
i.e. a 6x27 with exactly two 1's in each column.
Is there a simple way/trick to obtain this? Is the Pinheiro package perhaps better suited for my problem?
Any help is appreciated. Thanks in advance.
PS: The dataset is very large: it has about 2 million rows and 'p' has about 10000 levels. (This is the reason why I use random effects for p. Preferably I would use fixed effects.)
More information about the R-sig-mixed-models
mailing list