output | ||||
---|---|---|---|---|
|
WeDiBaDis
package has two discriminant analysis procedures: the well-known distance-based discriminant analysis (DB-discriminant) and a novel classifier rule, the so-called weighted-distance-based discriminant (WDB-discriminant). This last procedure is based
on an improvement of the DB rule taking into account the statistical depth of the units.
We are introducing the following fictitious situation to show a simple example of use of the main function WDBdisc
in the packge. Imagine we have a data set where the units are classified in 3 classes. We simulated 20 units in dimension 5:
mu1 <- sample(1:10, 5, replace=TRUE)
x1 <- matrix(rnorm(20*5, mean = mu1, sd = 1),ncol=5, byrow=TRUE)
mu2 <- sample(1:10, 5, replace=TRUE)
x2 <- matrix(rnorm(20*5, mean = mu2, sd = 1),ncol=5, byrow=TRUE)
mu3 <- sample(1:10, 5, replace=TRUE)
x3 <- matrix(rnorm(20*5, mean = mu3, sd = 1),ncol=5, byrow=TRUE)
x <- rbind(x1,x2,x3)
#the right partition
classes <- c(rep(1,20), rep(2,20), rep(3,20))
We considered the Euclidean distance between units in matrix x
.
d <- as.matrix(dist(x))
In order to call the function WDBdisc()
we need to build the object that includes the distance matrix and the class variable:
join <- cbind(classes, d)
Now, we are ready to apply WDBdisc()
:
out <- WDBdisc(data=join, datatype="d", method="DB")
summary(out)
Imagine we have 3 units with unkown classes in object x0
and we want to predict their classes. (We simulated one unit drawn from each class). We can use again the WDBdisc()
function as follows:
#Generation of x0
aux <- c(rnorm(5, mean = mu1, sd = 1), rnorm(5, mean = mu2, sd = 1), rnorm(5, mean = mu3, sd = 1))
x0 <- matrix(aux, ncol=5, byrow=TRUE)
# Distances from units x0 to the 60 units in data set x
dx0 <- as.matrix(dist(rbind(x, x0)))[61:63, 1:60]
# Prediction of classes
out <- WDBdisc(data=join, datatype="d", method="DB", new.ind=dx0)
summary(out)
Once package devtools
is installed, it provides function install_github()
to install the package.
library(devtools)
install_github("ItziarI/WeDiBaDis")