Created ROSALI screening version

This commit is contained in:
2025-02-13 15:24:10 +01:00
parent 7712f8396f
commit f04322a9db
8 changed files with 3751 additions and 49 deletions

View File

@ -27,10 +27,9 @@ resali <- function(df=NULL,items=NULL,group=NULL,verbose=T) {
for (i in items) {
dat[,paste0('res_',i)] <- IRT.residuals(pcm_initial)$stand_residuals[,i]
res.anova[i] <- summary(aov(dat[,paste0('res_',i)]~TT*score_q5,data=dat))
pval[i] <- res.anova[[i]][1,"Pr(>F)"]
fval[i] <- res.anova[[i]][1,'F value']
pval[c(i,i+nbitems)] <- c(res.anova[[i]][1,"Pr(>F)"],res.anova[[i]][3,"Pr(>F)"])
fval[c(i,i+nbitems)] <- c(res.anova[[i]][1,'F value'],res.anova[[i]][3,"F value"])
}
print(res.anova)
if (verbose) {
cat('DONE\n')
cat('-----------------------------------------------------------\n')
@ -44,9 +43,10 @@ resali <- function(df=NULL,items=NULL,group=NULL,verbose=T) {
cat(paste('COMPUTING STEP',k,'\n'))
cat('-----------------------------------------------------------\n')
}
res.item <- gsub("[a-z]", "",colnames(resp)[which.max(fval)])
numitem <- ifelse(which.max(fval)%%(length(fval)/2)!=0,which.max(fval)%%(length(fval)/2),length(fval)/2)
res.item <- gsub("[a-z]", "",colnames(resp)[numitem])
res.items <- c(res.items,res.item)
res.uni <- res.anova[[which.max(fval)]][3,"Pr(>F)"]>0.05
res.uni <- res.anova[[numitem]][3,"Pr(>F)"]>0.05
res.uniform <- c(res.uniform,res.uni)
items_n <- c(items_n[items_n!=paste0('item',res.item)],paste0("item",res.item,c("noTT","TT")))
dat[dat$TT==1,paste0("item",res.item,'TT')] <- dat[dat$TT==1,paste0('item',res.item)]
@ -54,24 +54,19 @@ resali <- function(df=NULL,items=NULL,group=NULL,verbose=T) {
resp <- dat[,items_n]
grp <- dat[,group]
pcm_while <- TAM::tam.mml(resp=resp,Y=grp,irtmodel = "PCM",est.variance = T,verbose=F)
nbitems <- length(items_n)
nbitems <- length(items_n)-2*length(res.items)
res.anova <- rep(NA,nbitems)
pval <- rep(NA,nbitems)
fval <- rep(NA,nbitems)
pval <- rep(NA,2*nbitems)
fval <- rep(NA,2*nbitems)
for (i in 1:nbitems) {
dat[,paste0('res_',i)] <- IRT.residuals(pcm_while)$stand_residuals[,i]
res.anova[i] <- summary(aov(dat[,paste0('res_',i)]~TT*score_q5,data=dat))
pval[i] <- res.anova[[i]][1,"Pr(>F)"]
pval[i+nbitems] <- res.anova[[i]][3,"Pr(>F)"]
fval[i] <- res.anova[[i]][1,'F value']
fval[i+nbitems] <- res.anova[[i]][3,"F value"]
}
zz <- 0
for (name_i in items_n) {
zz <- zz+1
if (grepl("TT",name_i)) {
pval[zz] <- 1
fval[zz] <- 0
}
}
if (verbose) {
cat('DONE\n')
cat('-----------------------------------------------------------\n')