# FFD ffd.fake <- function(J, K, mu.a.true, x1.true, x2.true, x3.true, f.true, sigma.item.true, sigma.id.true, sigma.y.true){ item <- rep(1:K, J) # item id <- rep(1:J, each=K) # subject cond <- rep(c(1,2,3,4,5,6,7,8, 2,3,4,5,6,7,8,1, 3,4,5,6,7,8,1,2, 4,5,6,7,8,1,2,3, 5,6,7,8,1,2,3,4, 6,7,8,1,2,3,4,5, 7,8,1,2,3,4,5,6, 8,1,2,3,4,5,6,7), J*K/64) f <- ifelse(cond<=4, -.5, .5) # frequency x1 <- rep(0,J*K) x2 <- rep(0,J*K) x3 <- rep(0,J*K) x1[cond==2 | cond==6] <- .5 x1[cond==3 | cond==7] <- -.5 x2[cond==1 | cond==5] <- -.5 x2[cond==4 | cond==8] <- .5 x3[ (cond==1 | cond==4) | (cond==5 | cond==8) ] <- -.25 x3[ (cond==2 | cond==3) | (cond==6 | cond==7) ] <- .25 # hyperparameters for ffd mu.a.true #<- 228 f.true #<- 7 x1.true #<- 7 x2.true #<- 7 x3.true #<- 7 sigma.item.true #<- 16 sigma.id.true #<- 25 sigma.y.true #<- 65 print(f.true) # person- and item level parameters a.id.true <- rnorm(J, 0, sigma.id.true) a.item.true <- rnorm(K, 0, sigma.item.true) # data y <- rnorm(J*K, log(mu.a.true) + f*log(1+f.true/mu.a.true) + x1*log(1+x1.true/mu.a.true)+ x2*log(1+x2.true/mu.a.true) + x3*log(1+x3.true/mu.a.true) + a.id.true[id] + a.item.true[item], sigma.y.true) y <- exp(y) #y <- data.frame(y, f, x1, x2, x3, id, item) return(data.frame(y, f, x1, x2, x3, id, item)) }