##############################################
# Example: Simulating the GDINA model
n <- 50 # number of persons
# define Q matrix
q.matrix <- matrix( c(1,1,0 ,
0,1,1,
1,0,1,
1,0,0,
0,0,1,
0,1,0,
1,1,1,
0,1,1,
0,1,1) , ncol=3 , byrow=TRUE)
# thresholds for attributes alpha^\ast
thresh.alpha <- c( .65 , 0 , -.30 )
# covariance matrix for alpha^\ast
cov.alpha <- matrix(1,3,3)
cov.alpha[1,2] <- cov.alpha[2,1] <- .4
cov.alpha[1,3] <- cov.alpha[3,1] <- .6
cov.alpha[3,2] <- cov.alpha[2,3] <- .8
# prepare design matrix by applying sim.gdina.prepare function
rp <- sim.gdina.prepare( q.matrix )
delta <- rp$delta
necc.attr <- rp$necc.attr
Aj <- rp$Aj
Mj <- rp$Mj
# define delta parameters
# intercept - main effects - second order interactions - ...
str(delta) # => modify the delta parameter list which contains only zeroes as default
## List of 9
## $ : num [1:4] 0 0 0 0
## $ : num [1:4] 0 0 0 0
## $ : num [1:4] 0 0 0 0
## $ : num [1:2] 0 0
## $ : num [1:2] 0 0
## $ : num [1:2] 0 0
## $ : num [1:8] 0 0 0 0 0 0 0 0
## $ : num [1:4] 0 0 0 0
## $ : num [1:4] 0 0 0 0
delta[[1]] <- c( .2 , .1 , .15 , .4 )
delta[[2]] <- c( .2 , .3 , .3 , -.2 )
delta[[3]] <- c( .2 , .2 , .2 , 0 )
delta[[4]] <- c( .15 , .6 )
delta[[5]] <- c( .1 , .7 )
delta[[6]] <- c( .25 , .65 )
delta[[7]] <- c( .25 , .1 , .1 , .1 , 0 , 0 , 0 , .25 )
delta[[8]] <- c( .2 , 0 , .3 , -.1 )
delta[[9]] <- c( .2 , .2 , 0 , .3 )
#******************************************
# Now, the "real simulation" is starting
sim.res <- sim.gdina( n=n , q.matrix =q.matrix , delta=delta , link = "identity" ,
thresh.alpha=thresh.alpha , cov.alpha=cov.alpha ,
Mj=Mj , Aj=Aj , necc.attr =necc.attr)
# sim.res$data # data
# sim.res$alpha # alpha
Run the code above in your browser using DataLab