#TRIMOWA ALGORITHM:
#Loading the data to apply the trimowa algorithm:
dataDef <- dataDemo
num.variables <- dim(dataDef)[2]
bust <- dataDef$bust
orness <- 0.7
w <- WeightsMixtureUB(orness,num.variables)
bustCirc_4 <- seq(74,102,4)
bustCirc_6 <- seq(107,131,6)
bustCirc <- c(bustCirc_4,bustCirc_6)
nsizes <- length(bustCirc)
K <- 3 ; alpha <- 0.01 ; niter <- 6 ; Ksteps <- 7
ahVect <- c(23,28,20,25,25)
res_trimowa <- list()
for (i in 1 : (nsizes-1)){
data = dataDef[(bust >= bustCirc[i]) & (bust < bustCirc[i + 1]), ]
res_trimowa[[i]] <- trimowa(data,w,K,alpha,niter,Ksteps,ahVect=ahVect)
}
medoids <- list()
for (i in 1 : (nsizes-1)){
medoids[[i]] <- res_trimowa[[i]]$meds #or res_trimowa[[i]][[1]]
}
bustVariable <- "bust"
xlim <- c(70,150)
color <- c("black","red","green", "blue","cyan","brown","gray","deeppink3",
"orange","springgreen4","khaki3","steelblue1")
variable <- "chest"
range(dataDef[,variable])
#[1] 76.7755 135.8580
ylim <- c(70,140)
title <- "Medoids \n bust vs chest"
plotMedoids(dataDef,medoids,nsizes,bustVariable,variable,color,xlim,ylim,title,FALSE)
plotMedoids(dataDef,medoids,nsizes,bustVariable,variable,color,xlim,ylim,title,TRUE)
variable <- "hip"
range(dataDef[,variable])
#[1] 83.6 152.1
ylim <- c(80,160)
title <- "Medoids \n bust vs hip"
plotMedoids(dataDef,medoids,nsizes,bustVariable,variable,color,xlim,ylim,title,FALSE)
plotMedoids(dataDef,medoids,nsizes,bustVariable,variable,color,xlim,ylim,title,TRUE)
variable <- "necktoground"
range(dataDef[,variable])
#[1] 117.6 154.9
ylim = c(110,160)
title <- "Medoids \n bust vs neck to ground"
plotMedoids(dataDef,medoids,nsizes,bustVariable,variable,color,xlim,ylim,title,FALSE)
plotMedoids(dataDef,medoids,nsizes,bustVariable,variable,color,xlim,ylim,title,TRUE)
variable <- "waist"
range(dataDef[,variable])
#[1] 58.6 133.0
ylim <- c(50,140)
title <- "Medoids \n bust vs waist"
plotMedoids(dataDef,medoids,nsizes,bustVariable,variable,color,xlim,ylim,title,FALSE)
plotMedoids(dataDef,medoids,nsizes,bustVariable,variable,color,xlim,ylim,title,TRUE)
#AN EXAMPLE FOR HIPAM ALGORITHM:
dataDef <- dataDemo
bust <- dataDef$bust
bustCirc_4 <- seq(74,102,4)
bustCirc_6 <- seq(107,131,6)
bustCirc <- c(bustCirc_4,bustCirc_6)
nsizes <- length(bustCirc)
maxsplit <- 5 ; orness <- 0.7 ; alpha <- 0.01 ; type <- "MO" #type <- "IMO" for $HIPAM_{IMO}$
ahVect <- c(23, 28, 20, 25, 25)
hip <- list()
for(i in 1 : (nsizes - 1)){
data = dataDef[(bust >= bustCirc[i]) & (bust < bustCirc[i + 1]), ]
d <- as.matrix(data)
hip[[i]] <- hipamAnthropom(d,maxsplit=maxsplit,orness=orness,type=type,ahVect=ahVect)
}
str(hip)
ress <- list()
for(i in 1 : length(hip)){
ress[[i]] <- table(hip[[i]]$clustering)
}
ress
list.meds <- lapply(1:(nsizes - 1), FUN = hipamBigGroups, hip)
bustVariable <- "bust"
xlim <- c(70,150)
color <- c("black","red","green","blue","cyan","brown","gray","deeppink3",
"orange","springgreen4","khaki3","steelblue1")
variable <- "hip"
ylim <- c(80,160)
title <- "Medoids \n bust vs hip"
plotMedoids(dataDef,list.meds,nsizes,bustVariable,variable,color,xlim,ylim,title,FALSE)
Run the code above in your browser using DataLab