###################################################
# Function: generate_diff_irt
# Generates item difficulty threshold matrix for
# IRT model simulation
###################################################


generate_diff_irt <- function(J=7,M=4) {
  # if J=7, item 5. Else, item 3
  if(J==7){
    i <- 5
  }
  if(J==4){
    i <- 3
  }
  difficulties = matrix(c(0), J,M-1)
  rownames(difficulties)=paste("item",1:J)
  colnames(difficulties)=paste("Moda", 1:(M-1))
  for (j in 1:J){
    difficulties[j,1] = qnorm(j/(J+1))
  }
  if (M>2) {
  for (j in 1:J){
    for (m in 2:(M-1)){
      difficulties[j,m]= difficulties[j,1]+(m-1)*2/(M-2)
    }
  }
  }
  difficulties = difficulties-mean(difficulties)
  return(difficulties)
}





###################################################
# GENERATE MATRIX FOR SIMULATION
###################################################

generate_diff_irt(J=4,M=2)
generate_diff_irt(J=4,M=4)
generate_diff_irt(J=7,M=2)
generate_diff_irt(J=7,M=4)