############################################################################## #----------------------------------------------------------------------------# ################################## LIBRARIES ################################# #----------------------------------------------------------------------------# ############################################################################## library(TAM) library(doMC) library(parallel) library(pbmcapply) library(funprog) library(dplyr) library(readxl) lastChar <- function(str){ substr(str, nchar(str)-2, nchar(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))] if (method=='MML') { tam1 <- tam.mml(resp=resp,Y=df[,treatment],irtmodel = irtmodel,est.variance = T,verbose=F) } if (method=='JML') { tam1 <- tam.jml(resp=resp,group=1+df[,treatment]) } if (method!='MML' & method!='JML') { stop('Invalid method. Please choose among MML or JML') } return(tam1) } replicate_pcm_analysis_m4 <- function(df=NULL,treatment='TT',irtmodel='PCM2',method='MML',sequence='replication',eff.size=0,difsize=NA,nbdif=0) { nbitems <- sum(sapply(1:20,function(x) paste0('item',x)) %in% colnames(df)) resp <- df[,sapply(seq(1,nbitems),function(x) paste0('item',x))] truebeta <- eff.size if (method=='MML') { n <- max(df[,sequence]) print(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'] } } returndat <- returndat[,sort_by(listitems, lastChar)] returndat$beta <- sapply(seq(1,max(df[,sequence])),function(k) tam1[[k]]$beta[2]) returndat$se.beta <- 1.413612*sapply(seq(1,max(df[,sequence])),function(k) tam.se(tam1[[k]])$beta$se.Dim1[2] ) returndat$low.ci.beta <- returndat$beta-1.96*returndat$se.beta returndat$high.ci.beta <- returndat$beta+1.96*returndat$se.beta returndat$true.value.in.ci <- 1*(truebeta>returndat$low.ci.beta & truebetareturndat$high.ci.beta) if (truebeta==0) { returndat$beta.same.sign.truebeta <- NA } else { returndat$beta.same.sign.truebeta <- 1*(sign(truebeta)==sign(returndat$beta)) } returndat2 <- data.frame(J=rep(nbitems,max(df[,sequence])), M=1+max(df$item1), N=nrow(df[df$replication==1,])/2, eff.size=truebeta, dif.size= difsize, nb.dif= nbdif ) returndat <- cbind(returndat2,returndat) return(returndat) } replicate_pcm_analysis_m2 <- function(df=NULL,treatment='TT',irtmodel='PCM2',method='MML',sequence='replication',eff.size=0,difsize=NA,nbdif=0) { truebeta <- eff.size nbitems <- sum(sapply(1:20,function(x) paste0('item',x)) %in% colnames(df)) resp <- df[,sapply(seq(1,nbitems),function(x) paste0('item',x))] if (method=='MML') { n <- max(df[,sequence]) print(n) 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)) 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)] <- tam1[[s]]$xsi$xsi[k] } } returndat$beta <- sapply(seq(1,max(df[,sequence])),function(k) tam1[[k]]$beta[2]) returndat$se.beta <- 1.413612*sapply(seq(1,max(df[,sequence])),function(k) tam.se(tam1[[k]])$beta$se.Dim1[2] ) returndat$low.ci.beta <- returndat$beta-1.96*returndat$se.beta returndat$high.ci.beta <- returndat$beta+1.96*returndat$se.beta returndat$true.value.in.ci <- 1*(truebeta>returndat$low.ci.beta & truebetareturndat$high.ci.beta) if (truebeta==0) { returndat$beta.same.sign.truebeta <- NA } else { returndat$beta.same.sign.truebeta <- 1*(sign(truebeta)==sign(returndat$beta)) } returndat2 <- data.frame(J=rep(nbitems,max(df[,sequence])), M=1+max(df$item1), N=nrow(df[df$replication==1,])/2, eff.size=truebeta, dif.size= difsize, nb.dif= nbdif ) returndat <- cbind(returndat2,returndat) return(returndat) } 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=df,treatment=treatment,irtmodel=irtmodel,method=method,sequence=sequence,eff.size=eff.size,difsize=difsize,nbdif=nbdif)) } else { return(replicate_pcm_analysis_m4(df=df,treatment=treatment,irtmodel=irtmodel,method=method,sequence=sequence,eff.size=eff.size,difsize=difsize,nbdif=nbdif)) } } ############################################################################## #----------------------------------------------------------------------------# ################################# AGGREGATION ################################ #----------------------------------------------------------------------------# ############################################################################## #### Create data.frame results <- c(sapply(1:4,function(x) paste0(x,c('A','B','C','D','E'))),sapply(5:9,function(x) paste0(x,c('A','B','C','D','E','F','G')))) results2 <- c(sapply(10:20,function(x) paste0(x,c('A','B','C','D','E','F','G')))) results <- c(sapply(c(50,100,200,300),function(x) paste0(results,'_',x))) results2 <- c(sapply(c(50,100,200,300),function(x) paste0(results2,'_',x))) results <- sort(results) results2 <- sort(results2) results <- c(results,results2) #### Compiler function compile_simulation <- function(scenario) { name <- as.numeric(gsub("[^0-9.-]", "", substr(scenario,start=0,stop=2))) if (substr(scenario,start=nchar(scenario)-1,stop=nchar(scenario))=="50" & name<=4) { s <- read.csv(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/NoDIF/N50/scenario_',scenario,'.csv')) } if (substr(scenario,start=nchar(scenario)-1,stop=nchar(scenario))=="50" & name>4) { s <- read.csv(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/NoDIF/N50/scenario_',scenario,'.csv')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="100" & name<=4) { s <- read.csv(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/NoDIF/N100/scenario_',scenario,'.csv')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="100" & name>4) { s <- read.csv(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/NoDIF/N100/scenario_',scenario,'_nodif.csv')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="200" & name<=4) { s <- read.csv(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/NoDIF/N200/scenario_',scenario,'.csv')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="200" & name>4) { s <- read.csv(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/NoDIF/N200/scenario_',scenario,'_nodif.csv')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="300" & name<=4) { s <- read.csv(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/NoDIF/N300/scenario_',scenario,'.csv')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="300" & name>4) { s <- read.csv(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/NoDIF/N300/scenario_',scenario,'_nodif.csv')) } if (unique(s$J)==4) { if (unique(s$M)==2) { a <- data.frame(m.item1=mean(s$item1),m.item2=mean(s$item2),m.item3=mean(s$item3),m.item4=mean(s$item4)) } else { a <- data.frame(m.item1_1=mean(s$item1_1),m.item1_2=mean(s$item1_2),m.item1_3=mean(s$item1_3), m.item2_1=mean(s$item2_1),m.item2_2=mean(s$item2_2),m.item2_3=mean(s$item2_3), m.item3_1=mean(s$item3_1),m.item3_2=mean(s$item3_2),m.item3_3=mean(s$item3_3), m.item4_1=mean(s$item4_1),m.item4_2=mean(s$item4_2),m.item4_3=mean(s$item4_3) ) } } else { if (unique(s$M)==2) { a <- data.frame(m.item1=mean(s$item1),m.item2=mean(s$item2),m.item3=mean(s$item3),m.item4=mean(s$item4), m.item5=mean(s$item5),m.item6=mean(s$item6),m.item7=mean(s$item7)) } else { a <- data.frame(m.item1_1=mean(s$item1_1),m.item1_2=mean(s$item1_2),m.item1_3=mean(s$item1_3), m.item2_1=mean(s$item2_1),m.item2_2=mean(s$item2_2),m.item2_3=mean(s$item2_3), m.item3_1=mean(s$item3_1),m.item3_2=mean(s$item3_2),m.item3_3=mean(s$item3_3), m.item4_1=mean(s$item4_1),m.item4_2=mean(s$item4_2),m.item4_3=mean(s$item4_3), m.item5_1=mean(s$item5_1),m.item5_2=mean(s$item5_2),m.item5_3=mean(s$item5_3), m.item6_1=mean(s$item6_1),m.item6_2=mean(s$item6_2),m.item6_3=mean(s$item6_3), m.item7_1=mean(s$item7_1),m.item7_2=mean(s$item7_2),m.item7_3=mean(s$item7_3) ) } } N <- ifelse(substr(scenario,start=nchar(scenario)-1,stop=nchar(scenario))=="50","50",substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))) zz <- ifelse(N=="50",substr(scenario,start=0,stop=nchar(scenario)-3),substr(scenario,start=0,stop=nchar(scenario)-4)) b <- data.frame(scenario=zz, scenario.type=substr(zz,start=nchar(zz),stop=nchar(zz)), N=N, J=unique(s$J), M=unique(s$M), eff.size=unique(s$eff.size), nb.dif=unique(s$nb.dif), dif.size=unique(s$dif.size) ) z <- data.frame(m.beta=mean(s$beta), se.empirical.beta=sd(s$beta), se.analytical.beta=mean(s$se.beta), m.low.ci.beta=mean(s$low.ci.beta), m.high.ci.beta=mean(s$high.ci.beta), true.value.in.ci.p=mean(s$true.value.in.ci), h0.rejected.p=mean(s$h0.rejected), beta.same.sign.truebeta.p=mean(s$beta.same.sign.truebeta,na.rm=T), beta.same.sign.truebeta.signif.p=mean(s[s$h0.rejected==1,]$beta.same.sign.truebeta,na.rm=T)) d <- cbind(b,a,z) d$prop. return(d) } #### Compiled results res.dat <- compile_simulation('1A_100') for (x in results[seq(2,length(results))]) { y <- compile_simulation(x) res.dat <- bind_rows(res.dat,y) } res.dat[res.dat$scenario.type=='A','dif.size'] <- -res.dat[res.dat$scenario.type=='A','dif.size'] res.dat[is.na(res.dat$dif.size),'dif.size'] <- 0 res.dat[193:417,'nb.dif'] <- 2 res.dat[417:528,'nb.dif'] <- 3 res.dat[res.dat$scenario.type=="B",]$eff.size <- 0.2 res.dat[res.dat$scenario.type=="C" & res.dat$dif.size==0,]$eff.size <- 0.4 res.dat[res.dat$scenario.type=="C" & res.dat$dif.size!=0,]$eff.size <- 0.2 res.dat[res.dat$scenario.type=="D" & res.dat$dif.size==0,]$eff.size <- -0.2 res.dat[res.dat$scenario.type=="D" & res.dat$dif.size!=0,]$eff.size <- 0.4 res.dat[res.dat$scenario.type=="E" & res.dat$dif.size==0,]$eff.size <- -0.4 res.dat[res.dat$scenario.type=="E" & res.dat$dif.size!=0,]$eff.size <- 0.4 res.dat[res.dat$scenario.type=="F",]$eff.size <- -0.2 res.dat[res.dat$scenario.type=="G",]$eff.size <- -0.4 View(res.dat) res.dat.simple <- res.dat[,c(1:8,13,16:18)] res.dat.simple$m.beta <- round(res.dat.simple$m.beta,3) res.dat.simple ############################################################################## #----------------------------------------------------------------------------# ########################### AGGREGATION DIF MATRICES ######################### #----------------------------------------------------------------------------# ############################################################################## #### Create data.frame results <- c(sapply(1:4,function(x) paste0(x,c('A','B','C','D','E'))),sapply(5:9,function(x) paste0(x,c('A','B','C','D','E','F','G')))) results2 <- c(sapply(10:20,function(x) paste0(x,c('A','B','C','D','E','F','G')))) results <- c(sapply(c(50,100,200,300),function(x) paste0(results,'_',x))) results2 <- c(sapply(c(50,100,200,300),function(x) paste0(results2,'_',x))) results <- sort(results) results2 <- sort(results2) results <- c(results,results2)[81:528] #### Compiler function compile_simulation2 <- function(scenario) { name <- as.numeric(gsub("[^0-9.-]", "", substr(scenario,start=0,stop=2))) if (substr(scenario,start=nchar(scenario)-1,stop=nchar(scenario))=="50" & name>4) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/DIF/N50/',scenario,'.xls')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="100" & name>4) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/DIF/N100/',scenario,'.xls')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="200" & name>4) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/DIF/N200/',scenario,'.xls')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="300" & name>4) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/DIF/N300/',scenario,'.xls')) } J <- max(which(sapply(1:7,function(x) paste0('item',x) %in% colnames(s) | paste0('item',x,'_1') %in% colnames(s)))) M <- 1+sum(sapply(1:3,function(x) paste0('item1_',x) %in% colnames(s) )) if (M==1) {M <- 2} nb.dif <- max(which(sapply(1:3,function(x) paste0('dif',x) %in% colnames(s) | paste0('dif',x,'_1') %in% colnames(s)))) if (J==4) { if (M==2) { a <- data.frame(m.item1=mean(s$item1),m.item2=mean(s$item2),m.item3=mean(s$item3),m.item4=mean(s$item4)) } else { a <- data.frame(m.item1_1=mean(s$item1_1),m.item1_2=mean(s$item1_2),m.item1_3=mean(s$item1_3), m.item2_1=mean(s$item2_1),m.item2_2=mean(s$item2_2),m.item2_3=mean(s$item2_3), m.item3_1=mean(s$item3_1),m.item3_2=mean(s$item3_2),m.item3_3=mean(s$item3_3), m.item4_1=mean(s$item4_1),m.item4_2=mean(s$item4_2),m.item4_3=mean(s$item4_3) ) } } else { if (M==2) { a <- data.frame(m.item1=mean(s$item1),m.item2=mean(s$item2),m.item3=mean(s$item3),m.item4=mean(s$item4), m.item5=mean(s$item5),m.item6=mean(s$item6),m.item7=mean(s$item7)) } else { a <- data.frame(m.item1_1=mean(s$item1_1),m.item1_2=mean(s$item1_2),m.item1_3=mean(s$item1_3), m.item2_1=mean(s$item2_1),m.item2_2=mean(s$item2_2),m.item2_3=mean(s$item2_3), m.item3_1=mean(s$item3_1),m.item3_2=mean(s$item3_2),m.item3_3=mean(s$item3_3), m.item4_1=mean(s$item4_1),m.item4_2=mean(s$item4_2),m.item4_3=mean(s$item4_3), m.item5_1=mean(s$item5_1),m.item5_2=mean(s$item5_2),m.item5_3=mean(s$item5_3), m.item6_1=mean(s$item6_1),m.item6_2=mean(s$item6_2),m.item6_3=mean(s$item6_3), m.item7_1=mean(s$item7_1),m.item7_2=mean(s$item7_2),m.item7_3=mean(s$item7_3) ) } } N <- ifelse(substr(scenario,start=nchar(scenario)-1,stop=nchar(scenario))=="50","50",substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))) zz <- ifelse(N=="50",substr(scenario,start=0,stop=nchar(scenario)-3),substr(scenario,start=0,stop=nchar(scenario)-4)) eff.size <- unique(res.dat[res.dat$scenario==zz & res.dat$N==N,'eff.size']) dif.size <- unique(res.dat[res.dat$scenario==zz & res.dat$N==N,'dif.size']) b <- data.frame(scenario=zz, scenario.type=substr(zz,start=nchar(zz),stop=nchar(zz)), N=N, J=J, M=M, eff.size=eff.size, nb.dif=nb.dif, dif.size=dif.size ) true.value.in.ci <- eff.size <= s$beta+1.96*s$se_beta & eff.size >= s$beta-1.96*s$se_beta beta.same.sign.truebeta.p <- ifelse(rep(eff.size,nrow(s))==0,NA,(rep(eff.size,nrow(s))/s$beta)>0) num.reject <- which((s$beta-1.96*s$se_beta)>0 | (s$beta+1.96*s$se_beta)<0) z <- data.frame(m.beta=mean(s$beta), se.empirical.beta=sd(s$beta), se.analytical.beta=mean(s$se_beta), m.low.ci.beta=mean(s$beta-1.96*s$se_beta), m.high.ci.beta=mean(s$beta+1.96*s$se_beta), true.value.in.ci.p=mean(true.value.in.ci), h0.rejected.p=mean( (s$beta-1.96*s$se_beta)>0 | (s$beta+1.96*s$se_beta)<0 ), beta.same.sign.truebeta.p=mean(beta.same.sign.truebeta.p), beta.same.sign.truebeta.signif.p=mean(beta.same.sign.truebeta.p[num.reject]) ) d <- cbind(b,a,z) d$prop. return(d) } #### Compiled results res.dat.dif <- compile_simulation2('5A_100') for (x in results[seq(2,length(results))]) { y <- compile_simulation2(x) res.dat.dif <- bind_rows(res.dat.dif,y) } res.dat$bias <- res.dat$eff.size-res.dat$m.beta res.dat.dif$bias <- res.dat.dif$eff.size-res.dat.dif$m.beta ############################################################################## #----------------------------------------------------------------------------# ####################### AGGREGATION DIF MATRICES ROSALI ###################### #----------------------------------------------------------------------------# ############################################################################## #### Create data.frame results <- c(sapply(1:4,function(x) paste0(x,c('A','B','C','D','E'))),sapply(5:9,function(x) paste0(x,c('A','B','C','D','E','F','G')))) results2 <- c(sapply(10:20,function(x) paste0(x,c('A','B','C','D','E','F','G')))) results <- c(sapply(c(50,100,200,300),function(x) paste0(results,'_',x))) results2 <- c(sapply(c(50,100,200,300),function(x) paste0(results2,'_',x))) results <- sort(results) results2 <- sort(results2) results <- c(results,results2) #### Compiler function compile_simulation2_rosali <- function(scenario) { name <- as.numeric(gsub("[^0-9.-]", "", substr(scenario,start=0,stop=2))) if (substr(scenario,start=nchar(scenario)-1,stop=nchar(scenario))=="50" & name>0) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/ROSALI-DIF/N50/',scenario,'_original.xls')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="100" & name>0) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/ROSALI-DIF/N100/',scenario,'_original.xls')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="200" & name>0) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/ROSALI-DIF/N200/',scenario,'_original.xls')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="300" & name>0) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/ROSALI-DIF/N300/',scenario,'_original.xls')) } J <- max(which(sapply(1:7,function(x) paste0('item',x) %in% colnames(s) | paste0('item',x,'_1') %in% colnames(s)))) M <- 1+sum(sapply(1:3,function(x) paste0('item1_',x) %in% colnames(s) )) if (M==1) {M <- 2} nb.dif <- max(which(sapply(1:3,function(x) paste0('dif',x) %in% colnames(s) | paste0('dif',x,'_1') %in% colnames(s)))) if (J==4) { if (M==2) { a <- data.frame(m.item1=mean(s$item1),m.item2=mean(s$item2),m.item3=mean(s$item3),m.item4=mean(s$item4)) } else { a <- data.frame(m.item1_1=mean(s$item1_1),m.item1_2=mean(s$item1_2),m.item1_3=mean(s$item1_3), m.item2_1=mean(s$item2_1),m.item2_2=mean(s$item2_2),m.item2_3=mean(s$item2_3), m.item3_1=mean(s$item3_1),m.item3_2=mean(s$item3_2),m.item3_3=mean(s$item3_3), m.item4_1=mean(s$item4_1),m.item4_2=mean(s$item4_2),m.item4_3=mean(s$item4_3) ) } } else { if (M==2) { a <- data.frame(m.item1=mean(s$item1),m.item2=mean(s$item2),m.item3=mean(s$item3),m.item4=mean(s$item4), m.item5=mean(s$item5),m.item6=mean(s$item6),m.item7=mean(s$item7)) } else { a <- data.frame(m.item1_1=mean(s$item1_1),m.item1_2=mean(s$item1_2),m.item1_3=mean(s$item1_3), m.item2_1=mean(s$item2_1),m.item2_2=mean(s$item2_2),m.item2_3=mean(s$item2_3), m.item3_1=mean(s$item3_1),m.item3_2=mean(s$item3_2),m.item3_3=mean(s$item3_3), m.item4_1=mean(s$item4_1),m.item4_2=mean(s$item4_2),m.item4_3=mean(s$item4_3), m.item5_1=mean(s$item5_1),m.item5_2=mean(s$item5_2),m.item5_3=mean(s$item5_3), m.item6_1=mean(s$item6_1),m.item6_2=mean(s$item6_2),m.item6_3=mean(s$item6_3), m.item7_1=mean(s$item7_1),m.item7_2=mean(s$item7_2),m.item7_3=mean(s$item7_3) ) } } N <- ifelse(substr(scenario,start=nchar(scenario)-1,stop=nchar(scenario))=="50","50",substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))) zz <- ifelse(N=="50",substr(scenario,start=0,stop=nchar(scenario)-3),substr(scenario,start=0,stop=nchar(scenario)-4)) eff.size <- unique(res.dat[res.dat$scenario==zz & res.dat$N==N,'eff.size']) dif.size <- unique(res.dat[res.dat$scenario==zz & res.dat$N==N,'dif.size']) b <- data.frame(scenario=zz, scenario.type=substr(zz,start=nchar(zz),stop=nchar(zz)), N=N, J=J, M=M, eff.size=eff.size, nb.dif=nb.dif, dif.size=dif.size ) true.value.in.ci <- eff.size <= s$beta+1.96*s$se_beta & eff.size >= s$beta-1.96*s$se_beta beta.same.sign.truebeta.p <- ifelse(rep(eff.size,nrow(s))==0,NA,(rep(eff.size,nrow(s))/s$beta)>0) num.reject <- which((s$beta-1.96*s$se_beta)>0 | (s$beta+1.96*s$se_beta)<0) z <- data.frame(m.beta=mean(s$beta), se.empirical.beta=sd(s$beta), se.analytical.beta=mean(s$se_beta), m.low.ci.beta=mean(s$beta-1.96*s$se_beta), m.high.ci.beta=mean(s$beta+1.96*s$se_beta), true.value.in.ci.p=mean(true.value.in.ci), h0.rejected.p=mean( (s$beta-1.96*s$se_beta)>0 | (s$beta+1.96*s$se_beta)<0 ), beta.same.sign.truebeta.p=mean(beta.same.sign.truebeta.p), beta.same.sign.truebeta.signif.p=mean(beta.same.sign.truebeta.p[num.reject]) ) d <- cbind(b,a,z) d$prop. return(d) } #### Compiled results res.dat.dif.rosali <- compile_simulation2_rosali('1A_100') for (x in results[seq(2,length(results))]) { y <- compile_simulation2_rosali(x) res.dat.dif.rosali <- bind_rows(res.dat.dif.rosali,y) } res.dat.dif.rosali$bias <- res.dat.dif.rosali$eff.size-res.dat.dif.rosali$m.beta ############################################################################## #----------------------------------------------------------------------------# ################################### RESALI ################################### #----------------------------------------------------------------------------# ############################################################################## generate_resali <- function(scenario=NULL,grp=NULL) { scen <- as.numeric(gsub("[A,B,C,D,E,F,G,_]","",substr(scenario,0,3))) if (substr(scenario,start=nchar(scenario)-1,stop=nchar(scenario))=="50") { N <- 50 } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="100") { N <- 100 } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="200") { N <- 200 } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="300") { N <- 300 } if (scen<5) { dat <- read.csv(paste0('/home/corentin/Documents/These/Recherche/Simulations/Data/NoDIF/N',N,'/scenario_',scenario,'.csv')) } if (scen>=5) { dat <- read.csv(paste0('/home/corentin/Documents/These/Recherche/Simulations/Data/DIF/N',N,'/scenario_',scenario,'.csv')) } if (scen%in%c(3,4,13:20)) { res <- resali(df=dat[dat$replication==1,],items = seq(1,7),group=grp,verbose=FALSE) df_res <- data.frame(dif.detect.1=ifelse(length(res$dif.items)>=1,res$dif.items[1],NA), dif.detect.2=ifelse(length(res$dif.items)>=2,res$dif.items[2],NA), dif.detect.3=ifelse(length(res$dif.items)>=3,res$dif.items[3],NA), dif.detect.4=ifelse(length(res$dif.items)>=4,res$dif.items[4],NA), dif.detect.5=ifelse(length(res$dif.items)>=5,res$dif.items[5],NA), dif.detect.6=ifelse(length(res$dif.items)>=6,res$dif.items[6],NA), dif.detect.7=ifelse(length(res$dif.items)>=7,res$dif.items[7],NA), dif.detect.unif.1=ifelse(length(res$uniform)>=1,res$uniform[1],NA), dif.detect.unif.2=ifelse(length(res$uniform)>=2,res$uniform[2],NA), dif.detect.unif.3=ifelse(length(res$uniform)>=3,res$uniform[3],NA), dif.detect.unif.4=ifelse(length(res$uniform)>=4,res$uniform[4],NA), dif.detect.unif.5=ifelse(length(res$uniform)>=5,res$uniform[5],NA), dif.detect.unif.6=ifelse(length(res$uniform)>=6,res$uniform[6],NA), dif.detect.unif.7=ifelse(length(res$uniform)>=7,res$uniform[7],NA), N=N, nbdif=ifelse(scen<=4,0,ifelse(scen<=16,2,3)), true.dif.1=ifelse(scen<=4,NA,unique(dat[dat$replication==1,]$dif1)), true.dif.2=ifelse(scen<=4,NA,unique(dat[dat$replication==1,]$dif2)), true.dif.3=ifelse(scen<=16,NA,unique(dat[dat$replication==1,]$dif3)) ) for (k in 2:1000) { if (k%%100==0) { cat(paste0('N=',k,'/1000\n')) } res <- resali(df=dat[dat$replication==k,],items = seq(1,7),group=grp,verbose=FALSE) df_res2 <- data.frame(dif.detect.1=ifelse(length(res$dif.items)>=1,res$dif.items[1],NA), dif.detect.2=ifelse(length(res$dif.items)>=2,res$dif.items[2],NA), dif.detect.3=ifelse(length(res$dif.items)>=3,res$dif.items[3],NA), dif.detect.4=ifelse(length(res$dif.items)>=4,res$dif.items[4],NA), dif.detect.5=ifelse(length(res$dif.items)>=5,res$dif.items[5],NA), dif.detect.6=ifelse(length(res$dif.items)>=6,res$dif.items[6],NA), dif.detect.7=ifelse(length(res$dif.items)>=7,res$dif.items[7],NA), dif.detect.unif.1=ifelse(length(res$uniform)>=1,res$uniform[1],NA), dif.detect.unif.2=ifelse(length(res$uniform)>=2,res$uniform[2],NA), dif.detect.unif.3=ifelse(length(res$uniform)>=3,res$uniform[3],NA), dif.detect.unif.4=ifelse(length(res$uniform)>=4,res$uniform[4],NA), dif.detect.unif.5=ifelse(length(res$uniform)>=5,res$uniform[5],NA), dif.detect.unif.6=ifelse(length(res$uniform)>=6,res$uniform[6],NA), dif.detect.unif.7=ifelse(length(res$uniform)>=7,res$uniform[7],NA), N=N, nbdif=ifelse(scen<=4,0,ifelse(scen<=16,2,3)), true.dif.1=ifelse(scen<=4,NA,unique(dat[dat$replication==k,]$dif1)), true.dif.2=ifelse(scen<=4,NA,unique(dat[dat$replication==k,]$dif2)), true.dif.3=ifelse(scen<=16,NA,unique(dat[dat$replication==k,]$dif3))) df_res <- rbind(df_res,df_res2) } } else if (scen%in%c(1,2,5:12)) { res <- resali(df=dat[dat$replication==1,],items = seq(1,4),group=grp,verbose=FALSE) df_res <- data.frame(dif.detect.1=ifelse(length(res$dif.items)>=1,res$dif.items[1],NA), dif.detect.2=ifelse(length(res$dif.items)>=2,res$dif.items[2],NA), dif.detect.3=ifelse(length(res$dif.items)>=3,res$dif.items[3],NA), dif.detect.4=ifelse(length(res$dif.items)>=4,res$dif.items[4],NA), dif.detect.unif.1=ifelse(length(res$uniform)>=1,res$uniform[1],NA), dif.detect.unif.2=ifelse(length(res$uniform)>=2,res$uniform[2],NA), dif.detect.unif.3=ifelse(length(res$uniform)>=3,res$uniform[3],NA), dif.detect.unif.4=ifelse(length(res$uniform)>=4,res$uniform[4],NA), N=N, nbdif=ifelse(scen<=4,0,ifelse(scen<=8,1,2)), true.dif.1=ifelse(scen<=4,NA,unique(dat[dat$replication==1,]$dif1)), true.dif.2=ifelse(scen<=8,NA,unique(dat[dat$replication==1,]$dif2)) ) for (k in 2:1000) { if (k%%100==0) { cat(paste0('N=',k,'/1000\n')) } res <- resali(df=dat[dat$replication==k,],items = seq(1,4),group=grp,verbose=FALSE) df_res2 <- data.frame(dif.detect.1=ifelse(length(res$dif.items)>=1,res$dif.items[1],NA), dif.detect.2=ifelse(length(res$dif.items)>=2,res$dif.items[2],NA), dif.detect.3=ifelse(length(res$dif.items)>=3,res$dif.items[3],NA), dif.detect.4=ifelse(length(res$dif.items)>=4,res$dif.items[4],NA), dif.detect.unif.1=ifelse(length(res$uniform)>=1,res$uniform[1],NA), dif.detect.unif.2=ifelse(length(res$uniform)>=2,res$uniform[2],NA), dif.detect.unif.3=ifelse(length(res$uniform)>=3,res$uniform[3],NA), dif.detect.unif.4=ifelse(length(res$uniform)>=4,res$uniform[4],NA), N=N, nbdif=ifelse(scen<=4,0,ifelse(scen<=8,1,2)), true.dif.1=ifelse(scen<=4,NA,unique(dat[dat$replication==k,]$dif1)), true.dif.2=ifelse(scen<=8,NA,unique(dat[dat$replication==k,]$dif2))) df_res <- rbind(df_res,df_res2) } } return(df_res) } results <- c(sapply(1:4,function(x) paste0(x,c('A','B','C','D','E'))),sapply(5:9,function(x) paste0(x,c('A','B','C','D','E','F','G')))) results2 <- c(sapply(10:20,function(x) paste0(x,c('A','B','C','D','E','F','G')))) results <- c(sapply(c(50,100,200,300),function(x) paste0(results,'_',x))) results2 <- c(sapply(c(50,100,200,300),function(x) paste0(results2,'_',x))) results <- sort(results) results2 <- sort(results2) results <- c(results,results2) for (r in results) { cat(paste0(r,"\n")) cat(paste0("-------------------------------------------","\n")) write.csv(generate_resali(r,"TT"),paste0("/home/corentin/Documents/These/Recherche/Simulations/Analysis/RESALI/Detection/",r,".csv")) cat(paste0("-------------------------------------------","\n")) } ############################################################################## #----------------------------------------------------------------------------# ####################### AGGREGATION DIF MATRICES RESALI ###################### #----------------------------------------------------------------------------# ############################################################################## #### Create data.frame results <- c(sapply(1:4,function(x) paste0(x,c('A','B','C','D','E'))),sapply(5:9,function(x) paste0(x,c('A','B','C','D','E','F','G')))) results2 <- c(sapply(10:20,function(x) paste0(x,c('A','B','C','D','E','F','G')))) results <- c(sapply(c(50,100,200,300),function(x) paste0(results,'_',x))) results2 <- c(sapply(c(50,100,200,300),function(x) paste0(results2,'_',x))) results <- sort(results) results2 <- sort(results2) results <- c(results,results2) #### Compiler function compile_simulation2_resali <- function(scenario) { name <- as.numeric(gsub("[^0-9.-]", "", substr(scenario,start=0,stop=2))) if (substr(scenario,start=nchar(scenario)-1,stop=nchar(scenario))=="50" & name>0) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/resali-DIF/N50/',scenario,'_original.xls')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="100" & name>0) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/resali-DIF/N100/',scenario,'_original.xls')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="200" & name>0) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/resali-DIF/N200/',scenario,'_original.xls')) } if (substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))=="300" & name>0) { s <- read_excel(paste0('/home/corentin/Documents/These/Recherche/Simulations/Analysis/resali-DIF/N300/',scenario,'_original.xls')) } J <- max(which(sapply(1:7,function(x) paste0('item',x) %in% colnames(s) | paste0('item',x,'_1') %in% colnames(s)))) M <- 1+sum(sapply(1:3,function(x) paste0('item1_',x) %in% colnames(s) )) if (M==1) {M <- 2} nb.dif <- max(which(sapply(1:3,function(x) paste0('dif',x) %in% colnames(s) | paste0('dif',x,'_1') %in% colnames(s)))) if (J==4) { if (M==2) { a <- data.frame(m.item1=mean(s$item1),m.item2=mean(s$item2),m.item3=mean(s$item3),m.item4=mean(s$item4)) } else { a <- data.frame(m.item1_1=mean(s$item1_1),m.item1_2=mean(s$item1_2),m.item1_3=mean(s$item1_3), m.item2_1=mean(s$item2_1),m.item2_2=mean(s$item2_2),m.item2_3=mean(s$item2_3), m.item3_1=mean(s$item3_1),m.item3_2=mean(s$item3_2),m.item3_3=mean(s$item3_3), m.item4_1=mean(s$item4_1),m.item4_2=mean(s$item4_2),m.item4_3=mean(s$item4_3) ) } } else { if (M==2) { a <- data.frame(m.item1=mean(s$item1),m.item2=mean(s$item2),m.item3=mean(s$item3),m.item4=mean(s$item4), m.item5=mean(s$item5),m.item6=mean(s$item6),m.item7=mean(s$item7)) } else { a <- data.frame(m.item1_1=mean(s$item1_1),m.item1_2=mean(s$item1_2),m.item1_3=mean(s$item1_3), m.item2_1=mean(s$item2_1),m.item2_2=mean(s$item2_2),m.item2_3=mean(s$item2_3), m.item3_1=mean(s$item3_1),m.item3_2=mean(s$item3_2),m.item3_3=mean(s$item3_3), m.item4_1=mean(s$item4_1),m.item4_2=mean(s$item4_2),m.item4_3=mean(s$item4_3), m.item5_1=mean(s$item5_1),m.item5_2=mean(s$item5_2),m.item5_3=mean(s$item5_3), m.item6_1=mean(s$item6_1),m.item6_2=mean(s$item6_2),m.item6_3=mean(s$item6_3), m.item7_1=mean(s$item7_1),m.item7_2=mean(s$item7_2),m.item7_3=mean(s$item7_3) ) } } N <- ifelse(substr(scenario,start=nchar(scenario)-1,stop=nchar(scenario))=="50","50",substr(scenario,start=nchar(scenario)-2,stop=nchar(scenario))) zz <- ifelse(N=="50",substr(scenario,start=0,stop=nchar(scenario)-3),substr(scenario,start=0,stop=nchar(scenario)-4)) eff.size <- unique(res.dat[res.dat$scenario==zz & res.dat$N==N,'eff.size']) dif.size <- unique(res.dat[res.dat$scenario==zz & res.dat$N==N,'dif.size']) b <- data.frame(scenario=zz, scenario.type=substr(zz,start=nchar(zz),stop=nchar(zz)), N=N, J=J, M=M, eff.size=eff.size, nb.dif=nb.dif, dif.size=dif.size ) true.value.in.ci <- eff.size <= s$beta+1.96*s$se_beta & eff.size >= s$beta-1.96*s$se_beta beta.same.sign.truebeta.p <- ifelse(rep(eff.size,nrow(s))==0,NA,(rep(eff.size,nrow(s))/s$beta)>0) num.reject <- which((s$beta-1.96*s$se_beta)>0 | (s$beta+1.96*s$se_beta)<0) z <- data.frame(m.beta=mean(s$beta), se.empirical.beta=sd(s$beta), se.analytical.beta=mean(s$se_beta), m.low.ci.beta=mean(s$beta-1.96*s$se_beta), m.high.ci.beta=mean(s$beta+1.96*s$se_beta), true.value.in.ci.p=mean(true.value.in.ci), h0.rejected.p=mean( (s$beta-1.96*s$se_beta)>0 | (s$beta+1.96*s$se_beta)<0 ), beta.same.sign.truebeta.p=mean(beta.same.sign.truebeta.p), beta.same.sign.truebeta.signif.p=mean(beta.same.sign.truebeta.p[num.reject]) ) d <- cbind(b,a,z) d$prop. return(d) } #### Compiled results res.dat.dif.resali <- compile_simulation2_resali('1A_100') for (x in results[seq(2,length(results))]) { y <- compile_simulation2_resali(x) res.dat.dif.resali <- bind_rows(res.dat.dif.resali,y) } res.dat.dif.resali$bias <- res.dat.dif.resali$eff.size-res.dat.dif.resali$m.beta ############################################################################## #----------------------------------------------------------------------------# ################################## RASCHPOWER ################################ #----------------------------------------------------------------------------# ############################################################################## ###### Puissance théorique res.dat$theoretical.power <- 0 ### Scénarios N=100 ## Scénarios J=4 / M=2 res.dat[res.dat$scenario %in% paste0(c(1,5,7,9,11),'A') & res.dat$N==100,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(1,5,7,9,11),'B') & res.dat$N==100,]$theoretical.power <- 0.1543 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'C') & res.dat$N==100,]$theoretical.power <- 0.1543 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'D') & res.dat$N==100,]$theoretical.power <- 0.4627 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'E') & res.dat$N==100,]$theoretical.power <- 0.4627 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'F') & res.dat$N==100,]$theoretical.power <- 0.1543 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'G') & res.dat$N==100,]$theoretical.power <- 0.4627 res.dat[res.dat$scenario %in% paste0(1,'C') & res.dat$N==100,]$theoretical.power <- 0.4627 res.dat[res.dat$scenario %in% paste0(1,'D') & res.dat$N==100,]$theoretical.power <- 0.1543 res.dat[res.dat$scenario %in% paste0(1,'E') & res.dat$N==100,]$theoretical.power <- 0.4627 ## Scénarios J=4 / M=4 res.dat[res.dat$scenario %in% paste0(c(2,6,8,10,12),'A') & res.dat$N==100,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(2,6,8,10,12),'B') & res.dat$N==100,]$theoretical.power <- 0.2177 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'C') & res.dat$N==100,]$theoretical.power <- 0.2177 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'D') & res.dat$N==100,]$theoretical.power <- 0.6586 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'E') & res.dat$N==100,]$theoretical.power <- 0.6586 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'F') & res.dat$N==100,]$theoretical.power <- 0.2177 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'G') & res.dat$N==100,]$theoretical.power <- 0.6586 res.dat[res.dat$scenario %in% paste0(2,'C') & res.dat$N==100,]$theoretical.power <- 0.6586 res.dat[res.dat$scenario %in% paste0(2,'D') & res.dat$N==100,]$theoretical.power <- 0.2177 res.dat[res.dat$scenario %in% paste0(2,'E') & res.dat$N==100,]$theoretical.power <- 0.6586 ## Scénarios J=7 / M=2 res.dat[res.dat$scenario %in% paste0(c(3,13,15,17,19),'A') & res.dat$N==100,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(3,13,15,17,19),'B') & res.dat$N==100,]$theoretical.power <- 0.1870 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'C') & res.dat$N==100,]$theoretical.power <- 0.1870 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'D') & res.dat$N==100,]$theoretical.power <- 0.5666 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'E') & res.dat$N==100,]$theoretical.power <- 0.5666 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'F') & res.dat$N==100,]$theoretical.power <- 0.1870 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'G') & res.dat$N==100,]$theoretical.power <- 0.5666 res.dat[res.dat$scenario %in% paste0(3,'C') & res.dat$N==100,]$theoretical.power <- 0.5666 res.dat[res.dat$scenario %in% paste0(3,'D') & res.dat$N==100,]$theoretical.power <- 0.1870 res.dat[res.dat$scenario %in% paste0(3,'E') & res.dat$N==100,]$theoretical.power <- 0.5666 ## Scénarios J=7 / M=4 res.dat[res.dat$scenario %in% paste0(c(4,14,16,18,20),'A') & res.dat$N==100,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(4,14,16,18,20),'B') & res.dat$N==100,]$theoretical.power <- 0.2450 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'C') & res.dat$N==100,]$theoretical.power <- 0.2450 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'D') & res.dat$N==100,]$theoretical.power <- 0.7136 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'E') & res.dat$N==100,]$theoretical.power <- 0.7136 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'F') & res.dat$N==100,]$theoretical.power <- 0.2450 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'G') & res.dat$N==100,]$theoretical.power <- 0.7136 res.dat[res.dat$scenario %in% paste0(4,'C') & res.dat$N==100,]$theoretical.power <- 0.7136 res.dat[res.dat$scenario %in% paste0(4,'D') & res.dat$N==100,]$theoretical.power <- 0.2450 res.dat[res.dat$scenario %in% paste0(4,'E') & res.dat$N==100,]$theoretical.power <- 0.7136 ### Scénarios N=200 ## Scénarios J=4 / M=2 res.dat[res.dat$scenario %in% paste0(c(1,5,7,9,11),'A') & res.dat$N==200,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(1,5,7,9,11),'B') & res.dat$N==200,]$theoretical.power <- 0.2618 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'C') & res.dat$N==200,]$theoretical.power <- 0.2618 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'D') & res.dat$N==200,]$theoretical.power <- 0.7507 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'E') & res.dat$N==200,]$theoretical.power <- 0.7507 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'F') & res.dat$N==200,]$theoretical.power <- 0.2618 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'G') & res.dat$N==200,]$theoretical.power <- 0.7507 res.dat[res.dat$scenario %in% paste0(1,'C') & res.dat$N==200,]$theoretical.power <- 0.7507 res.dat[res.dat$scenario %in% paste0(1,'D') & res.dat$N==200,]$theoretical.power <- 0.2618 res.dat[res.dat$scenario %in% paste0(1,'E') & res.dat$N==200,]$theoretical.power <- 0.7507 ## Scénarios J=4 / M=4 res.dat[res.dat$scenario %in% paste0(c(2,6,8,10,12),'A') & res.dat$N==200,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(2,6,8,10,12),'B') & res.dat$N==200,]$theoretical.power <- 0.3875 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'C') & res.dat$N==200,]$theoretical.power <- 0.3875 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'D') & res.dat$N==200,]$theoretical.power <- 0.9161 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'E') & res.dat$N==200,]$theoretical.power <- 0.9161 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'F') & res.dat$N==200,]$theoretical.power <- 0.3875 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'G') & res.dat$N==200,]$theoretical.power <- 0.9161 res.dat[res.dat$scenario %in% paste0(2,'C') & res.dat$N==200,]$theoretical.power <- 0.9161 res.dat[res.dat$scenario %in% paste0(2,'D') & res.dat$N==200,]$theoretical.power <- 0.3875 res.dat[res.dat$scenario %in% paste0(2,'E') & res.dat$N==200,]$theoretical.power <- 0.9161 ## Scénarios J=7 / M=2 res.dat[res.dat$scenario %in% paste0(c(3,13,15,17,19),'A') & res.dat$N==200,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(3,13,15,17,19),'B') & res.dat$N==200,]$theoretical.power <- 0.3258 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'C') & res.dat$N==200,]$theoretical.power <- 0.3258 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'D') & res.dat$N==200,]$theoretical.power <- 0.8538 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'E') & res.dat$N==200,]$theoretical.power <- 0.8538 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'F') & res.dat$N==200,]$theoretical.power <- 0.3258 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'G') & res.dat$N==200,]$theoretical.power <- 0.8538 res.dat[res.dat$scenario %in% paste0(3,'C') & res.dat$N==200,]$theoretical.power <- 0.8538 res.dat[res.dat$scenario %in% paste0(3,'D') & res.dat$N==200,]$theoretical.power <- 0.3258 res.dat[res.dat$scenario %in% paste0(3,'E') & res.dat$N==200,]$theoretical.power <- 0.8538 ## Scénarios J=7 / M=4 res.dat[res.dat$scenario %in% paste0(c(4,14,16,18,20),'A') & res.dat$N==200,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(4,14,16,18,20),'B') & res.dat$N==200,]$theoretical.power <- 0.4321 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'C') & res.dat$N==200,]$theoretical.power <- 0.4321 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'D') & res.dat$N==200,]$theoretical.power <- 0.9471 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'E') & res.dat$N==200,]$theoretical.power <- 0.9471 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'F') & res.dat$N==200,]$theoretical.power <- 0.4321 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'G') & res.dat$N==200,]$theoretical.power <- 0.9471 res.dat[res.dat$scenario %in% paste0(4,'C') & res.dat$N==200,]$theoretical.power <- 0.9471 res.dat[res.dat$scenario %in% paste0(4,'D') & res.dat$N==200,]$theoretical.power <- 0.4321 res.dat[res.dat$scenario %in% paste0(4,'E') & res.dat$N==200,]$theoretical.power <- 0.9471 ### Scénarios N=300 ## Scénarios J=4 / M=2 res.dat[res.dat$scenario %in% paste0(c(1,5,7,9,11),'A') & res.dat$N==300,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(1,5,7,9,11),'B') & res.dat$N==300,]$theoretical.power <- 0.3660 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'C') & res.dat$N==300,]$theoretical.power <- 0.3660 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'D') & res.dat$N==300,]$theoretical.power <- 0.8981 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'E') & res.dat$N==300,]$theoretical.power <- 0.8981 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'F') & res.dat$N==300,]$theoretical.power <- 0.3660 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'G') & res.dat$N==300,]$theoretical.power <- 0.8981 res.dat[res.dat$scenario %in% paste0(1,'C') & res.dat$N==300,]$theoretical.power <- 0.8981 res.dat[res.dat$scenario %in% paste0(1,'D') & res.dat$N==300,]$theoretical.power <- 0.3660 res.dat[res.dat$scenario %in% paste0(1,'E') & res.dat$N==300,]$theoretical.power <- 0.8981 ## Scénarios J=4 / M=4 res.dat[res.dat$scenario %in% paste0(c(2,6,8,10,12),'A') & res.dat$N==300,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(2,6,8,10,12),'B') & res.dat$N==300,]$theoretical.power <- 0.5373 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'C') & res.dat$N==300,]$theoretical.power <- 0.5373 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'D') & res.dat$N==300,]$theoretical.power <- 0.9834 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'E') & res.dat$N==300,]$theoretical.power <- 0.9834 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'F') & res.dat$N==300,]$theoretical.power <- 0.5373 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'G') & res.dat$N==300,]$theoretical.power <- 0.9834 res.dat[res.dat$scenario %in% paste0(2,'C') & res.dat$N==300,]$theoretical.power <- 0.9834 res.dat[res.dat$scenario %in% paste0(2,'D') & res.dat$N==300,]$theoretical.power <- 0.5373 res.dat[res.dat$scenario %in% paste0(2,'E') & res.dat$N==300,]$theoretical.power <- 0.9834 ## Scénarios J=7 / M=2 res.dat[res.dat$scenario %in% paste0(c(3,13,15,17,19),'A') & res.dat$N==300,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(3,13,15,17,19),'B') & res.dat$N==300,]$theoretical.power <- 0.4550 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'C') & res.dat$N==300,]$theoretical.power <- 0.4550 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'D') & res.dat$N==300,]$theoretical.power <- 0.9584 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'E') & res.dat$N==300,]$theoretical.power <- 0.9584 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'F') & res.dat$N==300,]$theoretical.power <- 0.4550 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'G') & res.dat$N==300,]$theoretical.power <- 0.9584 res.dat[res.dat$scenario %in% paste0(3,'C') & res.dat$N==300,]$theoretical.power <- 0.9584 res.dat[res.dat$scenario %in% paste0(3,'D') & res.dat$N==300,]$theoretical.power <- 0.4550 res.dat[res.dat$scenario %in% paste0(3,'E') & res.dat$N==300,]$theoretical.power <- 0.9584 ## Scénarios J=7 / M=4 res.dat[res.dat$scenario %in% paste0(c(4,14,16,18,20),'A') & res.dat$N==300,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(4,14,16,18,20),'B') & res.dat$N==300,]$theoretical.power <- 0.5907 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'C') & res.dat$N==300,]$theoretical.power <- 0.5907 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'D') & res.dat$N==300,]$theoretical.power <- 0.9919 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'E') & res.dat$N==300,]$theoretical.power <- 0.9919 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'F') & res.dat$N==300,]$theoretical.power <- 0.5907 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'G') & res.dat$N==300,]$theoretical.power <- 0.9919 res.dat[res.dat$scenario %in% paste0(4,'C') & res.dat$N==300,]$theoretical.power <- 0.9919 res.dat[res.dat$scenario %in% paste0(4,'D') & res.dat$N==300,]$theoretical.power <- 0.5907 res.dat[res.dat$scenario %in% paste0(4,'E') & res.dat$N==300,]$theoretical.power <- 0.9919 ### Scénarios N=50 ## Scénarios J=4 / M=2 res.dat[res.dat$scenario %in% paste0(c(1,5,7,9,11),'A') & res.dat$N==50,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(1,5,7,9,11),'B') & res.dat$N==50,]$theoretical.power <- 0.1013 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'C') & res.dat$N==50,]$theoretical.power <- 0.1013 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'D') & res.dat$N==50,]$theoretical.power <- 0.2615 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'E') & res.dat$N==50,]$theoretical.power <- 0.2615 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'F') & res.dat$N==50,]$theoretical.power <- 0.1013 res.dat[res.dat$scenario %in% paste0(c(5,7,9,11),'G') & res.dat$N==50,]$theoretical.power <- 0.2615 res.dat[res.dat$scenario %in% paste0(1,'C') & res.dat$N==50,]$theoretical.power <- 0.2615 res.dat[res.dat$scenario %in% paste0(1,'D') & res.dat$N==50,]$theoretical.power <- 0.1013 res.dat[res.dat$scenario %in% paste0(1,'E') & res.dat$N==50,]$theoretical.power <- 0.2615 ## Scénarios J=4 / M=4 res.dat[res.dat$scenario %in% paste0(c(2,6,8,10,12),'A') & res.dat$N==50,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(2,6,8,10,12),'B') & res.dat$N==50,]$theoretical.power <- 0.1339 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'C') & res.dat$N==50,]$theoretical.power <- 0.1339 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'D') & res.dat$N==50,]$theoretical.power <- 0.3863 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'E') & res.dat$N==50,]$theoretical.power <- 0.3863 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'F') & res.dat$N==50,]$theoretical.power <- 0.1339 res.dat[res.dat$scenario %in% paste0(c(6,8,10,12),'G') & res.dat$N==50,]$theoretical.power <- 0.3863 res.dat[res.dat$scenario %in% paste0(2,'C') & res.dat$N==50,]$theoretical.power <- 0.3863 res.dat[res.dat$scenario %in% paste0(2,'D') & res.dat$N==50,]$theoretical.power <- 0.1339 res.dat[res.dat$scenario %in% paste0(2,'E') & res.dat$N==50,]$theoretical.power <- 0.3863 ## Scénarios J=7 / M=2 res.dat[res.dat$scenario %in% paste0(c(3,13,15,17,19),'A') & res.dat$N==50,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(3,13,15,17,19),'B') & res.dat$N==50,]$theoretical.power <- 0.1171 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'C') & res.dat$N==50,]$theoretical.power <- 0.1171 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'D') & res.dat$N==50,]$theoretical.power <- 0.3236 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'E') & res.dat$N==50,]$theoretical.power <- 0.3236 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'F') & res.dat$N==50,]$theoretical.power <- 0.1171 res.dat[res.dat$scenario %in% paste0(c(13,15,17,19),'G') & res.dat$N==50,]$theoretical.power <- 0.3236 res.dat[res.dat$scenario %in% paste0(3,'C') & res.dat$N==50,]$theoretical.power <- 0.3236 res.dat[res.dat$scenario %in% paste0(3,'D') & res.dat$N==50,]$theoretical.power <- 0.1171 res.dat[res.dat$scenario %in% paste0(3,'E') & res.dat$N==50,]$theoretical.power <- 0.3236 ## Scénarios J=7 / M=4 res.dat[res.dat$scenario %in% paste0(c(4,14,16,18,20),'A') & res.dat$N==50,]$theoretical.power <- 0.05 res.dat[res.dat$scenario %in% paste0(c(4,14,16,18,20),'B') & res.dat$N==50,]$theoretical.power <- 0.1448 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'C') & res.dat$N==50,]$theoretical.power <- 0.1448 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'D') & res.dat$N==50,]$theoretical.power <- 0.4328 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'E') & res.dat$N==50,]$theoretical.power <- 0.4328 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'F') & res.dat$N==50,]$theoretical.power <- 0.1448 res.dat[res.dat$scenario %in% paste0(c(14,16,18,20),'G') & res.dat$N==50,]$theoretical.power <- 0.4328 res.dat[res.dat$scenario %in% paste0(4,'C') & res.dat$N==50,]$theoretical.power <- 0.4328 res.dat[res.dat$scenario %in% paste0(4,'D') & res.dat$N==50,]$theoretical.power <- 0.1448 res.dat[res.dat$scenario %in% paste0(4,'E') & res.dat$N==50,]$theoretical.power <- 0.4328 ### DIF scenarios res.dat.dif$theoretical.power <- res.dat[81:nrow(res.dat),]$theoretical.power