Presentación del paquete de R Anthropometry

Guillermo Vinué
30 de Abril de 2014

Presentaciones de becarios/as.
Instituto de Biomecánica de Valencia.

Resumen de la presentación

  1. Qué es R y por qué utilizar R
  2. Para qué crear un paquete de R
  3. Paquete de R Anthropometry
  4. Ejemplos de aplicación
  5. Comentarios finales

1. Qué es R y por qué utilizar R

  • R es un lenguaje de programación para el análisis estadístico y gráfico de datos.
  • R es el software estadístico más utilizado en la actualidad. ¿Por qué?:
    • Es gratis: no hay licencia o copyright.
    • Se puede utilizar en cualquier plataforma (Windows, Linux, MacOS).
    • Permite realizar cualquier análisis estadístico y representación gráfica.
    • Es un lenguaje de comandos pero incluye interfaces como R-Commander o Deducer.
    • Está en continuo crecimiento (sistema de paquetes).

2. Para qué crear un paquete de R

  • Un paquete de R reúne todos los algoritmos desarrollados para un mismo fin.
  • Manera rápida y elegante de compartir el trabajo.
  • Permite documentar todos los algoritmos y dar ejemplos sobre su uso.
  • Puede incluir también bases de datos.
  • Forma establecida para contribuir al desarrollo de R.

3. Paquete de R Anthropometry (I): resumen

  • Contiene todos los algoritmos asociados a las metodologías estadísticas incluidas en mi tesis doctoral:
    1. Para definir un sistema de tallaje de ropa eficiente: prototipos.
    2. Para diseñar cabinas de aeronaves de manera óptima: arquetipoides.
  • Contiene varios bancos de datos:
    1. Muestra de 600 mujeres del estudio antropométrico de la población femenina en España.
    2. Base de datos antropométricos de pilotos de aviones (encuesta USAF).

3. Paquete de R Anthropometry (II): funciones básicas

  • Abrir una consola de R (preferiblemente RStudio).
  • Instalar Anthropometry.
#Cargar el paquete:
library(Anthropometry)
#Funciones básicas:
library(help="Anthropometry")
help(package="Anthropometry")
data(package="Anthropometry")
vignette("Anthropometry",
         package="Anthropometry")
citation("Anthropometry")

4. Ejemplos de aplicación (I): cálculo de prototipos (metodología trimowa)

#Base de datos (mirar ?dataDemo).
dataDef <- dataDemo
#Número de variables antropométricas:
num.variables <- dim(dataDef)[2]
#Medidas del contorno de busto:
bust <- dataDef$bust

#Cálculo de los pesos OWA
#(mirar ?WeightsMixtureUB):
orness <- 0.7
w <- WeightsMixtureUB(orness,num.variables)

Ref.: Ibañez M. V., Vinué G., Alemany S., Simó A., Epifanio I., Domingo J., Ayala G., Apparel sizing using trimmed PAM and OWA operators, Expert Systems with Applications 39, 2012.

#Definición de las tallas de busto de 
#acuerdo a la Normativa Europea 
#UNE 13402-3-2004:
bustCirc_4 <- seq(74,102,4) 
bustCirc_6 <- seq(107,131,6)  
bustCirc <- c(bustCirc_4,bustCirc_6) 
#Número de tallas:
nsizes <- length(bustCirc)
Busto 74-78 78-82 82-86 86-90 90-94 94-98
Busto 98-102 102-107 107-113 113-119 119-125 125-131
#Parámetros para el cálculo de prototipos 
#mediante el algoritmo trimowa 
#(mirar ?trimowa):
K <- 3 ; alpha <- 0.01 
niter <- 6 ; Ksteps <- 7
ahVect <- c(23,28,20,25,25)

#Cálculo de prototipos mediante el 
#algoritmo trimowa:
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)
}
#Prototipos (medoides) obtenidos para cada 
#talla:
medoids <- list()
for (i in 1 : (nsizes-1)){ 
  medoids[[i]] <- res_trimowa[[i]]$meds 
}

#Para representar las medidas de busto y 
#nuca-tierra de los medoides obtenidos:
bustVariable <- "bust"
xlim <- c(70,150)
variable <- "necktoground"
ylim = c(110,160) 
#ver range(dataDef[,variable]).
#Color de los medoides para cada talla:
color <- c("black","red","green", "blue",
           "cyan","brown","gray","deeppink3",
           "orange","springgreen4","khaki3",
           "steelblue1")
#Título del gráfico:
title <- "Medoids \n bust vs neck to ground"
#Busto vs nuca-tierra de los medoides 
#obtenidos:
plotMedoids(dataDef,medoids,nsizes,
            bustVariable,variable,
            color,xlim,ylim,title,FALSE)

plot of chunk unnamed-chunk-8

#Busto vs nuca-tierra de los medoides 
#obtenidos, junto con las tallas estándar.
plotMedoids(dataDef,medoids,nsizes,
            bustVariable,variable,
            color,xlim,ylim,title,TRUE)

plot of chunk unnamed-chunk-9

4. Ejemplos de aplicación (II): cálculo de arquetipoides

#Base de datos (mirar ?dataUSAF).
m <- dataUSAF
#Variables (Zehner et al. (1993)):
sel <- c(48,40,39,33,34,36) 
#Cambio a pulgadas y selección
#de los primeros 50 individuos:
mpulg <- m[1:50,sel] / (10 * 2.54)
#Preprocesamiento de los datos
#(posible estandarización y
#porcentaje de acomodación, mirar 
#?accommodation):
preproc <- accommodation(mpulg,TRUE,
                         0.95,TRUE)
#Cálculo de 1 hasta 10 arquetipos.
#Semilla para obtener siempre los mismos
#resultados:
set.seed(2010) 
numArch <- 10 ; nrep <- 3
#Mirar ?stepArchetypesMod.
lass <- stepArchetypesMod(data=preproc$data,
                          k=1:numArch,
                          verbose=FALSE,
                          nrep=nrep)  
#Cálculo de 3 arquetipoides
#(mirar ?archetypoids):
i <- 3
res <- archetypoids(i,preproc$data,huge=200,
                    step=FALSE,ArchObj=lass,
                    nearest=TRUE,sequ=TRUE)

#Base de datos de los individuos acomodados:
aux <- mpulg[setdiff(1:dim(mpulg)[1],
                     preproc$indivNo),]
rownames(aux) <- 1:dim(preproc$data)[1]
#Representación del primer arquetipoide:
skeletonsArchet(aux[res[[1]][1],],
                "Archetypoid 1")

plot of chunk unnamed-chunk-13

5. Comentarios finales

  • R ofrece posibilidades ilimitadas:
    • Generación de documentos: knitr.
    • Presentaciones: R markdown.
    • Enlaces con Excel y Access.
  • El paquete de R Anthropometry está siempre disponible y actualizado en:
  • Anthropometry es una aportación muy positiva para la Ergonomía y Antropometría.

MUCHAS GRACIAS POR LA ATENCIÓN