Added DIF scenarios up to 16

This commit is contained in:
2024-02-01 16:40:47 +01:00
parent 91e57f1563
commit be102c243d
5 changed files with 1065 additions and 161 deletions

View File

@ -19,7 +19,6 @@ lastChar <- function(str){
############################# ANALYSIS FUNCTIONS #############################
#----------------------------------------------------------------------------#
##############################################################################
pcm_analysis <- function(df=NULL,treatment='TT',irtmodel='PCM2',method='MML') {
nbitems <- sum(sapply(1:20,function(x) paste0('item',x)) %in% colnames(df))
resp <- df[,sapply(seq(1,nbitems),function(x) paste0('item',x))]
@ -43,19 +42,19 @@ replicate_pcm_analysis_m4 <- function(df=NULL,treatment='TT',irtmodel='PCM2',met
if (method=='MML') {
n <- max(df[,sequence])
print(n)
tam1 <- pbmclapply(seq(1,n),
tam1 <- lapply(seq(1,n),
function(x) pcm_analysis(df=df[df[,sequence]==x,],treatment=treatment,irtmodel=irtmodel)
)
)
}
listitems <- c(sapply(c('_1','_2','_3'),function(x) paste0(sapply(seq(1,nbitems),function(x) paste0('item',x)),x)))
returndat <- data.frame(matrix(nrow=max(df[,sequence]),ncol=length(listitems)))
colnames(returndat) <- listitems
for (s in seq(1,max(df[,sequence]))) {
for (k in seq(1,nbitems)) {
returndat[s,paste0('item',k,'_1')] <- tam1[[s]]$item[k,'AXsi_.Cat1']
returndat[s,paste0('item',k,'_2')] <- tam1[[s]]$item[k,'AXsi_.Cat2']-tam1[[s]]$item[k,'AXsi_.Cat1']
returndat[s,paste0('item',k,'_3')] <- tam1[[s]]$item[k,'AXsi_.Cat3']-tam1[[s]]$item[k,'AXsi_.Cat2']
}
for (k in seq(1,nbitems)) {
returndat[s,paste0('item',k,'_1')] <- tam1[[s]]$item[k,'AXsi_.Cat1']
returndat[s,paste0('item',k,'_2')] <- tam1[[s]]$item[k,'AXsi_.Cat2']-tam1[[s]]$item[k,'AXsi_.Cat1']
returndat[s,paste0('item',k,'_3')] <- tam1[[s]]$item[k,'AXsi_.Cat3']-tam1[[s]]$item[k,'AXsi_.Cat2']
}
}
returndat <- returndat[,sort_by(listitems, lastChar)]
returndat$beta <- sapply(seq(1,max(df[,sequence])),function(k) tam1[[k]]$beta[2])
@ -91,8 +90,8 @@ replicate_pcm_analysis_m2 <- function(df=NULL,treatment='TT',irtmodel='PCM2',met
if (method=='MML') {
n <- max(df[,sequence])
print(n)
tam1 <- pbmclapply(seq(1,n),
function(x) pcm_analysis(df=df[df[,sequence]==x,],treatment=treatment,irtmodel=irtmodel)
tam1 <- lapply(seq(1,n),
function(x) pcm_analysis(df=df[df[,sequence]==x,],treatment=treatment,irtmodel=irtmodel)
)
}
listitems <- sapply(seq(1,nbitems),function(x) paste0('item',x))
@ -126,12 +125,12 @@ replicate_pcm_analysis_m2 <- function(df=NULL,treatment='TT',irtmodel='PCM2',met
}
replicate_pcm_analysis<- function(df=NULL,treatment='TT',irtmodel='PCM2',method='MML',sequence='replication',truebeta=0,eff.size=0,difsize=NA,nbdif=0) {
replicate_pcm_analysis<- function(df=NULL,treatment='TT',irtmodel='PCM2',method='MML',sequence='replication',eff.size=0,difsize=NA,nbdif=0) {
j <- max(df$item1)
if(j==1) {
return(replicate_pcm_analysis_m2(df=NULL,treatment='TT',irtmodel='PCM2',method='MML',sequence='replication',truebeta=0,eff.size=0,difsize=NA,nbdif=0))
return(replicate_pcm_analysis_m2(df=df,treatment=treatment,irtmodel=irtmodel,method=method,sequence=sequence,eff.size=eff.size,difsize=difsize,nbdif=nbdif))
} else {
return(replicate_pcm_analysis_m4(df=NULL,treatment='TT',irtmodel='PCM2',method='MML',sequence='replication',truebeta=0,eff.size=0,difsize=NA,nbdif=0))
return(replicate_pcm_analysis_m4(df=df,treatment=treatment,irtmodel=irtmodel,method=method,sequence=sequence,eff.size=eff.size,difsize=difsize,nbdif=nbdif))
}
}