R/print.CopyDetect2.r

print.CopyDetect2<- function(x, ...){

	cat("************************************************************************","\n")
	cat("CopyDetect - An R Package to Compute Response Similarity Indices for Multiple-Choice Tests","\n")
	cat("","\n")
	cat("Version 1.3, released on October 2018","\n")
	cat("","\n")
	cat("Cengiz Zopluoglu","\n")
	cat("","\n")
	cat("Assistant Professor","\n")
	cat("University of Miami - Department of Educational and Psychological Studies","\n")
	cat("Research, Measurement, and Evaluation Program","\n")
	cat("","\n")
	cat("c.zopluoglu@miami.edu","\n")
	cat("*************************************************************************","\n")
	cat("","\n")
	cat("Processing Date: ",date(),"\n")
	cat("","\n")
	cat("   Suspected Copier: Examinee ID",x$single.pair[1],"\n")
	cat("      Response Vector:",sprintf(rep("%1.0f",ncol(x$data[,x$item.loc])),x$data[,x$item.loc][x$single.pair2[1],]),"\n")
	cat("        Key Responses:",sprintf(rep("%1.0f",ncol(x$data[,x$item.loc])),x$key),"\n")
	cat("","\n")
	cat("   Suspected Source: Examinee ID",x$single.pair[2],"\n")
	cat("      Response Vector:",sprintf(rep("%1.0f",ncol(x$data[,x$item.loc])),x$data[,x$item.loc][x$single.pair2[2],]),"\n")
	cat("        Key Responses:",sprintf(rep("%1.0f",ncol(x$data[,x$item.loc])),x$key),"\n")
	cat("","\n")
	cat("   Number-Correct Score for Examinee ID",x$single.pair[1],":",sum(x$data[,x$item.loc][x$single.pair2[1],]==x$key,na.rm=TRUE),"\n")
	cat("   Number-Correct Score for Examinee ID",x$single.pair[2],":",sum(x$data[,x$item.loc][x$single.pair2[2],]==x$key,na.rm=TRUE),"\n")
	cat("","\n")
	cat("   MLE Ability Estimate for Examinee ID",x$single.pair[1],":",round(x$thetas[x$single.pair2[1]],4),"\n")
	cat("   MLE Ability Estimate for Examinee ID",x$single.pair[2],":",round(x$thetas[x$single.pair2[2]],4),"\n")
	cat("","\n")
	cat("   Number of Identical Incorrect Responses:",sprintf("%1.0f",sum((x$data[,x$item.loc][x$single.pair2[1],]==x$data[,x$item.loc][x$single.pair2[2],]) & (x$data[,x$item.loc][x$single.pair2[1],]!=x$key))),"\n")
	cat("   Number of Identical Correct Responses:",sprintf("%1.0f",sum((x$data[,x$item.loc][x$single.pair2[1],]==x$data[,x$item.loc][x$single.pair2[2],]) & (x$data[,x$item.loc][x$single.pair2[1],]==x$key))),"\n")
	cat("   Number of Identical Responses:",sprintf("%1.0f",x$W.index$obs.match),"\n")
	cat("","\n")
	cat("","\n")

	if(is.na(x$W.index$p.value)!=TRUE){

		if(x$W.index$p.value<.05){  w05  <- "Flagged"} else w05  <- "Not Flagged"
		if(x$W.index$p.value<.01){  w01  <- "Flagged"} else w01  <- "Not Flagged"
		if(x$W.index$p.value<.001){ w001 <- "Flagged"} else w001 <- "Not Flagged"
	} else { w05 <- "NA"; w01 <- "NA"; w001 <- "NA"}

	if(is.na(x$M4.index$p.value)!=TRUE){

		if(x$M4.index$p.value<.05){  m05  <- "Flagged"} else m05  <- "Not Flagged"
		if(x$M4.index$p.value<.01){  m01  <- "Flagged"} else m01  <- "Not Flagged"
		if(x$M4.index$p.value<.001){ m001 <- "Flagged"} else m001 <- "Not Flagged"
	} else { m05 <- "NA"; m01 <- "NA"; m001 <- "NA"}


	if(is.na(x$GBT.index$p.value)!=TRUE){

		if(x$GBT.index$p.value<.05){  gbt05  <- "Flagged"} else gbt05  <- "Not Flagged"
		if(x$GBT.index$p.value<.01){  gbt01  <- "Flagged"} else gbt01  <- "Not Flagged"
		if(x$GBT.index$p.value<.001){ gbt001 <- "Flagged"} else gbt001 <- "Not Flagged"

	} else { gbt05 <- "NA"; gbt01 <- "NA"; gbt001 <- "NA"}

      if(is.null(x$K.index)!=TRUE) {

		if(is.na(x$K.index$k.index)!=TRUE){

			if(x$K.index$k.index<.05){  k05  <- "Flagged"} else k05  <- "Not Flagged"
			if(x$K.index$k.index<.01){  k01  <- "Flagged"} else k01  <- "Not Flagged"
			if(x$K.index$k.index<.001){ k001 <- "Flagged"} else k001 <- "Not Flagged"
		} else { k05 <- "NA"; k01 <- "NA"; k001 <- "NA"}
	} 

	if(is.null(x$K.index)==TRUE) { 
		k05  <- ""
		k01  <- ""		
		k001 <- ""

	} 

	if(is.null(x$K.variants)!=TRUE) {

		if(is.na(x$K.variants$K1.index)!=TRUE){
			if(x$K.variants$K1.index<.05){  k1.05  <- "Flagged"} else k1.05  <- "Not Flagged"
			if(x$K.variants$K1.index<.01){  k1.01  <- "Flagged"} else k1.01  <- "Not Flagged"
			if(x$K.variants$K1.index<.001){ k1.001 <- "Flagged"} else k1.001 <- "Not Flagged"
		} else { k1.05 <- "NA"; k1.01 <- "NA"; k1.001 <- "NA"}

		if(is.na(x$K.variants$K2.index)!=TRUE){
			if(x$K.variants$K2.index<.05){  k2.05  <- "Flagged"} else k2.05  <- "Not Flagged"
			if(x$K.variants$K2.index<.01){  k2.01  <- "Flagged"} else k2.01  <- "Not Flagged"
			if(x$K.variants$K2.index<.001){ k2.001 <- "Flagged"} else k2.001 <- "Not Flagged"
		} else { k2.05 <- "NA"; k2.01 <- "NA"; k2.001 <- "NA"}

		if(is.na(x$K.variants$S1.index)!=TRUE){
			if(x$K.variants$S1.index<.05){  s1.05  <- "Flagged"} else s1.05  <- "Not Flagged"
			if(x$K.variants$S1.index<.01){  s1.01  <- "Flagged"} else s1.01  <- "Not Flagged"
			if(x$K.variants$S1.index<.001){ s1.001 <- "Flagged"} else s1.001 <- "Not Flagged"
		} else { s1.05 <- "NA"; s1.01 <- "NA"; s1.001 <- "NA"}

		if(is.na(x$K.variants$S2.index)!=TRUE){
			if(x$K.variants$S2.index<.05){  s2.05  <- "Flagged"} else s2.05  <- "Not Flagged"
			if(x$K.variants$S2.index<.01){  s2.01  <- "Flagged"} else s2.01  <- "Not Flagged"
			if(x$K.variants$S2.index<.001){ s2.001 <- "Flagged"} else s2.001 <- "Not Flagged"
		} else { s2.05 <- "NA"; s2.01 <- "NA"; s2.001 <- "NA"}
	}

	if(is.null(x$K.variants)==TRUE) {

		k1.05  <- ""; k1.01  <- ""; k1.001 <- ""
		k2.05  <- ""; k2.01  <- ""; k2.001 <- ""
		s1.05  <- ""; s1.01  <- ""; s1.001 <- ""
		s2.05  <- ""; s2.01  <- ""; s2.001 <- ""
	}

	cat(sprintf("%50s","Alpha Level"),"\n")
	cat("","\n")
	cat(sprintf("%18s","Index"),
	    sprintf("%12s","0.05"),
          sprintf("%15s","0.01"),
          sprintf("%16s","0.001"),"\n")	
	cat("","\n")
	cat(sprintf("%18s","W"),
	    sprintf("%14s",w05),
	    sprintf("%15s",w01),
	    sprintf("%15s",w001),"\n")	

	cat(sprintf("%18s","M4"),
	    sprintf("%14s",m05),
	    sprintf("%15s",m01),
	    sprintf("%15s",m001),"\n")

	cat(sprintf("%18s","GBT"),
	    sprintf("%14s",gbt05),
	    sprintf("%15s",gbt01),
	    sprintf("%15s",gbt001),"\n")	

	cat(sprintf("%18s","K"),
	    sprintf("%14s",k05),
	    sprintf("%15s",k01),
	    sprintf("%15s",k001),"\n")	

	cat(sprintf("%18s","K1"),
	    sprintf("%14s",k1.05),
	    sprintf("%15s",k1.01),
	    sprintf("%15s",k1.001),"\n")	

	cat(sprintf("%18s","K2"),
	    sprintf("%14s",k2.05),
	    sprintf("%15s",k2.01),
	    sprintf("%15s",k2.001),"\n")	

	cat(sprintf("%18s","S1"),
	    sprintf("%14s",s1.05),
	    sprintf("%15s",s1.01),
	    sprintf("%15s",s1.001),"\n")	

	cat(sprintf("%18s","S2"),
	    sprintf("%14s",s2.05),
	    sprintf("%15s",s2.01),
	    sprintf("%15s",s2.001),"\n")	

	cat("","\n")
	cat("","\n")
	cat("*******************************","          W Index          ","*********************************","\n")
  	cat("","\n")
	cat("   Estimated Probabilities of Giving Response Options for Suspected Copier Examinee:","\n")
	cat("","\n")
      cat("                                Examinee ID",x$single.pair[1],"\n")
      cat("       ",sort(as.numeric(unique(x$key))),sep="          ","\n")

	for(i in 1:ncol(x$data[,x$item.loc])) { 
         oooo = c(sprintf("%10s",paste("Item",i)))
             for(jjjj in 1:length(unique(x$key))) {
                oooo = c(oooo,sprintf("%10.3f",x$GBT.index$probabilities1[i,jjjj]))
             }
         cat(oooo,"\n")
      }	
	cat("","\n")
	cat("   Expected Number of Identical Responses = ",round(x$W.index$exp.match,3),"\n")
	cat("","\n")
	cat("   Standard Deviation of The Expected Number of Identical Responses:","=",
		  round(x$W.index$sd.match,3),"\n")
	cat("","\n")
	cat("   W index value","=",round(x$W.index$W.value,4),"\n")
	cat("","\n")
	cat("   Likelihood of Agreemet (p-value)","=",round(x$W.index$p.value,5),"\n")	
	cat("","\n")
	cat("**********************","          Generalized Binomial Test          ","************************","\n")
	cat("","\n")
	cat("   Probability of Matching on Each Item:","\n")
	cat("","\n")
	for(i in 1:ncol(x$data[,x$item.loc])) { cat(sprintf("%15s",paste("Item",i)),
						 sprintf("%12.3f",x$GBT$prob.match[i]),
 				             "\n") 
                                }
	cat("","\n")
	cat("   Exact Probability Distribution for Number of Matches:","\n")
	cat("","\n")
	for(i in 1:(ncol(x$data[,x$item.loc])+1)) { cat(sprintf("%30s",paste("Probability of ",i-1," Match",sep="")),
						 sprintf("%12.3f",
                                     as.numeric(as.matrix(x$GBT$exact.prob.dist)[i,2])),
 				             "\n") 
                                }
	cat("","\n")
	cat(paste("   Probability of Observing ",
                length(which(x$data[,x$item.loc][x$single.pair2[1],]==x$data[,x$item.loc][x$single.pair2[2],]))," or More Matches = ",
                round(x$GBT$p.value,5),sep=""),"\n")
	cat("","\n")
	cat("***************************","          K Index          ","*******************************","\n")
	cat("","\n")
 if(is.null(x$K.index)!=TRUE) {
	cat("   Number-Incorrect Score for Examinee ID",x$single.pair[1],"(suspected copier):",
      ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],]),"\n")
	cat("","\n")
	cat("   Number-Incorrect Score for Examinee ID",x$single.pair[2],"(suspected source):",
              ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],]),"\n")
	cat("","\n")
      cat("   Number of Examinees in the Subgroup of","\n") 
	cat("   Number-Incorrect Score",ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],]),":",
         length(x$K.index$subgroups)
         ,"\n")
	cat("","\n")
	if(length(x$K.index$subgroups)!=0){
        cat("   Number of Identical Incorrect Responses","\n") 
        cat("   between Each Examinee in This Subgroup and Source Examinee:","\n")
        cat("","\n")

	  if(length(x$K.index$subgroups)>20) {

		r=length(x$K.index$subgroups)%/%20
      	remainder=length(x$K.index$subgroups)%%20

		for(i in 1:r) { cat("      ",sprintf(rep("%2.0f",20),
				  x$K.index$emp.agg[(20*i-19):(20*i)]),
	     		       "\n") 
      	              }
		cat("      ",sprintf(rep("%2.0f",remainder),
		    x$K.index$emp.agg[(20*r+1):(20*r+remainder)]),
	     		       "\n")
	  }
	
	  if(length(x$K.index$subgroups)<=20) {

		cat("      ",sprintf(rep("%2.0f",length(x$K.index$subgroups)),
		    x$K.index$emp.agg),"\n")
	  }
        cat("","\n")
	  cat("      Mean:",
          round(mean(x$K.index$emp.agg,na.rm=TRUE),4),"\n")
	  cat("","\n")
	  cat("   Binomial Probability of Matching on an Identical Incorrect Response","\n") 
	  cat("   with Source Examinee for This Number-Incorrect Subgroup:","\n") 
	  cat("","\n")
	  cat("      ",round(mean(x$K.index$emp.agg,na.rm=TRUE),4),
          "/",ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],]),"=",
	    round(round(mean(x$K.index$emp.agg,na.rm=TRUE),4)/
	    (ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],])),4),"\n")
	  cat("","\n")
	  incorrect.items <- which(x$scored.data[x$single.pair2[2],]==0)	
	  cat("   Probability of Observing",length(which(x$data[,x$item.loc][x$single.pair2[1],incorrect.items]==x$data[,x$item.loc][x$single.pair2[2],incorrect.items])),
            "or More Identical Incorrect","\n") 
	  cat("   Matches Using Binomial Distribution =",round(x$K.index$k.index,4),"\n") 
	  cat("","\n")
	} else cat("Binomial probability cannot be computed. K-index is not possible to compute.","\n") 

} else cat("It is not possible to compute K index for a source examinee with no incorrect response","\n") 
	cat("","\n")

	cat("***************************","    K Variants(K1,K2,S1)          ","*******************************","\n")
	cat("","\n")
 if(is.null(x$K.variants)!=TRUE) {
	cat(		 sprintf("%6s","Number"),"\n")
	cat(		 sprintf("%8s","Incorrect"),
                   sprintf("%10s","Number"),
                   sprintf("%34s","Observed Average Number of"),
			 sprintf("%31s","Predicted Average Number of"),"\n")	
	cat(		 sprintf("%11s","Score Group"),
                   sprintf("%14s","of Examinees"),
                   sprintf("%29s","Identical Incorrect Matches"),
			 sprintf("%30s","Identical Incorrect Matches"),"\n")

	cat(		 sprintf("%11s",""),
                   sprintf("%14s",""),
                   sprintf("%22s","with Source Examinee"),
			 sprintf("%30s","with Source Examinee"),"\n")
	cat("","\n")
	cat(sprintf("%12s",""),
                   sprintf("%39s",""),
                   sprintf("%12s","Linear"),
                   sprintf("%11s","Quadratic"),
                   sprintf("%10s","Loglinear"),"\n")
	cat(sprintf("%12s",""),
                   sprintf("%39s",""),
                   sprintf("%11s","Model"),
                   sprintf("%8s","Model"),
                   sprintf("%10s","Model"),"\n")
	cat("","\n")
	for(i in 1:(ncol(x$data[,x$item.loc])+1)) { 
			
		cat(sprintf("%7.0f",i-1),
                sprintf("%13.0f",length(x$K.variants$subgroups[[i]])),
		    sprintf("%23.3f",x$K.variants$mean.iden.incorrect[i]), 
                sprintf("%18.3f",x$K.variants$pred1[i]),
                sprintf("%8.3f",x$K.variants$pred2[i]),
                sprintf("%10.3f",x$K.variants$pred3[i]),"\n")
	}
	cat("","\n")
	cat("   Number-Incorrect Score for Examinee",x$single.pair2[1],":",ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],]),"\n")
	cat("","\n")
	cat("   Number-Incorrect Score for Examinee",x$single.pair2[2],":",ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],]),"\n")
	cat("","\n")
	cat("   Binomial Probability of Matching on an Identical Incorrect Response","\n") 
	cat("   with Source Examinee for Number-Incorrect Subgroup",ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],]),":","\n") 
      cat("","\n")

	if(x$K.variants$pred1[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]<
	   (ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],])) &
	   x$K.variants$pred1[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]>0
         ){

	cat("              ","for K1 index:",
                            round(x$K.variants$pred1[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)],3),
				    "/",ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],]),"=",
				   round((x$K.variants$pred1[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)])/
				   (ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],])),3),"\n")
	} else 
		if(x$K.variants$pred1[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]>
	         (ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],]))){   
                  cat("              ","for K1 index is set to .999, because predicted value was higher than 1","\n")
            } else
		   if(x$K.variants$pred1[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]<=0){
	                   cat("              ","for K1 index is set to .001, because predicted value was smaller than 0","\n")
               }

	cat("","\n")

	if(x$K.variants$pred2[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]<
	   (ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],])) &
	   x$K.variants$pred2[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]>0
         ){

	    cat("              ","for K2 index:",
                            round(x$K.variants$pred2[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)],3),
				    "/",ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],]),"=",
				   round((x$K.variants$pred2[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)])/
				   (ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],])),3),"\n")
	  } else 
		if(x$K.variants$pred2[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]>
	         (ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],]))){   
                  cat("              ","for K2 index is set to .999, because predicted value was higher than 1","\n")
            } else
		   if(x$K.variants$pred2[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]<=0){
	                   cat("              ","for K2 index is set to .001, because predicted value was smaller than 0","\n")
               }

	cat("","\n")

	if(x$K.variants$pred3[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]<
	   (ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],]))
         ){

	cat("   Predicted Average Number of Identical Incorrect Response","\n") 
	cat("   with Source Examinee for Number-Incorrect Subgroup",ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],]),"\n")  
	cat("   (parameter to be used for S1 index in Poisson Distribution):          ",
      round(x$K.variants$pred3[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)],3),
      "\n")
	} else 
		if(x$K.variants$pred3[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]>
	         (ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],]))){   
                  cat("   Predicted average number of identical incoccrect response is set to",
                  ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[2],]),"\n")
                  cat("   ,the maximum possible number of incorrect matches, for S1 index.","\n")
            }
	cat("","\n")
	cat("   Probability of Observing",length(which(x$data[x$single.pair2[1],incorrect.items]==x$data[x$single.pair2[2],incorrect.items])),
          "or More Identical Incorrect","\n") 
	cat("   Matches Using Binomial Distribution","\n") 
	cat("","\n")
	cat("     ","--- K1 index p value:",round(x$K.variants$K1.index,3),"\n")
	cat("","\n")
	cat("     ","--- K2 index p value:",round(x$K.variants$K2.index,3),"\n")
	cat("","\n")
	cat("   Probability of Observing",length(which(x$data[x$single.pair2[1],incorrect.items]==x$data[x$single.pair2[2],incorrect.items])),
          "or More Identical Incorrect","\n") 
	cat("   Matches Using Poisson Distribution","\n") 
	cat("","\n")
	cat("     ","--- S1 index p value:",round(x$K.variants$S1.index,3),"\n")

} else cat("It is not possible to compute K variants for a source examinee with no incorrect response","\n") 
	cat("","\n")

	cat("***************************","    S2 Index         ","*******************************","\n")
	cat("","\n")

 if(is.null(x$K.variants)!=TRUE & is.na(x$K.variants$S2.index)!=TRUE) {

	cat(		 sprintf("%6s","Number"),"\n")
	cat(		 sprintf("%8s","Incorrect"),
                   sprintf("%10s","Number"),
                   sprintf("%34s","Observed Average Number of"),
			 sprintf("%38s","Observed Average Weighted Number of"),"\n")	
	cat(		 sprintf("%11s","Score Group"),
                   sprintf("%14s","of Examinees"),
                   sprintf("%29s","Identical Incorrect Matches"),
			 sprintf("%27s","Identical Correct Matches"),"\n")

	cat(		 sprintf("%11s",""),
                   sprintf("%14s",""),
                   sprintf("%22s","with Source Examinee"),
			 sprintf("%29s","with Source Examinee"),"\n")
	

	cat("","\n")
	for(i in 1:(ncol(x$data[,x$item.loc])+1)) { 
			
		cat(sprintf("%7.0f",i-1),
                sprintf("%13.0f",length(x$K.variants$subgroups[[i]])),
		    sprintf("%23.3f",x$K.variants$mean.iden.incorrect[i]), 
                sprintf("%29.3f",x$K.variants$weighted.iden.correct[i]),
                "\n")
	}
	cat("","\n")
	cat("Predicted Total Number of Incorrect and Weighted Correct Matches","\n")
	cat("Using Loglinear Model:","\n")
	cat("","\n")
	cat(		 sprintf("%12s","Number"),"\n")
	cat(		 sprintf("%15s","Incorrect"),
                   sprintf("%19s","Predicted"),"\n")
      cat(		 sprintf("%17s","Score Group"),
                   sprintf("%14s","Values"),"\n")
	cat("","\n")
	for(i in 1:(ncol(x$data[,x$item.loc])+1)) { 
			
		cat(sprintf("%13.0f",i-1),
                sprintf("%19.3f",x$K.variants$pred4[i]),
                "\n")
	}
	cat("","\n")
	if(x$K.variants$pred4[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]<
	   ncol(x$data)
         ){

	cat("   Predicted Average Number of Identical Response","\n") 
	cat("   with Source Examinee for Number-Incorrect Subgroup",ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],]),
	    ":",round(x$K.variants$pred4[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)],0),
	"(rounded to the nearest integer)","\n")
	} else 
		if(x$K.variants$pred4[(ncol(x$scored.data)-rowSums(x$scored.data[x$single.pair2[1],])+1)]>
	         ncol(x$data)
               ){   
                  cat("   Predicted average number of identical response is set to",
                  ncol(x$data),"\n")
                 cat("   ,the maximum possible number of matches, for S2 index.","\n")
		 }
	cat("","\n")
	cat("S2 index p value:",round(x$K.variants$S2.index,3),"\n")
} else cat("")

	cat("***************************","    M4 Index         ","*******************************","\n")
	cat("","\n")
	cat("The detailed results for the M4 index is not printed here due to a large size of matrix ","\n")
	cat("for the exact probability distribution. Please type 'x$M4.index$exact.prob.dist' where 'x' ","\n")
	cat("should be replaced with the object name you assign for the results of the function.","\n")
	cat("","\n")
	cat("M4 index p value:",round(x$M4.index$p.value,3),"\n")
}

Try the CopyDetect package in your browser

Any scripts or data that you put into this service are public.

CopyDetect documentation built on May 1, 2019, 7:58 p.m.