P
rJean R. Lobry
Analyse exploratoire d’une table de 93 variables morphométriques pour 6068 individus.
Table des matières
1 Introduction 4
1.1 Les données . . . 4
1.2 Clef d’identification des individus . . . 4
1.3 Typologie des variables morphométriques . . . 5
1.4 Une fonction utlitaire . . . 5
1.5 Effet taille en ACP . . . 5
2 Main 7 2.1 Traduction du nom des variables . . . 7
2.2 Largeur de la main 1 fig. 1 p. 7 . . . 7
2.3 Circonférence de la main 2 fig. 1 p. 7 . . . 8
2.4 Longueur de la main 3 fig. 1 p. 7 . . . 8
2.5 Longueur de la paume 4 fig. 1 p. 7 . . . 8
2.6 ACP . . . 9
3 Pied 10 3.1 Traduction du nom des variables . . . 10
3.2 Circonférence du pied 5 fig. 2 p. 11 . . . 12
3.3 Longueur arrière du pied 6 fig. 2 p. 11 . . . 12
3.4 Largeur bimalléolaire 7 fig. 2 p. 11 . . . 12
3.5 Largeur du pied 8 fig. 2 p. 11 . . . 12
3.6 Longueur du pied 9 fig. 2 p. 11 . . . 13
3.7 Largeur du talon 10 fig. 2 p. 11 . . . 13
3.8 Hauteur malléolaire 11 fig. 2 p. 11 . . . 13
3.9 Circonférence de la cheville 33 fig. 3 p. 11 . . . 14
3.10 Circonférence de la cheville au talon 35 fig. 3 p. 11 . . . 14
3.11 ACP . . . 14
4 Tête 15 4.1 Traduction du nom des variables . . . 15
4.2 Arc du menton 12 fig. 4 p. 15 . . . 17
4.3 Arc du cou 13 fig. 4 p. 15 . . . 17
4.4 Largeur des joues 14 fig. 4 p. 15 . . . 17
4.7 Largeur interpupillaire 17 fig. 4 p. 15 . . . 18
4.8 Largeur des oreilles 18 fig. 5 p. 16 . . . 19
4.9 Longueur des oreilles 19 fig. 5 p. 16 . . . 19
4.10 Décollement des oreilles 20 fig. 5 p. 16 . . . 20
4.11 Longueur de la tête 21 fig. 5 p. 16 . . . 21
4.12 Longueur du bas de la tête 22 fig. 5 p. 16 . . . 21
4.13 Circonférence du cou 23 fig. 6 p. 16 . . . 22
4.14 Circonférence de la base du cou 24 fig. 6 p. 16 . . . 22
4.15 Longueur du haut de la tête 26 fig. 6 p. 16 . . . 23
4.16 ACP . . . 23
5 Bras 24 5.1 Traduction du nom des variables . . . 24
5.2 Empan des bras 25 fig. 7 p. 24 . . . 28
5.3 Longueur des manches au milieu du dos 37 fig. 8 p. 25 . . . 28
5.4 Longueur avant-bras sans la main 45 fig. 9 p. 25 . . . 29
5.5 Longueur de la manche 46 fig. 9 p. 25 . . . 29
5.6 Circonférence du poignet 47 fig. 9 p. 25 . . . 30
5.7 Longueur de l’avant-bras et de la main 52 fig. 10 p. 25 . . . 30
5.8 Longueur de l’avant-bras et du centre du poing 58 fig. 11 p. 26 . 31 5.9 Longueur du dos au poing 73 fig. 12 p. 26 . . . 31
5.10 Circonférence du biceps 81 fig. 13 p. 26 . . . 32
5.11 Circonférence de l’avant-bras 84 fig. 13 p. 26 . . . 32
5.12 Longueur arrière-bras 49 fig. 14 p. 27 . . . 33
5.13 Longueur de l’épaule au coude 53 fig. 15 p. 27 . . . 33
5.14 ACP . . . 34
6 Tronc 35 6.1 Traduction du nom des variables . . . 35
6.2 Circonférence au niveau des fesses 27 fig. 16 p. 36 . . . 40
6.3 Circonférence au niveau de la poitrine 28 fig. 16 p. 36 . . . 40
6.4 Circonférence au niveau des épaules 30 fig. 16 p. 36 . . . 41
6.5 Circonférence au niveau du nombril 32 fig. 16 p. 36 . . . 41
6.6 Circonférence verticale du torse 31 fig. 17 p. 36 . . . 42
6.7 Profondeur du torse debout 39 fig. 18 p. 37 . . . 42
6.8 Profondeur du torse au niveau de la poitrine 41 fig. 19 p. 37 . . 43
6.9 Arc du bas du torse 42 fig. 19 p. 37 . . . 43
6.10 Profondeur du torse assis 80 fig. 20 p. 37 . . . 44
6.11 Largeur de l’épaule 77 fig. 21 p. 38 . . . 44
6.12 Largeur interne de l’épaule 87 fig. 22 p. 38 . . . 45
6.13 Largeur externe de l’épaule 88 fig. 22 p. 38 . . . . 45
6.14 Largeur coude à coude 89 fig. 22 p. 38 . . . . 46
6.15 Largeur des hanches en position assise 91 fig. 22 p. 38 . . . 46
6.16 Hauteur du nombril au haut du sternum 90 fig. 23 p. 38 . . . . 47
6.17 Largeur du dos en haut 72 fig. 24 p. 39 . . . 47
6.18 Largeur du dos en bas 71 fig. 24 p. 39 . . . 48
6.19 Hauteur du dos 74 fig. 24 p. 39 . . . 48
6.20 Largeur au dessus du nombril 65 fig. 25 p. 39 . . . 49
6.22 Largeur au niveau des hanches 68 fig. 25 p. 39 . . . 50
6.23 Largeur au niveau du nombril 69 fig. 25 p. 39 . . . 50
6.24 Profondeur des fesses 70 fig. 26 p. 39 . . . 51
6.25 Arc des fesses 67 fig. 27 p. 39 . . . 51
7 Jambe 52 7.1 Longueur de la jambe 92 fig. 28 p. 52 . . . 52
7.2 Longueur du genou à la fesse 82 fig. 29 p. 53 . . . 53
7.3 Longueur du pli du genou à la fesse 83 fig. 29 p. 53 . . . 54
7.4 Hauteur du genou assis 85 fig. 29 p. 53 . . . . 54
7.5 Hauteur du pli du genou assis 86 fig. 29 p. 53 . . . . 54
7.6 Épaisseur de la cuisse assis 79 fig. 30 p. 55 . . . 55
7.7 Hauteur du tibia 64 fig. 31 p. 56 . . . 55
7.8 Hauteur du genou debout 43 fig. 32 p. 57 . . . 56
7.9 Hauteur du genou latéralement 44 fig. 32 p. 57 . . . 57
7.10 Circonférence du mollet . . . 58
7.11 Circonférence du genou . . . 59
7.12 Circonférence de la cuisse . . . 59
7.13 ACP . . . 60
8 Stature 61 8.1 Assis touché plafond . . . 62
8.2 Hauteur du coude assis . . . 62
8.3 Hauteur des yeux assis . . . 63
8.4 Hauteur assis . . . 63
8.5 Hauteur des aisselles . . . 64
8.6 Hauteur de la poitrine . . . 64
8.7 Hauteur du pli du coude . . . 65
8.8 Hauteur de la dixième côte . . . 65
8.9 Hauteur du haut du sternum . . . 66
8.10 Hauteur du nombril . . . 66
8.11 Taille . . . 67
8.12 Hauteur du bas des fesses . . . 67
8.13 Hauteur du bout des fesses . . . 68
8.14 Hauteur du haut des fesses . . . 69
8.15 Hauteur du cou . . . 70
8.16 Hauteur de l’épaule . . . 70
8.17 Hauteur du poignet . . . 71
8.18 Masse . . . 71
9 Autres variables 72 9.1 Le sexe des individus . . . 72
9.2 La date d’acquisition des mesures . . . 73
9.3 Unité de ratachement . . . 73
9.4 Corps . . . 75
9.5 Branche . . . 75
9.6 Spécalité militaire principale . . . 76
9.7 Lieu de naissance . . . 77
9.8 Codage numérique de la race . . . 77
9.10 Codage DOD de la race . . . 78
9.11 Age . . . 80
9.12 Taille auto-déclarée . . . 80
9.13 Masse auto-déclarée . . . 81
9.14 Main dominante . . . 83
10 Sauvegarde du fichier modifié 83 11 Recherche bibliographique 83 11.1 Articles citant [5] . . . 83 11.2 Articles citant [2] . . . 83 Références 83
1
Introduction
1.1
Les données
I
l s’agit ici de données issues de la collecte de 93 variables morphométriques (92 longueurs, 1 masse) sur 6068 soldats américains [3, 2, 5]. Le premier objectif est de traduire les nom des variables en français (ansur → ansurf) et de vérifier la cohérence des unités. C’est un jeu de donnée de très haute qualité, les seules difficultés mineures que j’ai rencontrées sont :1o dans le fichier ANSUR II MALE Public.csv le nom de la première colonne
est subjectid alors que dans le fichier ANSUR II FEMALE Public.csv c’est SubjectId ce qui pose un problème lors de l’apposition des tables sous ;
2o les unité pour la variable interpupillarybreadth, la distance entre le
centre des deux pupilles ( 17 fig. 4 p. 15), n’est pas en mm mais en
dixième de mm ;
3o les unité pour la variable weightkg ne sont pas en kg mais en dixième de
kg (c’est dit dans la documentation) ;
4o la variable 40 fig. 19 p. 37 n’est pas dans le jeu de donnée ;
5o il y avait un problème d’encodage des caractères pour la modalité Métis
Créole de la variable Ethnicity.
load("ansur.Rda")
ansurf <- ansur # Pour traduire les noms de variables en français
1.2
Clef d’identification des individus
M
ême si je me doute bien que les clefs d’identification des soldats américains sont particulièrement bien protégées, je n’aime pas du tout l’idée de lais-ser traîner la clef d’une personne physique dans un jeu de données à vocation didactique. Je vais donc mélanger les lignes et prendre comme clef le rang après permutation.set.seed(1) ; n <- nrow(ansurf) ansurf <- ansurf[sample(1:n), ] names(ansurf)[1] <- "ID"
ansurf$ID <- rownames(ansurf) <- 1:n head(ansurf[ , 1:4])
ID abdominalextensiondepthsitting acromialheight acromionradialelength
1 1 353 1438 338 2 2 268 1437 323 3 3 232 1373 304 4 4 277 1455 345 5 5 233 1323 298 6 6 290 1476 358
1.3
Typologie des variables morphométriques
L
e nombre de variables étant important, je les ai regroupées en me basant sur les notions d’anatomie d’un enfant de 4-5 ans (cf. ci-contre), à savoir : la tête, les mains, les bras, le tronc, les jambes et les pieds. Toutes les variables morphométriques qui ne rentrent pas clairement dans une de ces catégories, par exemple la taille des individus, est regroupé dans la classe « stature ».1.4
Une fonction utlitaire
J
’ai défini la petite fonction utilutaire suivante pour représenter la distribu-tion des variables en distinguant les hommes des femmes. Comme toutes les variables sont strictement positives, je vais aussi ajouter le coeficient de varia-tion.myplot <- function(var = "largeurMain", df = ansurf, unit = "[mm]", ...){ colM <- rgb(0.2, 0.2, 1, 0.5) ; colF <- rgb(1, 0.2, 0.2, 0.5)
polycurve <- function(x, y, base.y = min(y), ...) {
polygon(x = c(min(x), x, max(x)), y = c(base.y, y, base.y), ...) }
ivar = match(var, colnames(df))
dstm <- density(df[df$Gender == "Male", ivar], ...) dstf <- density(df[df$Gender == "Female", ivar], ...) xlim = range(dstm$x, dstf$x)
ylim = range(dstm$y, dstf$y) xlab = paste(var, unit)
plot(dstm$x, dstm$y, type = "l", xlab = xlab, xlim = xlim, ylim = ylim) polycurve(dstm$x, dstm$y, base.y = 0, col = colM)
lines(dstf$x, dstf$y)
polycurve(dstf$x, dstf$y, base.y = 0, col = colF) rug(floor(xlim[1]):ceiling(xlim[2]))
title(main = colnames(ansur)[ivar])
var.n <- function(x, ...) var(x, ...)*(length(x) - 1)/length(x) CV <- function(x, ...) sqrt(var.n(x, ...))/mean(x, ...)
CVm <- signif(100*CV(df[df$Gender == "Male", ivar]), 3) CVf <- signif(100*CV(df[df$Gender == "Female", ivar]), 3) text(xlim[1], ylim[2]/2, CVf, col = "red", cex = 1.5) text(xlim[2], ylim[2]/2, CVm, col = "blue", cex = 1.5) }
1.5
Effet taille en ACP
C
e jeu de données permet d’illustrer de façon spectaculaire ce qu’est un effet taille en ACP :library(ade4)
dta <- ansurf[ , 2:94] # sélection des 93 variables morphométriques acp <- dudi.pca(dta, scannf = FALSE)
Figure 1 – Copie d’écran d’une partie de la page 229 de [3]. 1 hand
breadth 2 hand circumference 3 hand length 4 palm length.
2
Main
2.1
Traduction du nom des variables
L
e nom traduit comporte systématique les caractères Main pour pouvoir fa-cilement les repérer.main <- c("handbreadth", "handcircumference", "handlength", "palmlength") imain <- match(main, names(ansur))
names(ansurf)[imain]
<-c("largeurMain", "cironférenceMain", "longueurMain", "longueurPaumeMain") names(ansurf)[grep("Main", names(ansurf))]
[1] "largeurMain" "cironférenceMain" "longueurMain" "longueurPaumeMain"
2.2
Largeur de la main
1fig. 1 p. 7
myplot(adjust = 0.25) 70 80 90 100 0.00 0.10 0.20 largeurMain [mm] dstm$y handbreadth
4.92
4.97
2.3
Circonférence de la main
2fig. 1 p. 7
myplot("cironférenceMain", adjust = 0.5) 160 180 200 220 240 0.00 0.02 0.04 0.06 cironférenceMain [mm] dstm$y handcircumference4.73
4.82
2.4
Longueur de la main
3fig. 1 p. 7
myplot("longueurMain", adjust = 1) 140 160 180 200 220 240 0.00 0.01 0.02 0.03 0.04 longueurMain [mm] dstm$y handlength
5.55
5.15
2.5
Longueur de la paume
4fig. 1 p. 7
90 100 110 120 130 140 0.00 0.02 0.04 0.06 longueurPaumeMain [mm] dstm$y palmlength
5.46
5.35
2.6
ACP
tmp <- ansurf[ , imain]acptmp <- dudi.pca(tmp, scannf = FALSE, scale = FALSE) s.corcircle(acptmp$co, clabel = 0.5)
largeurMain cironférenceMain
longueurMain
P
ourrait utilement illustrer l’effet forme avec l’opposition entre les mains larges et les mains fines. Est-ce qu’il y a un dimorphisme sexuel ?colM <- rgb(0.2, 0.2, 1, 0.5) ; colF <- rgb(1, 0.2, 0.2, 0.5) mycols <- ifelse(ansurf$Gender == "Male", colM, colF)
s.class(acptmp$li, ansurf$Gender, cstar = 0, axesell = FALSE, cpoint = 0.2, col = c(colF, colM))
T
rès joli, s’interprète en disant que les mains des femmes ont tendance à être plus fines que celle des hommes. Joli petit exercice.3
Pied
3.1
Traduction du nom des variables
L
e nom traduit comporte systématique les caractères Pied pour pouvoir fa-cilement les repérer.pied <- c("balloffootcircumference", "balloffootlength", "bimalleolarbreadth", "footbreadthhorizontal", "footlength", "heelbreadth",
"lateralmalleolusheight",
"anklecircumference", "heelanklecircumference") ipied <- match(pied, names(ansur))
names(ansurf)[ipied]
<-c("ciconférencePied", "longueurArrièrePied", "largeurBimalléolairePied", "largeurPied", "longueurPied", "largeurTalonPied",
"hauteurMalléolairePied", "circonférenceChevillePied", "circonférenceChevilleTalonPied") names(ansurf)[grep("Pied", names(ansurf))] [1] "circonférenceChevillePied" "ciconférencePied" [3] "longueurArrièrePied" "largeurBimalléolairePied" [5] "largeurPied" "longueurPied" [7] "circonférenceChevilleTalonPied" "largeurTalonPied" [9] "hauteurMalléolairePied"
Figure 2 – Copie d’écran d’une partie de la page 230 de [3]. 5 ball of
foot circumference 6 ball of foot length 7 bimalleolar breadth 8 foot
breadth, horizontal 9 foot length 10 heel breadth 11 lateral malleolus
height.
Figure 3 – Copie d’écran d’une partie de la page 235 de [3]. 33 ankle
3.2
Circonférence du pied
5fig. 2 p. 11
myplot("ciconférencePied", adjust = 1) 180 200 220 240 260 280 300 0.000 0.010 0.020 0.030 ciconférencePied [mm] dstm$y balloffootcircumference 5.16 5.133.3
Longueur arrière du pied
6fig. 2 p. 11
myplot("longueurArrièrePied", adjust = 1) 160 180 200 220 240 0.00 0.01 0.02 0.03 0.04 longueurArrièrePied [mm] dstm$y balloffootlength 5.29 5.21
3.4
Largeur bimalléolaire
7fig. 2 p. 11
myplot("largeurBimalléolairePied", adjust = 0.5) 60 70 80 90 0.00 0.05 0.10 0.15 largeurBimalléolairePied [mm] dstm$y bimalleolarbreadth 5.2 5.51
3.5
Largeur du pied
8fig. 2 p. 11
80 90 100 110 120 130 0.00 0.02 0.04 0.06 0.08 largeurPied [mm] dstm$y footbreadthhorizontal 5.15 5.14
3.6
Longueur du pied
9fig. 2 p. 11
myplot("longueurPied", adjust = 1) 200 220 240 260 280 300 320 0.000 0.010 0.020 0.030 longueurPied [mm] dstm$y footlength 5.05 4.83
3.7
Largeur du talon
10fig. 2 p. 11
myplot("largeurTalonPied", adjust = 0.3) 50 60 70 80 90 0.00 0.04 0.08 0.12 largeurTalonPied [mm] dstm$y heelbreadth 7.7 7.55
3.8
Hauteur malléolaire
11fig. 2 p. 11
50 60 70 80 90 0.00 0.04 0.08 hauteurMalléolairePied [mm] dstm$y lateralmalleolusheight 8.14 7.77
3.9
Circonférence de la cheville
33fig. 3 p. 11
myplot("circonférenceChevillePied", adjust = 1) 150 200 250 300 0.000 0.010 0.020 circonférenceChevillePied [mm] dstm$y anklecircumference 6.9 6.39
3.10
Circonférence de la cheville au talon
35fig. 3 p. 11
myplot("circonférenceChevilleTalonPied", adjust = 1) 250 300 350 400 0.000 0.010 0.020 circonférenceChevilleTalonPied [mm] dstm$y heelanklecircumference 4.93 4.84
3.11
ACP
tmp <- ansurf[ , ipied]acptmp <- dudi.pca(tmp, scannf = FALSE, scale = FALSE) s.corcircle(acptmp$co, clabel = 0.5)
Figure 4 – Copie d’écran d’une partie de la page 231 de [3]. 12 bitragion
chin arc 13 bitragion submandibular arc 14 bizygomatic breadth 15 head
breadth 16 head circumference 17 interpupillary breadth.
ciconférencePied longueurArrièrePied largeurBimalléolairePied largeurPied longueurPied largeurTalonPied hauteurMalléolairePied circonférenceChevillePied circonférenceChevilleTalonPied
4
Tête
4.1
Traduction du nom des variables
L
e nom traduit comporte systématique les caractères Tête pour pouvoir fa-cilement les repérer.Figure 5 – Copie d’écran d’une partie de la page 232 de [3]. 18 ear breadth 19 ear length 20 ear protrusion 21 head length 22 menton-sellion length.
Figure 6 – Copie d’écran d’une partie de la page 233 de [3]. 23 neck
"earbreadth", "earlength", "earprotrusion", "headlength", "mentonsellionlength",
"neckcircumference", "neckcircumferencebase", "tragiontopofhead") itête <- match(tête, names(ansur))
names(ansurf)[itête]
<-c("arcMentonTête", "arcCouTête", "largeurJouesTête",
"largeurTête", "circonférenceTête", "largeurYeuxTête",
"largeurOreilleTête", "longueurOreilleTête", "décollementOreilleTête", "longueurTête", "longueurMentonTête",
"circonférenceCouTête", "circonférenceCouBaseTête", "hauteurTête") names(ansurf)[grep("Tête", names(ansurf))]
[1] "arcMentonTête" "arcCouTête" "largeurJouesTête" [4] "largeurOreilleTête" "longueurOreilleTête" "décollementOreilleTête" [7] "largeurTête" "circonférenceTête" "longueurTête"
[10] "largeurYeuxTête" "longueurMentonTête" "circonférenceCouTête" [13] "circonférenceCouBaseTête" "hauteurTête"
4.2
Arc du menton
12fig. 4 p. 15
myplot("arcMentonTête", adjust = 1) 260 280 300 320 340 360 380 0.000 0.010 0.020 0.030 arcMentonTête [mm] dstm$y bitragionchinarc 4.55 4.23
4.3
Arc du cou
13fig. 4 p. 15
myplot("arcCouTête", adjust = 1) 250 300 350 400 0.000 0.010 0.020 arcCouTête [mm] dstm$y bitragionsubmandibulararc 5.31 5.27
4.4
Largeur des joues
14fig. 4 p. 15
120 130 140 150 160 170 0.00 0.02 0.04 0.06 largeurJouesTête [mm] dstm$y bizygomaticbreadth 4.16 4.36
4.5
Largeur de la tête
15fig. 4 p. 15
myplot("largeurTête", adjust = 1) 130 140 150 160 170 180 0.00 0.02 0.04 0.06 0.08 largeurTête [mm] dstm$y headbreadth 3.51 3.58
4.6
Circonférence de la tête
16fig. 4 p. 15
myplot("circonférenceTête", adjust = 1) 500 550 600 650 0.000 0.010 0.020 circonférenceTête [mm] dstm$y headcircumference 3.45 2.79
4.7
Largeur interpupillaire
17fig. 4 p. 15
500 550 600 650 700 750 0.000 0.004 0.008 0.012 largeurYeuxTête [mm] dstm$y interpupillarybreadth 5.87 5.34
I
l est impossible que la distance entre les deux yeux soit de l’ordre de 60 cm, je pense qu’il y a un facteur 10 ici.ansurf$largeurYeuxTête <- ansurf$largeurYeuxTête/10 myplot("largeurYeuxTête", adjust = 1) 50 55 60 65 70 75 0.00 0.04 0.08 0.12 largeurYeuxTête [mm] dstm$y interpupillarybreadth 5.87 5.34
4.8
Largeur des oreilles
18fig. 5 p. 16
myplot("largeurOreilleTête", adjust = 0.4) 25 30 35 40 45 0.00 0.10 0.20 largeurOreilleTête [mm] dstm$y earbreadth 8.34 8.39
4.9
Longueur des oreilles
19fig. 5 p. 16
50 60 70 80 0.00 0.05 0.10 0.15 0.20 longueurOreilleTête [mm] dstm$y earlength 6.54 7.02
Une idée d’exercice rigolo : est-ce que les oreilles poussent avec l’age ?
par(mfrow = c(1, 2))
with(ansurf[ansurf$Gender == "Male", ], {
smoothScatter(longueurOreilleTête~Age, main = "Male") abline(lm(longueurOreilleTête~Age))
})
with(ansurf[ansurf$Gender == "Female", ], {
smoothScatter(longueurOreilleTête~Age, main = "Female") abline(lm(longueurOreilleTête~Age)) }) 20 30 40 50 50 60 70 80 Male Age longueurOreilleT ête 20 30 40 50 45 50 55 60 65 70 75 Female Age longueurOreilleT ête
Impressionant, on gagne un bon demi-centimètre en 30 ans !
4.10
Décollement des oreilles
20fig. 5 p. 16
15 20 25 30 35 0.00 0.10 0.20 0.30 décollementOreilleTête [mm] dstm$y earprotrusion
13
12.9
4.11
Longueur de la tête
21fig. 5 p. 16
myplot("longueurTête", adjust = 0.5) 170 180 190 200 210 220 0.00 0.02 0.04 0.06 longueurTête [mm] dstm$y headlength
3.92
3.52
4.12
Longueur du bas de la tête
22fig. 5 p. 16
90 100 110 120 130 140 150 160 0.00 0.02 0.04 0.06 longueurMentonTête [mm] dstm$y mentonsellionlength
5.38
5.43
4.13
Circonférence du cou
23fig. 6 p. 16
myplot("circonférenceCouTête", adjust = 1) 300 350 400 450 500 0.000 0.010 0.020 circonférenceCouTête [mm] dstm$y neckcircumference
5.83
6.48
4.14
Circonférence de la base du cou
24fig. 6 p. 16
300 350 400 450 500 550 0.000 0.010 0.020 circonférenceCouBaseTête [mm] dstm$y neckcircumferencebase
5.3
5.91
4.15
Longueur du haut de la tête
26fig. 6 p. 16
myplot("hauteurTête", adjust = 1) 100 110 120 130 140 150 0.00 0.02 0.04 0.06 hauteurTête [mm] dstm$y tragiontopofhead
5.18
4.7
4.16
ACP
tmp <- ansurf[ , itête]acptmp <- dudi.pca(tmp, scannf = FALSE, scale = FALSE) s.corcircle(acptmp$co, clabel = 0.5)
Figure 7 – Copie d’écran d’une partie de la page 233 de [3]. 25 span. arcMentonTête arcCouTête largeurJouesTête largeurTête circonférenceTête largeurYeuxTête largeurOreilleTête longueurOreilleTête décollementOreilleTête longueurTête longueurMentonTête circonférenceCouTête circonférenceCouBaseTête hauteurTête
5
Bras
5.1
Traduction du nom des variables
L
e nom traduit comporte systématique les caractères Bras pour pouvoir fa-cilement les repérer.Figure 8 – Copie d’écran d’une partie de la page 235 de [3]. 37 sleeve
length : spine-wrist.
Figure 9 – Copie d’écran d’une partie de la page 236 de [3]. 45
radiale-stylion length 46 sleeve outseam 47 wrist circumference.
Figure 10 – Copie d’écran d’une partie de la page 237 de [3]. 52
Figure 11 – Copie d’écran d’une partie de la page 238 de [3]. 58
forearm-center of grip length.
Figure 12 – Copie d’écran d’une partie de la page 238 de [3]. 73 thumbtip
reach.
Figure 13 – Copie d’écran d’une partie de la page 242 de [3]. 81 biceps
Figure 14 – Copie d’écran d’une partie de la page 237 de [3]. 49
acromion-radiale length.
Figure 15 – Copie d’écran d’une partie de la page 237 de [3]. 53
bras <- c("span", "sleevelengthspinewrist",
"radialestylionlength", "sleeveoutseam", "wristcircumference", "forearmhandlength", "forearmcenterofgriplength", "thumbtipreach", "bicepscircumferenceflexed", "forearmcircumferenceflexed", "acromionradialelength", "shoulderelbowlength") ibras <- match(bras, names(ansur)) names(ansurf)[ibras]
<-c("empanBras", "longueurMancheBras",
"longueurAvantBras", "longueurMancheSeuleBras", "circonférencePoignetBras", "longueurAvantBrasMain", "longueurAvantBrasPoing", "longueurDosPoingBras", "circonférenceBicepsBras", "circonférenceAvantBras", "longueurArrièreBras", "longueurÉpauleCoudeBras") names(ansurf)[grep("Bras", names(ansurf))]
[1] "longueurArrièreBras" "circonférenceBicepsBras" "longueurAvantBrasPoing" [4] "circonférenceAvantBras" "longueurAvantBrasMain" "longueurAvantBras" [7] "longueurÉpauleCoudeBras" "longueurMancheBras" "longueurMancheSeuleBras" [10] "empanBras" "longueurDosPoingBras" "circonférencePoignetBras"
5.2
Empan des bras
25fig. 7 p. 24
myplot("empanBras", adjust = 1) 1400 1600 1800 2000 0.000 0.002 0.004 empanBras [mm] dstm$y span
5
4.66
5.3
Longueur des manches au milieu du dos
37fig. 8 p. 25
600 700 800 900 1000 0.000 0.004 0.008 longueurMancheBras [mm] dstm$y sleevelengthspinewrist
4.7
4.49
5.4
Longueur avant-bras sans la main
45fig. 9 p. 25
myplot("longueurAvantBras", adjust = 1) 200 250 300 0.000 0.010 0.020 0.030 longueurAvantBras [mm] dstm$y radialestylionlength
6.31
5.75
5.5
Longueur de la manche
46fig. 9 p. 25
400 450 500 550 600 650 700 0.000 0.005 0.010 0.015 longueurMancheSeuleBras [mm] dstm$y sleeveoutseam
5.42
5.2
5.6
Circonférence du poignet
47fig. 9 p. 25
myplot("circonférencePoignetBras", adjust = 1) 120 140 160 180 200 220 0.00 0.02 0.04 circonférencePoignetBras [mm] dstm$y wristcircumference
5.06
5.09
5.7
Longueur de l’avant-bras et de la main
52fig. 10 p. 25
350 400 450 500 550 0.000 0.010 longueurAvantBrasMain [mm] dstm$y forearmhandlength
5.31
4.85
5.8
Longueur de l’avant-bras et du centre du poing
58fig. 11 p. 26
myplot("longueurAvantBrasPoing", adjust = 1) 250 300 350 400 0.000 0.010 0.020 longueurAvantBrasPoing [mm] dstm$y forearmcenterofgriplength5.67
5.16
5.9
Longueur du dos au poing
73fig. 12 p. 26
600 700 800 900 1000 0.000 0.004 0.008 longueurDosPoingBras [mm] dstm$y thumbtipreach
5.74
5.38
5.10
Circonférence du biceps
81fig. 13 p. 26
myplot("circonférenceBicepsBras", adjust = 1) 200 250 300 350 400 450 500 0.000 0.004 0.008 0.012 circonférenceBicepsBras [mm] dstm$y bicepscircumferenceflexed
10.1
9.67
5.11
Circonférence de l’avant-bras
84fig. 13 p. 26
200 250 300 350 400 0.000 0.010 0.020 circonférenceAvantBras [mm] dstm$y forearmcircumferenceflexed
7.01
7.09
5.12
Longueur arrière-bras
49fig. 14 p. 27
myplot("longueurArrièreBras", adjust = 1) 250 300 350 400 0.000 0.010 0.020 longueurArrièreBras [mm] dstm$y acromionradialelength
5.51
5.21
5.13
Longueur de l’épaule au coude
53fig. 15 p. 27
300 350 400 0.000 0.010 0.020 longueurÉpauleCoudeBras [mm] dstm$y shoulderelbowlength
5.16
5
5.14
ACP
tmp <- ansurf[ , ibras]acptmp <- dudi.pca(tmp, scannf = FALSE, scale = FALSE) s.corcircle(acptmp$co, clabel = 0.5) empanBras longueurMancheBras longueurAvantBras longueurMancheSeuleBras circonférencePoignetBras longueurAvantBrasMain longueurAvantBrasPoing longueurDosPoingBras circonférenceBicepsBras circonférenceAvantBras longueurArrièreBras longueurÉpauleCoudeBras
s.class(acptmp$li, ansurf$Gender, cstar = 0, axesell = FALSE, cpoint = 0.2, col = c(colF, colM))
d = 200
Female Male
6
Tronc
6.1
Traduction du nom des variables
L
e nom traduit comporte systématique les caractères Torse pour pouvoir facilement les repérer.torse <- c("buttockcircumference", "chestcircumference", "shouldercircumference", "waistcircumference", "verticaltrunkcircumferenceusa", "waistdepth", "chestdepth", "crotchlengthomphalion", "abdominalextensiondepthsitting", "shoulderlength", "biacromialbreadth", "bideltoidbreadth", "forearmforearmbreadth", "hipbreadthsitting", "waistfrontlengthsitting",
"interscyei", "interscyeii", "waistbacklength",
"bicristalbreadth", "chestbreadth", "hipbreadth", "waistbreadth", "buttockdepth",
"crotchlengthposterioromphalion") itorse <- match(torse, names(ansur)) names(ansurf)[itorse]
Figure 16 – Copie d’écran d’une partie de la page 234 de [3]. 27 buttock
circumference 28 chest circumference 30 shoulder circumference 32 waist
circumference (omphalion).
Figure 17 – Copie d’écran d’une partie de la page 234 de [3]. 31 vertical
Figure 18 – Copie d’écran d’une partie de la page 235 de [3]. 39 waist
depth.
Figure 19 – Copie d’écran d’une partie de la page 236 de [3]. 40
acro-mion–wall depth (n’est pas dans le jeu de données) 41 chest depth 42
crotch length (omphalion).
Figure 20 – Copie d’écran d’une partie de la page 242 de [3]. 80 abdominal
Figure 21 – Copie d’écran d’une partie de la page 241 de [3]. 77 shoulder
length.
Figure 22 – Copie d’écran d’une partie de la page 243 de [3]. 87 biacromial
breadth 88 bideltoid breadth 89 forearm-forearm breadth 91 hip breadth,
sitting.
Figure 23 – Copie d’écran d’une partie de la page 243 de [3]. 90 waist
Figure 24 – Copie d’écran d’une partie de la page 240 de [3]. 71 interscye
i 72 interscye ii 74 waist back length (omphalion).
Figure 25 – Copie d’écran d’une partie de la page 239 de [3]. 65 bicristal
breadth 66 chest breadth 69 hip breadth 69 waist breadth.
Figure 26 – Copie d’écran d’une partie de la page 240 de [3]. 70 buttock
depth.
Figure 27 – Copie d’écran d’une partie de la page 239 de [3]. 67 crotch
"circonférenceVerticaleTorse", "profondeurTorseDebout", "profondeurTorsePointrine", "arcTorseBas", "profondeurTorseAssis", "largeurÉpauleTorse", "largeurÉpauleIntTorse", "largeurÉpauleExtTorse", "largeurCoudeCoudeTorse", "largeurHanchesAssisTorse", "longueurTorse",
"largeurDosITorse", "largeurDosIITorse", "hauteurDosTorse",
"largeurDessusNombrilTorse", "largeurPoitrineTorse", "largeurHancheTorse", "largeurNombrilTorse", "profondeurFesseTorse", "arcFesseTorse") names(ansurf)[grep("Torse", names(ansurf))] [1] "profondeurTorseAssis" "largeurÉpauleIntTorse" [3] "largeurDessusNombrilTorse" "largeurÉpauleExtTorse" [5] "circonférenceFessesTorse" "profondeurFesseTorse" [7] "largeurPoitrineTorse" "circonférencePoitrineTorse" [9] "profondeurTorsePointrine" "arcTorseBas" [11] "arcFesseTorse" "largeurCoudeCoudeTorse" [13] "largeurHancheTorse" "largeurHanchesAssisTorse" [15] "largeurDosITorse" "largeurDosIITorse" [17] "circonférenceÉpauleTorse" "largeurÉpauleTorse" [19] "circonférenceVerticaleTorse" "hauteurDosTorse" [21] "largeurNombrilTorse" "circonférenceNombrilTorse" [23] "profondeurTorseDebout" "longueurTorse"
6.2
Circonférence au niveau des fesses
27fig. 16 p. 36
myplot("circonférenceFessesTorse", adjust = 1) 700 800 900 1000 1100 1200 1300 1400 0.000 0.002 0.004 circonférenceFessesTorse [mm] dstm$y buttockcircumference
7.43
7.52
6.3
Circonférence au niveau de la poitrine
28fig. 16 p. 36
800 1000 1200 1400 0.000 0.002 0.004 circonférencePoitrineTorse [mm] dstm$y chestcircumference
8.73
8.26
6.4
Circonférence au niveau des épaules
30fig. 16 p. 36
myplot("circonférenceÉpauleTorse", adjust = 1) 800 900 1000 1100 1200 1300 1400 0.000 0.004 circonférenceÉpauleTorse [mm] dstm$y shouldercircumference
5.15
5.39
6.5
Circonférence au niveau du nombril
32fig. 16 p. 36
600 800 1000 1200 1400 0.000 0.002 0.004 circonférenceNombrilTorse [mm] dstm$y waistcircumference
11.6
11.9
6.6
Circonférence verticale du torse
31fig. 17 p. 36
myplot("circonférenceVerticaleTorse", adjust = 1) 1400 1600 1800 2000 0.000 0.002 0.004 circonférenceVerticaleTorse [mm] dstm$y verticaltrunkcircumferenceusa
4.87
5.38
6.7
Profondeur du torse debout
39fig. 18 p. 37
150 200 250 300 350 400 0.000 0.004 0.008 0.012 profondeurTorseDebout [mm] dstm$y waistdepth
14.7
14.6
6.8
Profondeur du torse au niveau de la poitrine
41fig. 19
p. 37
myplot("profondeurTorsePointrine", adjust = 1) 150 200 250 300 350 400 0.000 0.005 0.010 0.015 profondeurTorsePointrine [mm] dstm$y chestdepth11
10.3
Cela confirme qu’il y a quelque chose qui ne va pas pour la variable précé-dente puisqu’ici on tourne autour de 25 cm. Il faudra trouver celle qui fait à peu près la moitié de celle-ci.
6.9
Arc du bas du torse
42fig. 19 p. 37
500 600 700 800 0.000 0.004 0.008 arcTorseBas [mm] dstm$y crotchlengthomphalion
6.83
7.5
6.10
Profondeur du torse assis
80fig. 20 p. 37
myplot("profondeurTorseAssis", adjust = 1) 150 200 250 300 350 400 450 0.000 0.004 0.008 0.012 profondeurTorseAssis [mm] dstm$y abdominalextensiondepthsitting
13.7
14.7
6.11
Largeur de l’épaule
77fig. 21 p. 38
100 120 140 160 180 0.00 0.01 0.02 0.03 largeurÉpauleTorse [mm] dstm$y shoulderlength
7.59
7.02
6.12
Largeur interne de l’épaule
87fig. 22 p. 38
myplot("largeurÉpauleIntTorse", adjust = 1) 300 350 400 450 500 0.000 0.010 0.020 largeurÉpauleIntTorse [mm] dstm$y biacromialbreadth
5.01
4.61
6.13
Largeur externe de l’épaule
88fig. 22 p. 38
350 400 450 500 550 600 650 0.000 0.005 0.010 0.015 largeurÉpauleExtTorse [mm] dstm$y bideltoidbreadth
6.37
6.37
6.14
Largeur coude à coude
89fig. 22 p. 38
myplot("largeurCoudeCoudeTorse", adjust = 1) 400 500 600 700 800 0.000 0.004 0.008 largeurCoudeCoudeTorse [mm] dstm$y forearmforearmbreadth
8.29
8.78
6.15
Largeur des hanches en position assise
91fig. 22 p. 38
300 350 400 450 500 550 0.000 0.004 0.008 0.012 largeurHanchesAssisTorse [mm] dstm$y hipbreadthsitting
8.21
7.96
6.16
Hauteur du nombril au haut du sternum
90fig. 23
p. 38
myplot("longueurTorse", adjust = 1) 300 350 400 450 500 0.000 0.005 0.010 0.015 longueurTorse [mm] dstm$y waistfrontlengthsitting6.74
7.57
6.17
Largeur du dos en haut
72fig. 24 p. 39
250 300 350 400 450 500 550 0.000 0.004 0.008 0.012 largeurDosITorse [mm] dstm$y interscyei
7.99
8.18
6.18
Largeur du dos en bas
71fig. 24 p. 39
myplot("largeurDosIITorse", adjust = 1) 300 350 400 450 500 550 600 0.000 0.005 0.010 0.015 largeurDosIITorse [mm] dstm$y interscyeii
6.49
6.77
6.19
Hauteur du dos
74fig. 24 p. 39
350 400 450 500 550 600 0.000 0.005 0.010 0.015 hauteurDosTorse [mm] dstm$y waistbacklength
6.2
5.8
6.20
Largeur au dessus du nombril
65fig. 25 p. 39
myplot("largeurDessusNombrilTorse", adjust = 1) 200 250 300 350 0.000 0.010 0.020 largeurDessusNombrilTorse [mm] dstm$y bicristalbreadth
8.14
6.36
6.21
Largeur au niveau de la poitrine
66fig. 25 p. 39
200 250 300 350 0.000 0.010 0.020 largeurPoitrineTorse [mm] dstm$y chestbreadth
6.9
6.31
6.22
Largeur au niveau des hanches
68fig. 25 p. 39
myplot("largeurHancheTorse", adjust = 1) 250 300 350 400 450 0.000 0.005 0.010 0.015 largeurHancheTorse [mm] dstm$y hipbreadth
7.54
6.99
6.23
Largeur au niveau du nombril
69fig. 25 p. 39
200 250 300 350 400 450 0.000 0.004 0.008 0.012 largeurNombrilTorse [mm] dstm$y waistbreadth
11
10.6
6.24
Profondeur des fesses
70fig. 26 p. 39
myplot("profondeurFesseTorse", adjust = 1) 150 200 250 300 350 0.000 0.005 0.010 0.015 profondeurFesseTorse [mm] dstm$y buttockdepth
10.4
10.8
6.25
Arc des fesses
67fig. 27 p. 39
Figure 28 – Copie d’écran d’une partie de la page 244 de [3]. 92 functional leg length. 250 300 350 400 450 0.000 0.004 0.008 0.012 arcFesseTorse [mm] dstm$y crotchlengthposterioromphalion
8.37
8.29
7
Jambe
jambe <- c("functionalleglength","buttockkneelength", "buttockpopliteallength", "kneeheightsitting", "poplitealheight", "thighclearance",
"tibialheight",
"kneeheightmidpatella", "lateralfemoralepicondyleheight",
"calfcircumference", "lowerthighcircumference", "thighcircumference") ijambe <- match(jambe, colnames(ansur))
colnames(ansurf)[ijambe] <-c("longueurJambe",
"longueurGenouFesseJambe", "longueurPoplitealFesseJambe", "longeurGenouJambe", "longueurPoplitealJambe", "épaisseurCuisseJambe",
"longueurTibiaJambe",
"hauteurGenouDeboutJambe", "hauteurGenouCotéJambe",
"circonférenceMolletJambe", "circonférenceGenouJambe", "circonférenceCuisseJambe")
7.1
Longueur de la jambe
92fig. 28 p. 52
Figure 29 – Copie d’écran d’une partie de la page 244 de [3]. 82
buttock-knee length 83 buttock-popliteal length 85 knee height, sitting 86
popli-teal height. 800 900 1000 1100 1200 1300 0.000 0.004 longueurJambe [mm] dstm$y functionalleglength
5.17
4.97
7.2
Longueur du genou à la fesse
82fig. 29 p. 53
myplot("longueurGenouFesseJambe", adjust = 1) 450 500 550 600 650 700 750 0.000 0.004 0.008 0.012 longueurGenouFesseJambe [mm] dstm$y buttockkneelength
5.52
4.95
7.3
Longueur du pli du genou à la fesse
83fig. 29 p. 53
myplot("longueurPoplitealFesseJambe", adjust = 1) 350 400 450 500 550 600 0.000 0.005 0.010 0.015 longueurPoplitealFesseJambe [mm] dstm$y buttockpopliteallength5.92
5.45
7.4
Hauteur du genou assis
85fig. 29 p. 53
myplot("longeurGenouJambe", adjust = 1) 400 450 500 550 600 650 0.000 0.005 0.010 0.015 longeurGenouJambe [mm] dstm$y kneeheightsitting
5.29
5.04
7.5
Hauteur du pli du genou assis
86fig. 29 p. 53
Figure 30 – Copie d’écran d’une partie de la page 241 de [3]. 79 thigh clearance. 300 350 400 450 500 0.000 0.010 longueurPoplitealJambe [mm] dstm$y poplitealheight
6.07
5.77
7.6
Épaisseur de la cuisse assis
79fig. 30 p. 55
myplot("épaisseurCuisseJambe", adjust = 1) 150 200 250 0.000 0.010 0.020 0.030 épaisseurCuisseJambe [mm] dstm$y thighclearance
8.37
8.64
Figure 31 – Copie d’écran d’une partie de la page 239 de [3]. 64 tibial height. 350 400 450 500 550 600 0.000 0.005 0.010 0.015 longueurTibiaJambe [mm] dstm$y tibialheight
5.72
5.68
7.8
Hauteur du genou debout
43fig. 32 p. 57
Figure 32 – Copie d’écran d’une partie de la page 236 de [3]. 43 knee
height, midpatella 44 lateral femoral epicondyle height.
350 400 450 500 550 600 0.000 0.005 0.010 0.015 hauteurGenouDeboutJambe [mm] dstm$y kneeheightmidpatella
5.79
5.76
7.9
Hauteur du genou latéralement
44fig. 32 p. 57
350 400 450 500 550 600 0.000 0.005 0.010 0.015 hauteurGenouCotéJambe [mm] dstm$y lateralfemoralepicondyleheight
5.82
5.41
7.10
Circonférence du mollet
myplot("circonférenceMolletJambe", adjust = 1)250 300 350 400 450 500 0.000 0.005 0.010 0.015 circonférenceMolletJambe [mm] dstm$y calfcircumference
7.64
7.57
7.11
Circonférence du genou
myplot("circonférenceGenouJambe", adjust = 1) 300 350 400 450 500 550 600 0.000 0.004 0.008 0.012 circonférenceGenouJambe [mm] dstm$y lowerthighcircumference8.77
7.79
7.12
Circonférence de la cuisse
myplot("circonférenceCuisseJambe", adjust = 1)400 500 600 700 800 900 0.000 0.004 circonférenceCuisseJambe [mm] dstm$y thighcircumference
9.06
9.35
7.13
ACP
tmp <- ansurf[ , ijambe]acptmp <- dudi.pca(tmp, scannf = FALSE, scale = FALSE) s.corcircle(acptmp$co, clabel = 0.5) longueurJambe longueurGenouFesseJambe longueurPoplitealFesseJambe longeurGenouJambe longueurPoplitealJambe épaisseurCuisseJambe longueurTibiaJambe hauteurGenouDeboutJambe hauteurGenouCotéJambe circonférenceMolletJambe circonférenceGenouJambe circonférenceCuisseJambe
s.class(acptmp$li, ansurf$Gender, cstar = 0, axesell = FALSE, cpoint = 0.2, col = c(colF, colM)) d = 200 Female Male
8
Stature
stature <- c("overheadfingertipreachsitting","elbowrestheight", "eyeheightsitting", "sittingheight", "axillaheight", "chestheight", "iliocristaleheight",
"tenthribheight", "suprasternaleheight", "waistheightomphalion", "crotchheight",
"buttockheight", "trochanterionheight", "weightkg",
"stature", "cervicaleheight", "acromialheight", "wristheight") istature <- match(stature, colnames(ansur))
colnames(ansurf)[istature] <-c("assisPlafondStature",
"hauteurCoudeAssisStature", "hauteurYeuxAssisStature", "hauteurAssisStature", "hauteurAisselleStature", "hauteurPoitrineStature", "hauteurPliCoudeStature", "hauteurCôteStature", "hauteurSternumStature", "hauteurNombrilStature", "hauteurBasFesseStature",
"hauteurBoutFesseStature", "hauteurHautFesseStature", "masse",
8.1
Assis touché plafond
myplot("assisPlafondStature", adjust = 1) 1100 1200 1300 1400 1500 1600 1700 0.000 0.002 0.004 0.006 assisPlafondStature [mm] dstm$y overheadfingertipreachsitting4.76
4.75
8.2
Hauteur du coude assis
150 200 250 300 350 0.000 0.005 0.010 0.015 hauteurCoudeAssisStature [mm] dstm$y elbowrestheight
11.3
11.7
8.3
Hauteur des yeux assis
myplot("hauteurYeuxAssisStature", adjust = 1) 650 700 750 800 850 900 0.000 0.004 0.008 0.012 hauteurYeuxAssisStature [mm] dstm$y eyeheightsitting
4.06
4.12
8.4
Hauteur assis
myplot("hauteurAssisStature", adjust = 1)750 800 850 900 950 1000 1050 0.000 0.004 0.008 0.012 hauteurAssisStature [mm] dstm$y sittingheight
3.86
3.89
8.5
Hauteur des aisselles
myplot("hauteurAisselleStature", adjust = 1) 1000 1100 1200 1300 1400 1500 1600 0.000 0.004 hauteurAisselleStature [mm] dstm$y axillaheight
4.5
4.48
8.6
Hauteur de la poitrine
myplot("hauteurPoitrineStature", adjust = 1)1000 1100 1200 1300 1400 1500 0.000 0.004 hauteurPoitrineStature [mm] dstm$y chestheight
4.74
4.41
8.7
Hauteur du pli du coude
myplot("hauteurPliCoudeStature", adjust = 1) 800 900 1000 1100 1200 0.000 0.004 0.008 hauteurPliCoudeStature [mm] dstm$y iliocristaleheight
4.99
4.9
8.8
Hauteur de la dixième côte
myplot("hauteurCôteStature", adjust = 1)900 1000 1100 1200 1300 0.000 0.004 0.008 hauteurCôteStature [mm] dstm$y tenthribheight
4.73
4.78
8.9
Hauteur du haut du sternum
myplot("hauteurSternumStature", adjust = 1) 1100 1200 1300 1400 1500 1600 1700 0.000 0.004 hauteurSternumStature [mm] dstm$y suprasternaleheight4.3
4.26
8.10
Hauteur du nombril
myplot("hauteurNombrilStature", adjust = 1)800 900 1000 1100 1200 0.000 0.004 0.008 hauteurNombrilStature [mm] dstm$y waistheightomphalion
5.1
4.94
8.11
Taille
myplot("tailleStature", adjust = 1) 1400 1500 1600 1700 1800 1900 2000 0.000 0.002 0.004 0.006 tailleStature [mm] dstm$y stature3.94
3.9
myplot("hauteurBasFesseStature", adjust = 1) 600 700 800 900 1000 0.000 0.004 0.008 hauteurBasFesseStature [mm] dstm$y crotchheight
5.7
5.5
8.13
Hauteur du bout des fesses
myplot("hauteurBoutFesseStature", adjust = 1) 700 800 900 1000 1100 0.000 0.004 0.008 hauteurBoutFesseStature [mm] dstm$y buttockheight
5.48
5.62
8.14
Hauteur du haut des fesses
myplot("hauteurHautFesseStature", adjust = 1) 700 800 900 1000 1100 0.000 0.004 0.008 hauteurHautFesseStature [mm] dstm$y trochanterionheight5.28
5.46
8.15
Hauteur du cou
myplot("hauteurCouStature", adjust = 1) 1200 1300 1400 1500 1600 1700 0.000 0.002 0.004 0.006 hauteurCouStature [mm] dstm$y cervicaleheight4.26
4.17
8.16
Hauteur de l’épaule
myplot("hauteurÉpauleStature", adjust = 1)1100 1200 1300 1400 1500 1600 1700 0.000 0.004 hauteurÉpauleStature [mm] dstm$y acromialheight
4.35
4.39
8.17
Hauteur du poignet
myplot("HauteurPoignetStature", adjust = 1) 700 800 900 1000 0.000 0.004 0.008 HauteurPoignetStature [mm] dstm$y wristheight4.81
4.91
8.18
Masse
C
’est la seule variable qui n’est pas exprimée en unité de longueur. Elle est en fait en dixième de kg dans ansur, on les convertit en kg dans ansurf. ansurf$masse <- ansurf$masse/1040 60 80 100 120 140 0.00 0.01 0.02 0.03 0.04 masse [kg] dstm$y weightkg
16.2
16.6
9
Autres variables
9.1
Le sexe des individus
table(ansurf$Gender)Female Male 1986 4082
I
l y a un excès d’hommes (4082) par rapport aux femmes (1986), mais ce n’est finalement pas si déséquilibré que ça puisque cela correspond à 23 d’hommes pour 13 de femmes.
pca <- dudi.pca(ansurf[,2:94], scannf = FALSE)
dis <- discrimin(pca, fac = ansurf$Gender, scannf = FALSE) plot(density(dis$li[,1], adjust = 0.5), xlab = "Score",
main = "Discrimination homme-femme")
rug(dis$li[ansurf$Gender == "Male", 1], col = "blue") rug(dis$li[ansurf$Gender == "Female", 1], col = "red")
−3 −2 −1 0 1 2 0.0 0.2 0.4 0.6 0.8 1.0 Discrimination homme−femme Score Density
O
n discrimine parfaitement les hommes des femmes à partir des données morphométriques puisque l’on arrive à prédire le sexe sans se tromper pour tous les individus. Voici les variables les plus discriminantes :head(dis$fa[order(dis$fa[,1]), , drop = FALSE]) DS1 hauteurCôteStature -0.3408627 circonférenceFessesTorse -0.2772776 profondeurTorsePointrine -0.2417558 longueurTibiaJambe -0.1807217 empanBras -0.1790047 masse -0.1460990
head(dis$fa[rev(order(dis$fa[,1])), , drop = FALSE]) DS1 circonférenceCouTête 0.2929039 hauteurPoitrineStature 0.2859737 hauteurNombrilStature 0.2660938 circonférencePoitrineTorse 0.2429984 tailleStature 0.2095093 largeurNombrilTorse 0.1819602
9.2
La date d’acquisition des mesures
9.3
Unité de ratachement
tbl <- table(ansurf$Installation)
dotchart(c(sort(tbl)), pch = 19, xlab = "Nombre de soldats", main = "Répartition par unité")
Fort Rucker Fort Stewart Fort Lee Fort Drum Fort Bragg Fort Huachuca Fort Hood Camp Atterbury Fort McCoy Fort Gordon Fort Bliss Camp Shelby 0 200 400 600 800 1000 1200
Répartition par unité
Nombre de soldats
C
’est une variable qualitative avec pas trop de modalités (12) mais il faut exclure Fort Rucker qui trop peu documenté. Exemple d’explotation pos-sible : la sexe-ratio est-elle la même pour toutes les unités ?dta <- with(ansurf[ansurf$Installation != "Fort Rucker", ], { table(list(Gender, factor(Installation)))
})
mosaicplot(dta, las = 1,
main = "Sexe-ratio par unité", shade = TRUE, xlab = "Sexe", ylab = "Unité") Standardiz ed Residuals: <−4 −4:−2 −2:0 0:2 2:4 >4
Sexe−ratio par unité
Sexe Unité Female Male Camp Atterbury Camp Shelby Fort Bliss Fort Bragg Fort Drum Fort Gordon Fort Hood Fort Huachuca Fort Lee Fort McCoy Fort Stewart
9.4
Corps
table(ansurf$Component)
Army National Guard Army Reserve Regular Army
2708 220 3140
tbl <- with(ansurf, table(list(Component, Gender)))
mosaicplot(t(tbl), shade = TRUE, las = 1, xlab = "Sexe", ylab = "Corps", main = "Sexe-ratio par corps")
Standardiz ed Residuals: <−4 −4:−2 −2:0 0:2 2:4 >4
Sexe−ratio par corps
Sexe
Cor
ps
Female Male
Army National Guard
Army Reserve
Regular Army
C
’est una variable qualitative à trois modalités : Army Reserve pour l’armée de réserve qui est minoritaire ici et la plus féminine, Regular Army pour l’armée régulière et Army National Guards pour la Garde nationale.9.5
Branche
table(ansurf$Branch)Combat Arms Combat Service Support Combat Support
1582 3174 1312
tbl <- with(ansurf, table(list(Branch, Gender)))
mosaicplot(t(tbl), shade = TRUE, las = 1, xlab = "Sexe", ylab = "Branche", main = "Sexe-ratio par branche")
Standardiz ed Residuals: <−4 −4:−2 −2:0 0:2 2:4 >4
Sexe−ratio par branche
Sexe
Br
anche
Female Male Combat Arms
Combat Service Support
Combat Support
C
’est una variable qualitative à trois modalités : Combat Arms pour les com-batants, Combat Service Support pour les services d’appui logistique aux combatants et Combat Support pour les services d’appui opérationnel aux com-batants. Il y a un excès d’hommes dans les unités de combat.9.6
Spécalité militaire principale
L
e PrimaryMOS est d’après ce que j’ai compris un code de trois caractères (deux chiffres et une lettre) donnant la spécialité militaire principale des soldats. Les deux premiers chiffres correspondent au champs ou à la branche, par exemple 11 pour l’infanterie, 12 pour les ingénieurs, 13 pour l’artillerie, etc. Le problème est que j’ai plusieurs codes à 4 caractères :ansurf$PMOSC <- as.character(ansurf$PrimaryMOS) (x <- with(ansurf, table(PMOSC[nchar(PMOSC) != 3])))
120A 131A 140E 250N 251A 254A 270A 350F 350G 351B 351L 351M 352N 352P 353T 356H 420A
1 2 1 3 9 4 1 9 3 1 11 10 2 1 2 1 3
821A 882A 910A 913A 915A 915E 919A 920A 920B 921A 922A 923A 948E
1 1 1 1 6 1 2 5 4 1 3 1 1
sum(x) [1] 92
S
i on exclu ces quelques cas particuliers, on peut définir une variable qualita-tive pour la branche.ansurf$pmof <- ansurf$PMOSC ansurf$pmof <- substr(ansurf$pmof, 1, 2) ansurf$pmof[nchar(ansurf$PMOSC) != 3] <- NA ansurf$pmof <- as.factor(ansurf$pmof) rev(sort(table(ansurf$pmof))) 92 25 11 91 35 88 68 12 13 42 31 19 74 94 15 14 21 89 90 36 56 840 791 784 519 475 367 327 293 273 220 216 191 132 91 77 56 55 35 31 31 26 27 70 66 46 79 63 65 51 38 18 09 00 93 71 67 64 52 44 34 86 77 25 20 18 9 8 8 6 6 6 5 4 3 2 2 2 2 2 2 2 1 1 76 72 61 60 57 53 45 43 29 26 20 16 1 1 1 1 1 1 1 1 1 1 1 1
I
l serait intéressant d’avoir plus de précisions sur ce codage. On pourrait en-visager des questions comme « l’IMC des sous-mariniers est-il différent des non-sous-mariniers » avec des interprétations faciles pour les étudiants.9.7
Lieu de naissance
9.8
Codage numérique de la race
C
’est la « race » déclarée par les soldats lors d’un entretien, sachant qu’ils peuvent se déclarer de plusieurs « races ». On a le codage numérique sui-vant : 1 Blanc 2 Noir 3 Hispanique 4 Asiatique 5 Indien d’amérique 6 Insulaire du pacifique 8 Autreles fréquences des différentes modalités sont :
(tblr <- rev(sort(table(ansurf$SubjectNumericRace)))) 1 2 3 31 51 8 4 21 6 41 61 23 28 251 3561 1026 541 160 126 116 109 60 59 46 35 34 26 20 18 5 25 351 38 64 62 35 63 42 231 43 235 218 18 18 14 10 9 8 8 8 7 7 6 5 4 3 2518 2351 651 641 451 431 423 318 42351 4251 631 428 425 358 2 2 2 2 2 2 2 2 1 1 1 1 1 1 238 48 1 1
barplot(tblr, main = "Race déclarée", xlab = "Code", ylab = "Nombre de soldats", las = 1)
1 31 4 41 251 38 63 235 641 4251 238 Race déclarée Code Nombre de soldats 0 500 1000 1500 2000 2500 3000 3500
I
l y a une majorité de blanc, noir et hispaniques puis une queue de distribution très longue avec beaucoup de déclarations multiples dont un individu 42351, c’est à dire asiatique-noir-hispanique-indien-blanc !9.9
Ethnicité
C
’est l’« éthnicité » déclarée par les soldats lors d’un entretien. Cette variable n’est pas exploitable parce que la grande majorité n’en déclare aucune :head(tble <- rev(sort(table(ansurf$Ethnicity))))
Mexican Puerto Rican Caribbean Islander
4647 357 183 124
Filipino Cherokee
67 65
Correction d’un problème d’encodage :
ansurf$Ethnicity <- as.character(ansurf$Ethnicity)
ansurf[grep("Creole", ansurf$Ethnicity), "Ethnicity"] <- "Métis Créole"
9.10
Codage DOD de la race
C
’est la « race » déclarée par les soldats lors d’un entretien, sachant qu’ils peuvent se déclarer que d’une seule « race ». On a le codage numérique suivant : 1 Blanc 2 Noir 3 Hispanique 4 Asiatique 5 Indien d’amérique 6 Insulaire du pacifique 8 Autre (tblDOD <- rev(sort(table(ansurf$DODRace)))) 1 2 3 4 6 5 8 3792 1298 679 188 59 49 3barplot(tblDOD, main = "Race DOD", xlab = "Code", ylab = "Nombre de soldats", las = 1)
1 2 3 4 6 5 8 Race DOD Code Nombre de soldats 0 500 1000 1500 2000 2500 3000 3500
pca <- dudi.pca(ansurf[,2:94], scannf = FALSE)
dis <- discrimin(pca, fac = as.factor(ansurf$DODRace), scannf = FALSE) s.class(dis$li, as.factor(ansurf$DODRace), clabel = 1, cstar = 0, cpoint = 0,
axesell = FALSE) d = 2 1 2 3 4 5 6 8 et si on ajoute le sexe ?
fac <- as.factor(paste(ansurf$DODRace, substr(ansurf$Gender, 1, 1), sep = "")) dis <- discrimin(pca, fac = fac, scannf = FALSE)
d = 1 1F 1M 2F 2M 3F 3M 4F 4M 5F 5M 6F 6M 8M
on voit qu’il y a beaucoup plus de différences entre les sexes qu’entre les « races ». Peut-être intéressant d’un point de vue pédagogique.
9.11
Age
barplot(table(ansurf$Age), main = "Distribution des âges", xlab = "Âge [an]", ylab = "Nombre de soldats", las = 1)
17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 Distribution des âges
Âge [an] Nombre de soldats 0 50 100 150 200 250 300 350
L
a distribution est bimodale avec un mode principal à 20 ans et un mode secondaire à 40 ans.9.12
Taille auto-déclarée
L
es tailles auto-déclarées sont en pouces (2.54 cm), on va les convertir en mm pour faciliter la comparaison avec les tailles mesurées.ansurf$Heightin <- ansurf$Heightin*25.4
names(ansurf)[match("Heightin", names(ansurf))] <- "tailleAuto" taillediff <- with(ansurf, tailleAuto - tailleStature)
plot(density(taillediff[ansurf$Gender == "Female"], adjust = 1), xlim = c(-50, 50), col = "red",
xlab = "Taille déclarée - réelle [mm]", main = "Écart de taille") lines(density(taillediff[ansurf$Gender == "Male"], adjust = 1), col = "blue") abline(v = 0)
abline(v = 25.4, lty = 2)
arrows(0, 0, 25.4, 0, code = 3, angle = 10, length = 0.1) text(25.4/2, 0, "1 pouce", pos = 3)
−40 −20 0 20 40 0.000 0.005 0.010 0.015 0.020 0.025 Écart de taille
Taille déclarée − réelle [mm]
Density
1 pouce
C
’est très amusant : les tailles déclarées ont tendance à être supérieures aux tailles mesurées, en gros on a tendance à arrondir au pouce supérieur plutôt qu’au pouce inférieur, et les soldats sont un peu plus vantards sur leur taille que les soldates.9.13
Masse auto-déclarée
L
es masses auto-déclarées sont en livres (0.45359237 kg), on va les convertir en kg.ansurf$Weightlbs <- ansurf$Weightlbs*0.45359237
names(ansurf)[match("Weightlbs", names(ansurf))] <- "masseAuto" massediff <- with(ansurf, masseAuto - masse)
plot(density(massediff[ansurf$Gender == "Female"], adjust = 1), xlim = c(-10, 10), col = "red",
xlab = "Masse déclarée - réelle [kg]", main = "Écart de masse")
lines(density(massediff[ansurf$Gender == "Male"], adjust = 1), col = "blue") abline(v = 0)
−10 −5 0 5 10 0.00 0.05 0.10 0.15 0.20 Écart de masse
Masse déclarée − réelle [kg]
Density
O
n connait donc bien sa masse à plus ou moins 5 kg près. Les femmes ont une légère tendance à sous-déclarer par rapport aux hommes. Ces données peuvent être utiles pour illustrer la notion de point aberrant :with(ansurf, boxplot(massediff~Gender, ylab = "Masse déclarée - réelle [kg]", main = "Exemple de points aberrants"))
Female Male
−50
0
50
Exemple de points aberrants
Masse déclarée − réelle [kg]
D
es écarts de 50 kg, c’est juste impossible, ce sont des exemples de points aberrants.9.14
Main dominante
10
Sauvegarde du fichier modifié
save(ansurf, file = "ansurf.Rda") file.size("ansurf.Rda")
[1] 918132
11
Recherche bibliographique
J
e suis intéressé aux articles citant la source des données [3, 2, 5] avec google scholar. Je me suis restreint aux articles dont le PDF était librement ac-cessible pour les étudiants. D’après le site https://www.openlab.psu.edu/ ansur2/ les données ont été rendues publiques en 2017.11.1
Articles citant [5]
J
e n’ai pas trouvé d’article faisant référence à [5], c’est peut-être trop tôt car cette référence date de 2017.11.2
Articles citant [2]
L
’article [1] étudie l’effet du port d’un gillet pare-balles plus ou moins bien ajusté sur les performance au tir (biais, variance, vitesse) de 15 soldats. Ils utilisent les données d’ANSUR II pour mettre en contexte leur échantillon. Il y a de l’ANOVA dans cet article.L
’article [4] porte sur l’optimisation des dimensions des sièges pour les pas-sagers civils des avions. Il cite ANSUR II pour la tendence séculaire à l’augmentation de l’obésité, mais sans démontrer son argument.L
a référence [6] est un article de review sur les traumatismes suite à un coup du lapin, ils utilisent les données d’ANSUR II pour montrer que la morphologie du cou est différente entre les hommes et les femmes. L’utilisation qu’ils font du test t est très pertinente. Vu la taille de l’échantillon on va exploser toutes les p-values, ils ne les mentionnent même pas et considèrent que la différence homme-femme est pertinente d’un point de vue anthropométrique si, et seulement si, elle dépasse l’erreur de mesure maximale tolérée. C’est exactement la même idée que la section « 4.2 De la signification du significatif » du tpRr3.pdf mais avec un exemple concret dans la vraie vie.Références
[1] Choi, H. J., Mitchell, K. B., Garlie, T., McNamara, J., Hennessy, E., and Carson, J. Effects of body armor fit on marksmanship perfor-mance. In Advances in Physical Ergonomics and Human Factors. Springer, 2016, pp. 341–354.
[2] Gordon, C., Blackwell, C., Bradtmiller, B., Parham, J., Bar-rientos, P., Paquette, S., Corner, B., Carson, J., Venezia, J.,
survey of U.S. army personnel : methods and summary statistics. Tech. rep., U.S. Army Natick Soldier Research, Development and Engineering Center Natick, Massachusetts 01760-2642, U.S.A., 2012.
[3] Hotzman, J., Gordon, C., Bradtmiller, B., Corner, B., Mucher, M., Kristensen, S. ans Paquette, S., and Blackwell, C. Measurer’s handbook : US army and marine corps anthropometric surveys, 2010-2011. Tech. rep., U.S. Army Natick Soldier Research, Development and Enginee-ring Center Natick, Massachusetts 01760-2642, U.S.A., 2011.
[4] Molenbroek, J., Albin, T., and Vink, P. Thirty years of anthropo-metric changes relevant to the width and depth of transportation seating spaces, present and future. Applied ergonomics 65 (2017), 130–138.
[5] Paquette, S., and Parham, J. 2012 US army anthropometric working databases. Tech. rep., U.S. Army Natick Soldier Research, Development and Engineering Center Natick, Massachusetts 01760-2642, U.S.A., 2017. [6] Stemper, B., and Corner, B. Whiplash-associated disorders : occupant
kinematics and neck morphology. Journal of Orthopaedic & Sports Physical Therapy 46, 10 (2016), 834–844.