From 956d04083caba047fb12a36beb64e0b9a5e75db0 Mon Sep 17 00:00:00 2001 From: corentinchoisy Date: Fri, 19 Apr 2024 17:02:06 +0200 Subject: [PATCH] File restructure + reproduction guide --- README.md | 13 +- RProject/Scripts/aggregation.R | 996 ++++++++++++++++++ .../{ => functions}/desc_analysis_dif.R | 0 .../{ => functions}/desc_analysis_nodif.R | 0 .../Scripts/{ => functions}/power_analysis.R | 0 RProject/Scripts/{ => functions}/resali.R | 0 RProject/Scripts/{ => misc}/rosali.R | 0 RProject/Scripts/{pcm.R => pcm_nodif.R} | 859 --------------- 8 files changed, 1008 insertions(+), 860 deletions(-) create mode 100644 RProject/Scripts/aggregation.R rename RProject/Scripts/{ => functions}/desc_analysis_dif.R (100%) rename RProject/Scripts/{ => functions}/desc_analysis_nodif.R (100%) rename RProject/Scripts/{ => functions}/power_analysis.R (100%) rename RProject/Scripts/{ => functions}/resali.R (100%) rename RProject/Scripts/{ => misc}/rosali.R (100%) rename RProject/Scripts/{pcm.R => pcm_nodif.R} (77%) diff --git a/README.md b/README.md index faf9305..637a0d2 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Ce dépôt contient l'ensemble du code pour les simulations basées sur simIRT. ├─ 🗂️ RProject - R SCRIPTS FOR COMPILING RESULTS └─ 🗂️ Scripts - R AND STATA SCRIPTS ├─ 🗂️ Analysis - PCM ANALYSIS SCRIPTS - ├─ 🗂️ R + ├─ 🗂️ R - VARIOUS USEFUL R SCRIPTS └─ 🗂️ Scenarios - SIMULATION SCENARIO SCRIPTS    ├─ 🗂️ DIF    └─ 🗂️ noDIF @@ -41,3 +41,14 @@ Ce dépôt contient l'ensemble du code pour les simulations basées sur simIRT. **DIF/XX_N.xls** - Analyse du scénario XX_N par PCM __avec__ prise en compte du DIF **ROSALI-DIF/XX_N_original.xls** - Analyse du scénario XX_N par PCM __avec__ prise en compte du DIF détecté par ROSALI-DIF **RESALI/XX_N_original.xls** - Analyse du scénario XX_N par PCM __avec__ prise en compte du DIF détecté par la méthode des résidus de Andrich & Hagquist + + +## Reproduction + +1. Lancer */Scripts/Scenarios/NoDIF/scenarios_noDIF_baseline.do* pour simuler les données des scénarios sans DIF +2. Lancer tous les fichiers dans 🗂️ */Scripts/Scenarios/DIF/* pour simuler les données des scénarios avec DIF +3. Lancer */RProject/Scripts/pcm_nodif.R* pour analyser les données sans prise en compte du DIF +4. Lancer les fichiers dans */Scripts/Analysis/DIF/* pour analyser les données avec prise en compte du DIF +5. Lancer */Scripts/Analysis/DIF-ROSALI/pcm_dif_rosali.do* pour analyser les données avec prise en compte du DIF détecté par ROSALI-DIF +6. Lancer */Scripts/Analysis/DIF-RESIDUS/pcm_dif_residus.do* pour analyser les données avec prise en compte du DIF détecté par la méthode des résidus +7. Lancer */RProject/Scripts/aggregation.R* pour compiler les résultats dans des tableaux complets diff --git a/RProject/Scripts/aggregation.R b/RProject/Scripts/aggregation.R new file mode 100644 index 0000000..fd32bce --- /dev/null +++ b/RProject/Scripts/aggregation.R @@ -0,0 +1,996 @@ +############################################################################## +#----------------------------------------------------------------------------# +################################## 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 \ No newline at end of file diff --git a/RProject/Scripts/desc_analysis_dif.R b/RProject/Scripts/functions/desc_analysis_dif.R similarity index 100% rename from RProject/Scripts/desc_analysis_dif.R rename to RProject/Scripts/functions/desc_analysis_dif.R diff --git a/RProject/Scripts/desc_analysis_nodif.R b/RProject/Scripts/functions/desc_analysis_nodif.R similarity index 100% rename from RProject/Scripts/desc_analysis_nodif.R rename to RProject/Scripts/functions/desc_analysis_nodif.R diff --git a/RProject/Scripts/power_analysis.R b/RProject/Scripts/functions/power_analysis.R similarity index 100% rename from RProject/Scripts/power_analysis.R rename to RProject/Scripts/functions/power_analysis.R diff --git a/RProject/Scripts/resali.R b/RProject/Scripts/functions/resali.R similarity index 100% rename from RProject/Scripts/resali.R rename to RProject/Scripts/functions/resali.R diff --git a/RProject/Scripts/rosali.R b/RProject/Scripts/misc/rosali.R similarity index 100% rename from RProject/Scripts/rosali.R rename to RProject/Scripts/misc/rosali.R diff --git a/RProject/Scripts/pcm.R b/RProject/Scripts/pcm_nodif.R similarity index 77% rename from RProject/Scripts/pcm.R rename to RProject/Scripts/pcm_nodif.R index d15e24e..8fb36e9 100644 --- a/RProject/Scripts/pcm.R +++ b/RProject/Scripts/pcm_nodif.R @@ -2466,862 +2466,3 @@ write.csv(res[[4]],'/home/corentin/Documents/These/Recherche/Simulations/Analysi write.csv(res[[5]],'/home/corentin/Documents/These/Recherche/Simulations/Analysis/DIF/N50/scenario_20E_50.csv') write.csv(res[[6]],'/home/corentin/Documents/These/Recherche/Simulations/Analysis/DIF/N50/scenario_20F_50.csv') write.csv(res[[7]],'/home/corentin/Documents/These/Recherche/Simulations/Analysis/DIF/N50/scenario_20G_50.csv') - -############################################################################## -#----------------------------------------------------------------------------# -################################# 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 \ No newline at end of file