{"word_count": 833, "character_count": 7667}
Juste avant 1850, Adolphe Quételet publiait Sur l'appréciation des documents statistiques, et en particulier sur l'application des moyennes, et introdusait alors le concept d'homme moyen (l'ouvrage est cité dans La théorie des moyennes et son emploi dans les sciences d'observation, de Joseph Lottin, paru en 1909 - je n'ai pas trouvé en ligne cet ouvrage de Quételet). Ce concept sera détaillé encore davantage dans Anthropométrie, ou mesure des différentes facultés de l'homme, concept qui sera abondament illustréMais si la moyenne est un concept fondamental en statistique, il convient de garder en mémoire que la moyenne n'existe peut être pas, au sein de la population. C'est ce que rappelle la fameuse 'blague' "un mec qui à la tête dans le four et les pieds dans le frigo, en moyenne, il est bien". La moyenne peut être quelquechose d'extraordinaire (au sens premier du terme).Prenons un exemple tout simple. Pendant les vacances, alors que je demandais à ma fille de tracer un triangle sur une feuille, elle passait son temps à tracer des triangles isocèles. Coïncidence ? En fait, quand on tente de tracer des triangles, au hasard, sur une feuille, le triangle 'moyen' est un triangle... équilatéral. Bon, au lieu de demander à ma fille, je vais tracer moi même des triangles au hasard (sur une feuille carré, mais les résultats restent valides avec une feuille A4)&#62; plot(0:1,0:1,col="white",xlab="",ylab="")&#62; for(i in 1:500) polygon(x=runif(3),y=runif(3),border=rgb(0,0,1,.3))Certes, c'est le bazar... Mais si je calcule la moyenne de mes longeurs, j'obtiens&#62; longueurs=function(s){+     set.seed(s)+     b=data.frame(x=runif(3),y=runif(3))+     c(sqrt( (b$x[1]-b$x[2])^2+(b$y[1]-b$y[2])^2 ),+       sqrt( (b$x[1]-b$x[3])^2+(b$y[1]-b$y[3])^2 ),+       sqrt( (b$x[3]-b$x[2])^2+(b$y[3]-b$y[2])^2 ))+ }&#62;&#62; D=Vectorize(longueurs)(1:1000)&#62; apply(D,1,mean)[1] 0.5297939 0.5111448 0.5216632des longueurs presques égales. On peut d'ailleurs faire le test. En comparant les longueurs deux à deux pour commencer,&#62; t.test(D[1,],D[2,])Welch Two Sample t-testdata:  D[1, ] and D[2, ]t = 1.6747, df = 1997.3, p-value = 0.09415alternative hypothesis: true difference in means is not equal to 095 percent confidence interval:-0.003190067  0.040488354sample estimates:mean of x mean of y0.5297939 0.5111448&#62; t.test(D[1,],D[3,])Welch Two Sample t-testdata:  D[1, ] and D[3, ]t = 0.74013, df = 1997.9, p-value = 0.4593alternative hypothesis: true difference in means is not equal to 095 percent confidence interval:-0.01341346  0.02967492sample estimates:mean of x mean of y0.5297939 0.5216632&#62; t.test(D[2,],D[3,])Welch Two Sample t-testdata:  D[2, ] and D[3, ]t = -0.94842, df = 1996.5, p-value = 0.343alternative hypothesis: true difference in means is not equal to 095 percent confidence interval:-0.03226843  0.01123160sample estimates:mean of x mean of y0.5111448 0.5216632Mais on peut aussi faire un test multiple pour s'en convaincre&#62; base=data.frame(L=as.vector(D),G=1:3)&#62; l&#60;-aov(L~G,data=base)&#62; summary(l)Df Sum Sq Mean Sq F value Pr(&#62;F)G              1   0.03 0.03305   0.539  0.463Residuals   2998 183.80 0.06131Effectivement, en moyenne, les longueurs des trois côtés sont égales, et donc le triangle 'moyen' est équilatéral ! On peut de la même manière regarder les angles, au lien de regarder les longueurs,&#62; angles=function(s){+     set.seed(s)+     b=data.frame(x=runif(3),y=runif(3))+     a=c(+   ( (b$x[1]-b$x[2])*(b$x[1]-b$x[3])+(b$y[1]-b$y[2])*(b$y[1]-b$y[3]) )/+   (sqrt((b$x[1]-b$x[2])^2+(b$y[1]-b$y[2])^2)*+   sqrt((b$x[1]-b$x[3])^2+(b$y[1]-b$y[3])^2)),+   ( (b$x[2]-b$x[1])*(b$x[2]-b$x[3])+(b$y[2]-b$y[1])*(b$y[2]-b$y[3]) )/+   (sqrt((b$x[2]-b$x[1])^2+(b$y[2]-b$y[1])^2)*+   sqrt((b$x[2]-b$x[3])^2+(b$y[2]-b$y[3])^2)),+   ( (b$x[3]-b$x[1])*(b$x[3]-b$x[2])+(b$y[3]-b$y[1])*(b$y[3]-b$y[2]) )/+   (sqrt((b$x[3]-b$x[1])^2+(b$y[3]-b$y[1])^2)*+   sqrt((b$x[3]-b$x[2])^2+(b$y[3]-b$y[2])^2)))+  acos(a)/pi*180+ }&#62; D=Vectorize(angles)(1:1000)&#62; apply(D,1,mean)[1] 59.86143 57.91517 62.22340Autrement dit, là encore, la moyenne des angles est de 60°, autrement dit, le triangle 'moyen' est un triangle équilatéral !Pourtant, force est de constater qu'on tombe très rarement sur un triangle qui semble équilatéral ! Si on dit qu'on est presque équilatéral si les angles sont proches de 60° (disons que l'écart maximal entre le plus petit et le plus grand angle n'excède pas 10°), notons qu'on est équilatéral dans à peine plus de 1% des cas...&#62; D=Vectorize(angles)(1:1000)&#62; d=apply(D,2,function(x) max(x)-min(x))&#62; mean(d&#60;10)[1] 0.013Sur les 1000 triangles simulés, on en trouve seulement 13,&#62; plot(0:1,0:1,col="white",xlab="",ylab="")&#62; for(i in idx){+ set.seed(i)+ b=data.frame(x=runif(3),y=runif(3))+ polygon(b,border=rgb(0,0,1,.3))+ }Mais bien entendu, ce n'est pas vraiment ce que dit Quetelet... c'est un peu comme si on prenait les mesures des doigts, au hasard, et qu'on disait, qu'en moyenne, les doigts sont de même longeur ! Si on ordonne la taille des côtés, du plus petit au plus grand, on note que les longeurs sont vraiment différentes&#62; longueurs=function(s){+     set.seed(s)+     b=data.frame(x=runif(3),y=runif(3))+     sort(c(sqrt( (b$x[1]-b$x[2])^2+(b$y[1]-b$y[2])^2 ),+     sqrt( (b$x[1]-b$x[3])^2+(b$y[1]-b$y[3])^2 ),+     sqrt( (b$x[3]-b$x[2])^2+(b$y[3]-b$y[2])^2 )))+ }&#62; D=Vectorize(longueurs)(1:1000)&#62; apply(D,1,mean)[1] 0.3078308 0.5543356 0.7004355Ce serait donc les longueurs du triangle 'moyen' ? Pourquoi pas, mais quand on regarde de plus près, sur nos 1000 triangles simulés, seulement 2 ont des longueurs 'proches' de ces dernières&#62; d=apply(D,2,function(x) (abs(x[1]-.3)&#60;.035)&#38;(abs(x[2]-.55)&#60;.035)&#38;(abs(x[3]-.7)&#60;.035))&#62; mean(d)[1] 0.002ce sont les deux triangles ci-dessous,&#62; idx=which(d)&#62; plot(0:1,0:1,col="white",xlab="",ylab="")&#62;           for(i in idx){+             set.seed(i)+             b=data.frame(x=runif(3),y=runif(3))+             polygon(b,border=rgb(0,0,1),lwd=2)}Cela dit, les angles sont peut être plus intéressants, car il y a davantage de triangles avec 3 angles donnés (on peut corriger de l'effet d'échelle)&#62; angles=function(s){+     set.seed(s)+     b=data.frame(x=runif(3),y=runif(3))+     a=c(+    ( (b$x[1]-b$x[2])*(b$x[1]-b$x[3])+(b$y[1]-b$y[2])*(b$y[1]-b$y[3]) )/+    (sqrt((b$x[1]-b$x[2])^2+(b$y[1]-b$y[2])^2)*+    sqrt((b$x[1]-b$x[3])^2+(b$y[1]-b$y[3])^2)),+    ( (b$x[2]-b$x[1])*(b$x[2]-b$x[3])+(b$y[2]-b$y[1])*(b$y[2]-b$y[3]) )/+    (sqrt((b$x[2]-b$x[1])^2+(b$y[2]-b$y[1])^2)*+    sqrt((b$x[2]-b$x[3])^2+(b$y[2]-b$y[3])^2)),+    ( (b$x[3]-b$x[1])*(b$x[3]-b$x[2])+(b$y[3]-b$y[1])*(b$y[3]-b$y[2]) )/+    (sqrt((b$x[3]-b$x[1])^2+(b$y[3]-b$y[1])^2)*+    sqrt((b$x[3]-b$x[2])^2+(b$y[3]-b$y[2])^2)))+   sort(acos(a)/pi*180)+ }&#62; D=Vectorize(angles)(1:1000)&#62; apply(D,1,mean)[1]  22.27273  41.91004 115.81723Là encore, si on cherche les triangles qui ont des angles 'proches' de ces derniers, ils sont rares (seulement 5)&#62; d=apply(D,2,function(x) (abs(x[1]-22)&#60;3)&#38;(abs(x[2]-42)&#60;3)&#38;(abs(x[3]-116)&#60;3))&#62; mean(d)[1] 0.005&#62; idx=which(d)&#62; plot(0:1,0:1,col="white",xlab="",ylab="")&#62; for(i in idx){+     set.seed(i)+     b=data.frame(x=runif(3),y=runif(3))+     polygon(b,border=rgb(0,0,1),lwd=2)}Quelle que soit la méthode retetnue, on notera qu'il est assez extraordinaire de tomber sur un triangle 'moyen'. Et je suppose que si c'est le cas pour de simples triangles, ça doit être un résultat relativement général, qui doit se vérifier sur des dizaines d'exemples, y compris en sciences humaines... non ?&#160;&#160;