R/lda.R

Defines functions get.mipp.lda

Documented in get.mipp.lda

#Computing Miss Error and MiPP after LDA
get.mipp.lda <- function(x.train, y.train, x.test, y.test){
     
     y <- y.train
     dat.train <- cbind(x.train, y)
     y <- y.test
     dat.test  <- cbind(x.test, y)

     if(is.data.frame(dat.train)==FALSE) dat.train <- data.frame(dat.train)
     if(is.data.frame(dat.test)==FALSE) dat.test <- data.frame(dat.test)
     colnames(dat.train) <- c(1:ncol(x.train), "y")
     colnames(dat.test)  <- c(1:ncol(x.test), "y")

     fit <- lda(y ~ ., dat.train)
     out <- predict(fit, dat.test)

     u.class <- unique(colnames(out$post))
     n.class <- length(u.class)

     True.class <- dat.test$y
     Pred.class <- out$class

     post.prob <-0
     for(j in 1:n.class) {
         i <- which(True.class == u.class[j]) 
         post.prob <- post.prob + sum(out$post[i,j,drop=FALSE])
     }

     N <- length(True.class) 
     nMiss <- N- sum(True.class == Pred.class) 
     Er <- nMiss/nrow(dat.test)
     MiPP <- post.prob - nMiss
     sMiPP <- MiPP/N
     return(list(N.Miss=nMiss, ErrorRate=Er, MiPP=MiPP, sMiPP=sMiPP))
}

Try the MiPP package in your browser

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

MiPP documentation built on Nov. 8, 2020, 8:31 p.m.