You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1230 lines
80 KiB
R
1230 lines
80 KiB
R
##############################################################################
|
|
#----------------------------------------------------------------------------#
|
|
################################## LIBRARIES #################################
|
|
#----------------------------------------------------------------------------#
|
|
##############################################################################
|
|
|
|
library(TAM)
|
|
library(doMC)
|
|
library(parallel)
|
|
library(pbmcapply)
|
|
library(funprog)
|
|
library(plyr)
|
|
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 & truebeta<returndat$high.ci.beta)
|
|
returndat$h0.rejected <- 1*(0<returndat$low.ci.beta | 0>returndat$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 & truebeta<returndat$high.ci.beta)
|
|
returndat$h0.rejected <- 1*(0<returndat$low.ci.beta | 0>returndat$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
|
|
|
|
is.nan.data.frame <- function(x)
|
|
do.call(cbind, lapply(x, is.nan))
|
|
|
|
|
|
res.dat[is.nan(res.dat)] <- NA
|
|
res.dat$bias <- res.dat$eff.size-res.dat$m.beta
|
|
|
|
|
|
##############################################################################
|
|
#----------------------------------------------------------------------------#
|
|
########################### 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.true <- ifelse(name<=4,0,ifelse(name<=8,1,ifelse(name<=16,2,3)))
|
|
if (name %in% c(3,4,13:20)) {
|
|
m.nb.dif.detect <- mean(ifelse(is.na(s$dif_1_1),0,
|
|
ifelse(is.na(s$dif_2_1),1,
|
|
ifelse(is.na(s$dif_3_1),2,
|
|
ifelse(is.na(s$dif_4_1),3,
|
|
ifelse(is.na(s$dif_5_1),4,
|
|
ifelse(is.na(s$dif_6_1),5,
|
|
ifelse(is.na(s$dif_7_1),6,7))))))))
|
|
}
|
|
if (!(name %in% c(3,4,13:20))) {
|
|
m.nb.dif.detect <- mean(ifelse(is.na(s$dif_1_1),0,
|
|
ifelse(is.na(s$dif_2_1),1,
|
|
ifelse(is.na(s$dif_3_1),2,
|
|
ifelse(is.na(s$dif_4_1),3,4)))))
|
|
}
|
|
if (J==4) {
|
|
if (M==2) {
|
|
a <- data.frame(m.item1=mean(s$item1_1),m.item2=mean(s$item2_1),m.item3=mean(s$item3_1),m.item4=mean(s$item4_1))
|
|
} 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_1),m.item2=mean(s$item2_1),m.item3=mean(s$item3_1),m.item4=mean(s$item4_1),
|
|
m.item5=mean(s$item5_1),m.item6=mean(s$item6_1),m.item7=mean(s$item7_1))
|
|
} 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.true,
|
|
m.nb.dif.detect=m.nb.dif.detect,
|
|
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)
|
|
dif.d <- mean(sapply(1:1000,function(x) any(!is.na(s[x,paste0("dif_",1:unique(b$J),"_1")]))))
|
|
if (nb.dif.true==0 & unique(b$J)==4) {
|
|
prop.perfect <- NA
|
|
flexible.detect <- NA
|
|
moreflexible.detect <- NA
|
|
any.detect <- NA
|
|
thay.tpr <- NA
|
|
thay.fpr <- mean(sapply(1:1000,function(x) sum( !is.na(s[x,paste0("dif_detect_",1:4)]) )/4 ))
|
|
}
|
|
if (nb.dif.true==0 & unique(b$J)==7) {
|
|
prop.perfect <- NA
|
|
flexible.detect <- NA
|
|
moreflexible.detect <- NA
|
|
any.detect <- NA
|
|
thay.tpr <- NA
|
|
thay.fpr <- mean(sapply(1:1000,function(x) sum( !is.na(s[x,paste0("dif_detect_",1:7)]) )/7 ))
|
|
}
|
|
if (nb.dif.true==1 & unique(b$J)==4 & unique(b$M)==4) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==1,s[x,"dif_detect_unif_1"]==1 & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==1,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1")])
|
|
,0) )
|
|
flexible.detect <- mean(flexible.detect)
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- moreflexible.detect
|
|
thay.tpr <- moreflexible.detect
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:4)])!=s[x,"real_dif_1"],na.rm=F)/4,0) ))
|
|
}
|
|
if (nb.dif.true==2 & unique(b$J)==4 & unique(b$M)==4) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==2,s[x,"dif_detect_unif_1"]==1 & s[x,"dif_detect_unif_2"]==1 & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==2,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
flexible.detect <- mean(flexible.detect)
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:4)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"]),na.rm=F)/2,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:4)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"])),na.rm=F)/4,0) ))
|
|
|
|
}
|
|
if (nb.dif.true==2 & unique(b$J)==7 & unique(b$M)==4) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==2,s[x,"dif_detect_unif_1"]==1 & s[x,"dif_detect_unif_2"]==1 & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==2,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
flexible.detect <- mean(flexible.detect)
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"]),na.rm=F)/2,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"])),na.rm=F)/7,0) ))
|
|
|
|
}
|
|
if (nb.dif.true==3 & unique(b$J)==7 & unique(b$M)==4) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==3,s[x,"dif_detect_unif_1"]==1 & s[x,"dif_detect_unif_2"]==1 & s[x,"dif_detect_unif_3"]==1 & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[3])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==3,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[3])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")])
|
|
,0) )
|
|
flexible.detect <- mean(flexible.detect)
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]) & s[x,"real_dif_3"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]) | s[x,"real_dif_3"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"],s[x,"real_dif_3"]),na.rm=F)/3,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"],s[x,"real_dif_3"])),na.rm=F)/7,0) ))
|
|
|
|
}
|
|
if (nb.dif.true==1 & unique(b$J)==4 & unique(b$M)==2) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==1, s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- prop.perfect
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- moreflexible.detect
|
|
thay.tpr <- moreflexible.detect
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:4)])!=s[x,"real_dif_1"],na.rm=F)/4,0) ))
|
|
}
|
|
if (nb.dif.true==2 & unique(b$J)==4 & unique(b$M)==2) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==2,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- prop.perfect
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:4)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"]),na.rm=F)/2,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:4)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"])),na.rm=F)/4,0) ))
|
|
|
|
}
|
|
if (nb.dif.true==2 & unique(b$J)==7 & unique(b$M)==2) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==2,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- prop.perfect
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"]),na.rm=F)/2,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"])),na.rm=F)/7,0) ))
|
|
|
|
}
|
|
if (nb.dif.true==3 & unique(b$J)==7 & unique(b$M)==2) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==3,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[3])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- prop.perfect
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]) & s[x,"real_dif_3"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]) | s[x,"real_dif_3"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"],s[x,"real_dif_3"]),na.rm=F)/3,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"],s[x,"real_dif_3"])),na.rm=F)/7,0) ))
|
|
|
|
}
|
|
lrt.pass <- mean(s$lrt_passed)
|
|
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]),
|
|
dif.detected=dif.d,
|
|
prop.perfect=prop.perfect,
|
|
flexible.detect=flexible.detect,
|
|
moreflexible.detect=moreflexible.detect,
|
|
any.detect=any.detect,
|
|
thay.tpr=thay.tpr,
|
|
thay.fpr=thay.fpr,
|
|
lrt.pass=lrt.pass
|
|
)
|
|
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
|
|
|
|
|
|
##############################################################################
|
|
#----------------------------------------------------------------------------#
|
|
####################### 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/Results/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/Results/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/Results/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/Results/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.true <- ifelse(name<=4,0,ifelse(name<=8,1,ifelse(name<=16,2,3)))
|
|
if (name %in% c(3,4,13:20)) {
|
|
m.nb.dif.detect <- mean(ifelse(is.na(s$dif_1_1),0,
|
|
ifelse(is.na(s$dif_2_1),1,
|
|
ifelse(is.na(s$dif_3_1),2,
|
|
ifelse(is.na(s$dif_4_1),3,
|
|
ifelse(is.na(s$dif_5_1),4,
|
|
ifelse(is.na(s$dif_6_1),5,
|
|
ifelse(is.na(s$dif_7_1),6,7))))))))
|
|
}
|
|
if (!(name %in% c(3,4,13:20))) {
|
|
m.nb.dif.detect <- mean(ifelse(is.na(s$dif_1_1),0,
|
|
ifelse(is.na(s$dif_2_1),1,
|
|
ifelse(is.na(s$dif_3_1),2,
|
|
ifelse(is.na(s$dif_4_1),3,4)))))
|
|
}
|
|
if (J==4) {
|
|
if (M==2) {
|
|
a <- data.frame(m.item1=mean(s$item1_1),m.item2=mean(s$item2_1),m.item3=mean(s$item3_1),m.item4=mean(s$item4_1))
|
|
} 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_1),m.item2=mean(s$item2_1),m.item3=mean(s$item3_1),m.item4=mean(s$item4_1),
|
|
m.item5=mean(s$item5_1),m.item6=mean(s$item6_1),m.item7=mean(s$item7_1))
|
|
} 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.true,
|
|
m.nb.dif.detect=m.nb.dif.detect,
|
|
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)
|
|
dif.d <- mean(sapply(1:1000,function(x) any(!is.na(s[x,paste0("dif_",1:unique(b$J),"_1")]))))
|
|
if (nb.dif.true==0 & unique(b$J)==4) {
|
|
prop.perfect <- NA
|
|
flexible.detect <- NA
|
|
moreflexible.detect <- NA
|
|
any.detect <- NA
|
|
thay.tpr <- NA
|
|
thay.fpr <- mean(sapply(1:1000,function(x) sum( !is.na(s[x,paste0("dif_detect_",1:4)]) )/4 ))
|
|
}
|
|
if (nb.dif.true==0 & unique(b$J)==7) {
|
|
prop.perfect <- NA
|
|
flexible.detect <- NA
|
|
moreflexible.detect <- NA
|
|
any.detect <- NA
|
|
thay.tpr <- NA
|
|
thay.fpr <- mean(sapply(1:1000,function(x) sum( !is.na(s[x,paste0("dif_detect_",1:7)]) )/7 ))
|
|
}
|
|
if (nb.dif.true==1 & unique(b$J)==4 & unique(b$M)==4) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==1,s[x,"dif_detect_unif_1"]==1 & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==1,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1")])
|
|
,0) )
|
|
flexible.detect <- mean(flexible.detect)
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- moreflexible.detect
|
|
thay.tpr <- moreflexible.detect
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:4)])!=s[x,"real_dif_1"],na.rm=F)/4,0) ))
|
|
}
|
|
if (nb.dif.true==2 & unique(b$J)==4 & unique(b$M)==4) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==2,s[x,"dif_detect_unif_1"]==1 & s[x,"dif_detect_unif_2"]==1 & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==2,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
flexible.detect <- mean(flexible.detect)
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:4)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"]),na.rm=F)/2,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:4)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"])),na.rm=F)/4,0) ))
|
|
|
|
}
|
|
if (nb.dif.true==2 & unique(b$J)==7 & unique(b$M)==4) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==2,s[x,"dif_detect_unif_1"]==1 & s[x,"dif_detect_unif_2"]==1 & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==2,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
flexible.detect <- mean(flexible.detect)
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"]),na.rm=F)/2,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"])),na.rm=F)/7,0) ))
|
|
|
|
}
|
|
if (nb.dif.true==3 & unique(b$J)==7 & unique(b$M)==4) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==3,s[x,"dif_detect_unif_1"]==1 & s[x,"dif_detect_unif_2"]==1 & s[x,"dif_detect_unif_3"]==1 & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[3])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==3,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[3])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")])
|
|
,0) )
|
|
flexible.detect <- mean(flexible.detect)
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]) & s[x,"real_dif_3"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]) | s[x,"real_dif_3"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"],s[x,"real_dif_3"]),na.rm=F)/3,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"],s[x,"real_dif_3"])),na.rm=F)/7,0) ))
|
|
|
|
}
|
|
if (nb.dif.true==1 & unique(b$J)==4 & unique(b$M)==2) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==1, s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- prop.perfect
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- moreflexible.detect
|
|
thay.tpr <- moreflexible.detect
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:4)])!=s[x,"real_dif_1"],na.rm=F)/4,0) ))
|
|
}
|
|
if (nb.dif.true==2 & unique(b$J)==4 & unique(b$M)==2) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))==2,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:4),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- prop.perfect
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:4)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:4)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:4)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"]),na.rm=F)/2,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:4)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:4)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"])),na.rm=F)/4,0) ))
|
|
|
|
}
|
|
if (nb.dif.true==2 & unique(b$J)==7 & unique(b$M)==2) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==2,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- prop.perfect
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"]),na.rm=F)/2,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"])),na.rm=F)/7,0) ))
|
|
|
|
}
|
|
if (nb.dif.true==3 & unique(b$J)==7 & unique(b$M)==2) {
|
|
perfect.detection <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))==3,s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[1])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[2])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")]) & s[x,paste0('dif_detect_',which(sapply(paste0("dif_detect_",1:7),function(y) !is.na(s[x,y])))[3])]%in%c(s[x,c("real_dif_1","real_dif_2","real_dif_3")])
|
|
,0) )
|
|
prop.perfect <- mean(perfect.detection)
|
|
flexible.detect <- prop.perfect
|
|
moreflexible.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) &
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]) & s[x,"real_dif_3"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
moreflexible.detect <- mean(moreflexible.detect)
|
|
any.detect <- sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,s[x,"real_dif_1"]%in%c(s[x,paste0("dif_detect_",1:7)]) |
|
|
s[x,"real_dif_2"]%in%c(s[x,paste0("dif_detect_",1:7)]) | s[x,"real_dif_3"]%in%c(s[x,paste0("dif_detect_",1:7)]),0) )
|
|
any.detect <- mean(any.detect)
|
|
thay.tpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"],s[x,"real_dif_3"]),na.rm=F)/3,0) ))
|
|
thay.fpr <- mean(sapply(1:1000,function(x) ifelse(sum(!is.na(s[x,paste0("dif_detect_",1:7)]))!=0,sum(!(unlist(s[x,paste0("dif_detect_",1:7)])%in%c(s[x,"real_dif_1"],s[x,"real_dif_2"],s[x,"real_dif_3"])),na.rm=F)/7,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]),
|
|
dif.detected=dif.d,
|
|
prop.perfect=prop.perfect,
|
|
flexible.detect=flexible.detect,
|
|
moreflexible.detect=moreflexible.detect,
|
|
any.detect=any.detect
|
|
)
|
|
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
|
|
res.dat.dif.rosali$theoretical.power <- res.dat$theoretical.power
|
|
res.dat.dif.resali$theoretical.power <- res.dat$theoretical.power
|
|
|
|
|
|
##############################################################################
|
|
#----------------------------------------------------------------------------#
|
|
######################### AGGREGATION OF ALL METHODS #########################
|
|
#----------------------------------------------------------------------------#
|
|
##############################################################################
|
|
|
|
|
|
|
|
# Correction of N=50 scenarios
|
|
|
|
res.dat[res.dat$N==50,]$dif.size <- sapply(which(res.dat$N==50),function(k) res.dat[k-1,]$dif.size)
|
|
res.dat.dif[res.dat.dif$N==50,]$dif.size <- sapply(which(res.dat.dif$N==50),function(k) res.dat.dif[k-1,]$dif.size)
|
|
res.dat.dif.rosali[res.dat.dif.rosali$N==50,]$dif.size <- sapply(which(res.dat.dif.rosali$N==50),function(k) res.dat.dif.rosali[k-1,]$dif.size)
|
|
res.dat.dif.resali[res.dat.dif.resali$N==50,]$dif.size <- sapply(which(res.dat.dif.resali$N==50),function(k) res.dat.dif.resali[k-1,]$dif.size)
|
|
res.dat[res.dat$dif.size!=0 & res.dat$nb.dif==0,]$nb.dif <- 1
|
|
res.dat.dif <- res.dat.dif %>%
|
|
relocate(method, .after = theoretical.power)
|
|
|
|
aa <- res.dat.dif[res.dat.dif$scenario=="10B",]
|
|
bb <- res.dat[res.dat$scenario=="10B",]
|
|
res.dat.dif[res.dat.dif$scenario=="10B",] <- bb
|
|
res.dat[res.dat$scenario=="10B",] <- aa
|
|
res.dat[res.dat$method=="PERFECT",]$method <- "NONE"
|
|
res.dat.dif[res.dat.dif$method=="NONE",]$method <- "PERFECT"
|
|
|
|
# Items dichotomiques
|
|
|
|
res.dat$method <- "NONE"
|
|
res.dat.dif$method <- "PERFECT"
|
|
res.dat.dif.rosali$method <- "ROSALI"
|
|
res.dat.dif.resali$method <- "RESIDUS"
|
|
|
|
res.dat.dicho <- res.dat[res.dat$M==2,]
|
|
res.dat.dicho <- rbind(res.dat.dicho,res.dat.dif[res.dat.dif$M==2,])
|
|
res.dat.dicho <- rbind.fill(res.dat.dicho,res.dat.dif.rosali[res.dat.dif.rosali$M==2,])
|
|
res.dat.dicho <- rbind.fill(res.dat.dicho,res.dat.dif.resali[res.dat.dif.resali$M==2,])
|
|
|
|
# Items polytomiques
|
|
|
|
res.dat.poly <- res.dat[res.dat$M==4,]
|
|
res.dat.poly <- rbind(res.dat.poly,res.dat.dif[res.dat.dif$M==4,])
|
|
res.dat.poly <- rbind.fill(res.dat.poly,res.dat.dif.rosali[res.dat.dif.rosali$M==4,])
|
|
res.dat.poly <- rbind.fill(res.dat.poly,res.dat.dif.resali[res.dat.dif.resali$M==4,])
|