Learn R Programming

cacIRT (version 1.0)

Lee.rec.D: Lee's accuracy with D method

Description

Used by the wrapper class.Lee() to compute marginal indices with D method (quadrature points)

Usage

Lee.rec.D(cutscore, quadrature, ip)

Arguments

cutscore
quadrature
ip

Value

    Examples

    Run this code
    ##---- Should be DIRECTLY executable !! ----
    ##-- ==>  Define data, use random,
    ##--	or do  help(data=index)  for the standard data sets.
    
    ## The function is currently defined as
    function(cutscore,quadrature,ip){
    	
    			ut<-quadrature[[1]]
    			we <- quadrature[[2]]
    			if(dim(ip)[2]==2)
    				ip[,3]<-0 
    			ni = dim(ip)[1]
    			nn<-length(ut)
    			sc<-ni+1
    			
    			exp.TS <- rowSums(sapply(1:ni, function(i) ip[i,3] + 
    							(1 - ip[i,3])/(1 + exp(-1.7*ip[i, 1] * 
    							(ut-ip[i, 2])))))   
    	
    	rec.mat <- recursive.raw(ut,ip)
    
    			esacc<-matrix(NA,length(cutscore),nn, dimnames = list(paste("cut at",cutscore), round(ut,3)))
    				escon<-esacc
    			for(j in 1:length(cutscore)){
    				cuts<-c(0, cutscore[j], sc)
    	   			categ<-cut(exp.TS,cuts,labels=F)
    				bang<-ceiling(cuts)
    			for(i in 1:nn){
    			esacc[j,i]<-sum(rec.mat[i,(bang[categ[i]]+1):(bang[categ[i]+1])])
    			escon[j,i]<-(sum(rec.mat[i,bang[1]:(bang[2])]))^2 + (sum(rec.mat[i,(bang[2]+1):(bang[3])]))^2}
    			}
    			
    				ans<- (list("Marginal" = cbind("Accuracy" = apply(esacc,1,weighted.mean,we), "Consistency" = apply(escon,1,weighted.mean,we)), "Conditional" = list("Accuracy" =t(esacc), "Consistency" = t(escon))))
    				
    			
    			#print(list("Marinal Accuracy" = round(apply(esacc,1,weighted.mean,we),4), "Marginal Consistency"=round(apply(escon,1,weighted.mean,we),4)))
     
     ans
    	}

    Run the code above in your browser using DataLab