---
title: "Backward Elimination"
output: html_notebook
date: April 3
---



```{r, echo=F}
load("../BackwardElimination/Remove_YH_PC.RData")
YH.PD <- results1
load("../BackwardElimination/Remove_YH_PC_CC.RData")
YH.PD.CC <- results1
load("../BackwardElimination/Remove_YH_PC_FB.RData")
YH.PD.FB <- results1
load("../BackwardElimination/Remove_YH_PC_FC.RData")
YH.PD.FC <- results1
load("../BackwardElimination/Remove_YH_PC_MB.RData")
YH.PD.MB <- results1
load("../BackwardElimination/Remove_YH_PC_SC.RData")
YH.PD.SC <- results1
load("../BackwardElimination/Remove_YH_PC_TH.RData")
YH.PD.TH <- results1
```

```{r}
results.var <- c("YH.PD", "YH.PD.CC", "YH.PD.FB", "YH.PD.FC", "YH.PD.MB", "YH.PD.SC", "YH.PD.TH")
vrange90.c <- c()
vrange95.c <- c()

for(i in results.var){
        r <- eval(parse(text = i))
        vals <- unlist(lapply(r, function(x){
                if(is.null(x[[4]])){
                        return(NA)
                }
                else{return(x[[4]])}

        }))
        vals <- na.omit(vals)
        vals <- sort(vals)
        plot(vals)
        vmin <- vals[round(length(vals)*0.05)]
        vmax <- vals[length(vals)-round(length(vals)*0.05)]
        vrange90 <- abs(vmax)-abs(vmin)
        vmin <- vals[round(length(vals)*0.025)]
        vmax <- vals[length(vals)-round(length(vals)*0.025)]
        vrange95 <- abs(vmax)-abs(vmin) 
        
        vrange90.c <- c(vrange90.c, vrange90)
        vrange95.c <- c(vrange95.c, vrange95)
}

results_remove <- data.frame(rm_classifiers=results.var, vrange90.c, vrange95.c)

```
