{"id":1782,"date":"2026-10-14T18:00:45","date_gmt":"2026-10-14T18:00:45","guid":{"rendered":"http:\/\/french.arabpsychology.com\/statistics\/calculer-distance-euclidienne-r-exemples\/"},"modified":"2026-10-14T18:00:45","modified_gmt":"2026-10-14T18:00:45","slug":"calculer-distance-euclidienne-r-exemples","status":"publish","type":"psych_stat","link":"https:\/\/french.arabpsychology.com\/?psych_stat=calculer-distance-euclidienne-r-exemples","title":{"rendered":"Comment calculer la distance euclidienne dans R (avec des exemples)"},"content":{"rendered":"<p>Dans le champ de l&rsquo;analyse multivari\u00e9e contemporaine, la quantification rigoureuse des proximit\u00e9s g\u00e9om\u00e9triques constitue le socle m\u00e9thodologique sur lequel reposent l&rsquo;apprentissage statistique non supervis\u00e9, la classification automatique, la psychom\u00e9trie computationnelle et la mod\u00e9lisation spatiale. Au sein de cet arsenal m\u00e9trique, la distance euclidienne occupe une place pr\u00e9pond\u00e9rante en vertu de son intuitivit\u00e9 spatiale et de ses propri\u00e9t\u00e9s math\u00e9matiques fondamentales d\u00e9riv\u00e9es de la g\u00e9om\u00e9trie classique. Qu&rsquo;il s&rsquo;agisse de mesurer la divergence entre les profils de r\u00e9ponses de sujets soumis \u00e0 une batterie de tests psychologiques, de regrouper des observations cliniques similaires via des algorithmes de partitionnement ou d&rsquo;\u00e9valuer la proximit\u00e9 de profils d&rsquo;expression g\u00e9nique, l&rsquo;estimation des distances inter-individuelles conditionne la validit\u00e9 de l&rsquo;ensemble des inf\u00e9rences ult\u00e9rieures.<\/p>\n<p>Le langage de programmation statistique R s&rsquo;est impos\u00e9 comme l&rsquo;environnement d&rsquo;\u00e9lection pour les chercheurs, data scientists et biostatisticiens d\u00e9sireux de d\u00e9ployer ces m\u00e9triques avec un niveau d&rsquo;expressivit\u00e9 et d&rsquo;efficacit\u00e9 computationnelle optimal. Gr\u00e2ce \u00e0 une architecture intrins\u00e8quement vectoris\u00e9e et \u00e0 une gestion native des structures tensorielles et matricielles, R permet d&rsquo;aborder le calcul m\u00e9trique sous de multiples perspectives. L&rsquo;utilisateur peut ainsi programmer directement les op\u00e9rations primitives \u00e0 des fins p\u00e9dagogiques ou de prototypage, exploiter des routines hautement optimis\u00e9es compil\u00e9es en langage C ou Fortran int\u00e9gr\u00e9es au c\u0153ur du logiciel, ou solliciter des biblioth\u00e8ques logicielles sp\u00e9cialis\u00e9es capables de traiter des matrices de dispersion \u00e0 tr\u00e8s haute dimensionnalit\u00e9.<\/p>\n<p>Cependant, la manipulation de la distance euclidienne dans un environnement computationnel r\u00e9el ne saurait se r\u00e9duire \u00e0 l&rsquo;application m\u00e9canique d&rsquo;une formule arithm\u00e9tique \u00e9l\u00e9mentaire. Elle exige une ma\u00eetrise approfondie des m\u00e9canismes sous-jacents du langage R, tels que le recyclage silencieux des vecteurs de longueurs in\u00e9gales, la propagation ind\u00e9sirable des donn\u00e9es manquantes ou la saturation de la m\u00e9moire vive face \u00e0 des matrices de dissimilarit\u00e9 \u00e0 croissance quadratique. De surcro\u00eet, elle impose une r\u00e9flexion \u00e9pist\u00e9mologique et m\u00e9thodologique constante sur la comparabilit\u00e9 des \u00e9chelles de mesure, la normalisation pr\u00e9alable des distributions empiriques et la robustesse des solutions g\u00e9om\u00e9triques retenues. Le pr\u00e9sent trait\u00e9 exhaustif se propose d&rsquo;explorer m\u00e9thodiquement l&rsquo;int\u00e9gralit\u00e9 de ces dimensions, combinant formalisme math\u00e9matique rigoureux, impl\u00e9mentations programmatiques directes et recommandations pratiques issues des sciences comportementales et de la science des donn\u00e9es.<\/p>\n<h2>1. Fondements th\u00e9oriques et math\u00e9matiques de la distance euclidienne<\/h2>\n<p>L&rsquo;\u00e9tude formelle des proximit\u00e9s spatiales requiert un ancrage direct dans les principes de la topologie et de la g\u00e9om\u00e9trie vectorielle. Avant toute transcription algorithmique au sein d&rsquo;un script informatique, il s&rsquo;av\u00e8re indispensable d&rsquo;expliciter les postulats g\u00e9om\u00e9triques qui conf\u00e8rent \u00e0 la distance euclidienne son statut de r\u00e9f\u00e9rence universelle parmi les mesures de dissimilarit\u00e9.<\/p>\n<h3>1.1 D\u00e9finition et g\u00e9n\u00e9ralisation du th\u00e9or\u00e8me de Pythagore \u00e0 n dimensions<\/h3>\n<p>La distance euclidienne tire ses origines conceptuelles de la g\u00e9om\u00e9trie grecque classique et trouve son expression la plus famili\u00e8re dans le th\u00e9or\u00e8me attribu\u00e9 \u00e0 Pythagore de Samos. Dans un plan bidimensionnel r\u00e9gulier assimil\u00e9 \u00e0 un espace affine r\u00e9el de dimension deux, la longueur de l&rsquo;hypot\u00e9nuse d&rsquo;un triangle rectangle s&rsquo;obtient directement par l&rsquo;extraction de la racine carr\u00e9e de la somme des carr\u00e9s des longueurs de ses deux cath\u00e8tes. Lorsque l&rsquo;on transpose ce principe au rep\u00e8re cart\u00e9sien orthogonal standard, la distance s\u00e9parant deux points quelconques correspond exactement \u00e0 la longueur du segment rectiligne qui les relie, repr\u00e9sentant ainsi la g\u00e9od\u00e9sique absolue ou le plus court chemin concevable dans un espace d\u00e9nu\u00e9 de courbure intrins\u00e8que.<\/p>\n<p>L&rsquo;av\u00e8nement de l&rsquo;alg\u00e8bre lin\u00e9aire moderne a permis d&rsquo;\u00e9tendre de mani\u00e8re formelle ce principe intuitif aux espaces vectoriels r\u00e9els de dimension arbitraire <em>n<\/em>, not\u00e9s usuellement <strong>R<\/strong><sup><em>n<\/em><\/sup>. Consid\u00e9rons deux observations multidimensionnelles mod\u00e9lis\u00e9es sous la forme de vecteurs de coordonn\u00e9es r\u00e9elles, <strong>x<\/strong> = (<em>x<\/em><sub>1<\/sub>, <em>x<\/em><sub>2<\/sub>, &#8230;, <em>x<\/em><sub><em>n<\/em><\/sub>) et <strong>y<\/strong> = (<em>y<\/em><sub>1<\/sub>, <em>y<\/em><sub>2<\/sub>, &#8230;, <em>y<\/em><sub><em>n<\/em><\/sub>). Chaque composante scalaire index\u00e9e de 1 \u00e0 <em>n<\/em> figure la projection de l&rsquo;observation sur un axe dimensionnel orthogonal ind\u00e9pendant. L&rsquo;extension du principe pythagoricien stipule que le carr\u00e9 de la longueur de la diagonale multidimensionnelle unissant <strong>x<\/strong> et <strong>y<\/strong> \u00e9quivaut rigoureusement \u00e0 la sommation arithm\u00e9tique des carr\u00e9s des \u00e9carts observ\u00e9s sur chacune des <em>n<\/em> dimensions orthogonales constitutives du r\u00e9f\u00e9rentiel.<\/p>\n<p>Dans le cadre plus vaste de l&rsquo;analyse fonctionnelle, cette m\u00e9trique s&rsquo;inscrit au sein de la famille g\u00e9n\u00e9rique des distances de Minkowski, dont elle mat\u00e9rialise le cas particulier o\u00f9 l&rsquo;ordre de la norme, usuellement d\u00e9sign\u00e9 par le param\u00e8tre <em>p<\/em>, prend une valeur \u00e9gale \u00e0 2. \u00c0 ce titre, la distance euclidienne est universellement qualifi\u00e9e de norme <em>L<\/em><sub>2<\/sub>. Contrairement \u00e0 la norme <em>L<\/em><sub>1<\/sub> (ou distance de Manhattan) qui contraint les d\u00e9placements \u00e0 suivre une grille orthogonale en sommant les valeurs absolues des \u00e9carts, ou \u00e0 la norme <em>L<\/em><sub>&infin;<\/sub> (distance de Tchebychev) qui ne retient que la divergence marginale maximale, la norme <em>L<\/em><sub>2<\/sub> accorde un traitement continu et isotrope \u00e0 l&rsquo;espace. Elle pr\u00e9serve l&rsquo;invariance rotationnelle, ce qui signifie que la distance g\u00e9om\u00e9trique mesur\u00e9e entre deux points demeure strictement inchang\u00e9e quelle que soit la rotation rigide appliqu\u00e9e au syst\u00e8me d&rsquo;axes cart\u00e9siens de r\u00e9f\u00e9rence.<\/p>\n<h3>1.2 Formule analytique et propri\u00e9t\u00e9s formelles d&rsquo;une m\u00e9trique<\/h3>\n<p>Sur le plan purement alg\u00e9brique, la distance euclidienne, traditionnellement not\u00e9e <em>d<\/em>(<strong>x<\/strong>, <strong>y<\/strong>), se formalise par l&rsquo;expression math\u00e9matique explicite suivante : la racine carr\u00e9e de la somme, pour l&rsquo;indice <em>i<\/em> variant de 1 \u00e0 <em>n<\/em>, de la quantit\u00e9 (<em>x<\/em><sub><em>i<\/em><\/sub> &#8211; <em>y<\/em><sub><em>i<\/em><\/sub>) \u00e9lev\u00e9e au carr\u00e9. En notation compacte d&rsquo;alg\u00e8bre vectorielle, en d\u00e9signant par le symbole double barre la norme euclidienne standard d&rsquo;un vecteur, cette grandeur correspond exactement \u00e0 ||<strong>x<\/strong> &#8211; <strong>y<\/strong>||<sub>2<\/sub>, laquelle peut \u00e9galement se d\u00e9finir par la racine carr\u00e9e du produit scalaire du vecteur de diff\u00e9rence avec lui-m\u00eame, soit la racine carr\u00e9e de la quantit\u00e9 transpos\u00e9e de (<strong>x<\/strong> &#8211; <strong>y<\/strong>) multipli\u00e9e par (<strong>x<\/strong> &#8211; <strong>y<\/strong>).<\/p>\n<p>Pour qu&rsquo;une fonction de comparaison spatiale puisse pr\u00e9tendre au statut math\u00e9matique rigoureux de m\u00e9trique sur un ensemble topologique <em>E<\/em>, elle doit satisfaire de fa\u00e7on imp\u00e9rative \u00e0 quatre axiomes fondamentaux \u00e9nonc\u00e9s d\u00e8s les travaux s\u00e9minaux de Maurice Fr\u00e9chet. La formulation euclidienne valide scrupuleusement l&rsquo;int\u00e9gralit\u00e9 de ces contraintes formelles :<\/p>\n<ul>\n<li><strong>Axiome de non-n\u00e9gativit\u00e9 :<\/strong> Pour toute paire de vecteurs <strong>x<\/strong> et <strong>y<\/strong> appartenant \u00e0 l&rsquo;espace, la distance <em>d<\/em>(<strong>x<\/strong>, <strong>y<\/strong>) est sup\u00e9rieure ou \u00e9gale \u00e0 z\u00e9ro. Cette propri\u00e9t\u00e9 d\u00e9coule trivialement du fait que la sommation de termes \u00e9lev\u00e9s \u00e0 une puissance paire produit n\u00e9cessairement une valeur r\u00e9elle positive ou nulle, dont la racine carr\u00e9e arithm\u00e9tique principale est elle-m\u00eame non n\u00e9gative par d\u00e9finition formelle.<\/li>\n<li><strong>Axiome d&rsquo;identit\u00e9 des indiscernables :<\/strong> La distance <em>d<\/em>(<strong>x<\/strong>, <strong>y<\/strong>) est \u00e9gale \u00e0 z\u00e9ro si et seulement si le vecteur <strong>x<\/strong> est rigoureusement identique au vecteur <strong>y<\/strong>, ce qui implique que chaque composante <em>x<\/em><sub><em>i<\/em><\/sub> \u00e9quivaut point par point \u00e0 la composante correspondante <em>y<\/em><sub><em>i<\/em><\/sub> pour tout <em>i<\/em> compris entre 1 et <em>n<\/em>. R\u00e9ciproquement, deux entit\u00e9s g\u00e9ographiquement ou statistiquement distinctes pr\u00e9senteront irr\u00e9vocablement une distance strictement positive.<\/li>\n<li><strong>Axiome de sym\u00e9trie :<\/strong> La relation m\u00e9trique v\u00e9rifie <em>d<\/em>(<strong>x<\/strong>, <strong>y<\/strong>) = <em>d<\/em>(<strong>y<\/strong>, <strong>x<\/strong>). Du point de vue computationnel, cette r\u00e9ciprocit\u00e9 provient de la parit\u00e9 de l&rsquo;op\u00e9ration quadratique, l&rsquo;expression (<em>x<\/em><sub><em>i<\/em><\/sub> &#8211; <em>y<\/em><sub><em>i<\/em><\/sub>)<sup>2<\/sup> \u00e9tant formellement \u00e9quivalente \u00e0 (<em>y<\/em><sub><em>i<\/em><\/sub> &#8211; <em>x<\/em><sub><em>i<\/em><\/sub>)<sup>2<\/sup>. L&rsquo;orientation du parcours entre les entit\u00e9s n&rsquo;alt\u00e8re donc en rien l&rsquo;amplitude de l&rsquo;intervalle spatial quantifi\u00e9.<\/li>\n<li><strong>In\u00e9galit\u00e9 triangulaire :<\/strong> Pour tout triplet de points <strong>x<\/strong>, <strong>y<\/strong> et <strong>z<\/strong> au sein de l&rsquo;espace affine, la distance directe v\u00e9rifie <em>d<\/em>(<strong>x<\/strong>, <strong>z<\/strong>) &le; <em>d<\/em>(<strong>x<\/strong>, <strong>y<\/strong>) + <em>d<\/em>(<strong>y<\/strong>, <strong>z<\/strong>). Cette in\u00e9galit\u00e9, qui d\u00e9coule formellement de l&rsquo;in\u00e9galit\u00e9 de Cauchy-Schwarz appliqu\u00e9e au produit scalaire canonique, garantit la coh\u00e9rence topologique des voisinages en interdisant formellement l&rsquo;existence de d\u00e9tours transitifs qui s&rsquo;av\u00e9reraient plus courts que la trajectoire directe en ligne droite.<\/li>\n<\/ul>\n<h3>1.3 Pertinence de la m\u00e9trique euclidienne en psychom\u00e9trie et sciences comportementales<\/h3>\n<p>Dans le domaine des sciences comportementales, de la psychom\u00e9trie diff\u00e9rentielle et de la sociologie quantitative, la mod\u00e9lisation de la similarit\u00e9 psychologique entre individus s&rsquo;appuie fr\u00e9quemment sur des repr\u00e9sentations spatiales formalis\u00e9es sous l&rsquo;appellation d&rsquo;espaces s\u00e9mantiques ou de paysages latents de personnalit\u00e9. Lorsqu&rsquo;un protocole exp\u00e9rimental administre \u00e0 une cohorte de sujets une batterie standardis\u00e9e de tests psychologiques \u2014 par exemple l&rsquo;\u00e9valuation des dimensions du Mod\u00e8le des Cinq Grands Facteurs (extraversion, agr\u00e9abilit\u00e9, conscience, neuroticisme, ouverture) \u2014, le profil de chaque r\u00e9pondant peut \u00eatre conceptualis\u00e9 comme un vecteur singulier localis\u00e9 dans un espace g\u00e9om\u00e9trique \u00e0 cinq dimensions fondamentales.<\/p>\n<p>La distance euclidienne sert alors d&rsquo;instrument d&rsquo;\u00e9valuation pour quantifier la divergence globale s\u00e9parant deux profils comportementaux complets. Une distance euclidienne extr\u00eamement faible atteste d&rsquo;une convergence structurelle remarquable des traits psychologiques entre deux participants, ce qui autorise des regroupements typologiques au sein d&rsquo;\u00e9tudes \u00e9tiologiques ou d&rsquo;essais cliniques comparatifs. Cette approche est particuli\u00e8rement exploit\u00e9e dans le paradigme de la cartographie s\u00e9mantique et du positionnement multidimensionnel, popularis\u00e9s par les travaux th\u00e9oriques de Roger Shepard sur la loi universelle de g\u00e9n\u00e9ralisation perceptive. Selon ce mod\u00e8le, la probabilit\u00e9 qu&rsquo;un stimulus ou qu&rsquo;une conduite induise la m\u00eame r\u00e9ponse qu&rsquo;un stimulus de r\u00e9f\u00e9rence d\u00e9cro\u00eet de mani\u00e8re monotone en fonction de leur distance relative calcul\u00e9e au sein d&rsquo;un espace psychologique affine.<\/p>\n<p>Il importe toutefois de souligner avec circonspection les limites \u00e9pist\u00e9mologiques inh\u00e9rentes \u00e0 l&rsquo;usage de la m\u00e9trique <em>L<\/em><sub>2<\/sub> face \u00e0 des instruments psychom\u00e9triques reposant sur des \u00e9chelles ordinales de type Likert (par exemple, des degr\u00e9s d&rsquo;adh\u00e9sion gradu\u00e9s de 1 pour \u00ab pas du tout d&rsquo;accord \u00bb \u00e0 5 pour \u00ab enti\u00e8rement d&rsquo;accord \u00bb). La distance euclidienne postule par construction que les axes dimensionnels sont continus et que les intervalles num\u00e9riques s\u00e9parant des \u00e9chelons successifs poss\u00e8dent une magnitude rigoureusement \u00e9quivalente en tout point de l&rsquo;\u00e9chelle. Or, l&rsquo;\u00e9cart psychologique per\u00e7u entre les \u00e9chelons 1 et 2 n&rsquo;est pas n\u00e9cessairement identique \u00e0 celui s\u00e9parant les \u00e9chelons 4 et 5. De surcro\u00eet, elle pr\u00e9suppose une stricte orthogonalit\u00e9 conceptuelle entre les items \u00e9valu\u00e9s, postulat r\u00e9guli\u00e8rement viol\u00e9 d\u00e8s lors que des corr\u00e9lations substantielles lient les variables sous-jacentes. Les chercheurs doivent d\u00e8s lors s&rsquo;interroger sur la pertinence d&rsquo;une transformation pr\u00e9alable des scores bruts ou sur l&rsquo;adoption de mod\u00e8les m\u00e9triques alternatifs lorsque ces pr\u00e9requis g\u00e9om\u00e9triques ne sont pas raisonnablement approch\u00e9s.<\/p>\n<h2>2. Impl\u00e9mentation d&rsquo;une fonction personnalis\u00e9e de distance euclidienne dans R<\/h2>\n<p>Avant de recourir syst\u00e9matiquement aux bo\u00eetes noires logicielles propos\u00e9es par les fonctions int\u00e9gr\u00e9es de l&rsquo;\u00e9cosyst\u00e8me R, la compr\u00e9hension fine du processus algorithmique gagne \u00e0 \u00eatre forg\u00e9e par l&rsquo;\u00e9criture explicite d&rsquo;une fonction personnalis\u00e9e. Cette d\u00e9marche permet d&rsquo;appr\u00e9hender intimement la mani\u00e8re dont le moteur interne de R articule ses op\u00e9rations matricielles et scalaires primitives.<\/p>\n<h3>2.1 D\u00e9composition algorithmique des op\u00e9rations vectorielles en R<\/h3>\n<p>Le langage R a \u00e9t\u00e9 con\u00e7u d\u00e8s ses fondations d&rsquo;apr\u00e8s les paradigmes du langage S d\u00e9velopp\u00e9 par John Chambers aux laboratoires Bell. L&rsquo;une de ses singularit\u00e9s structurelles les plus remarquables r\u00e9side dans la vectorisation native de ses op\u00e9rateurs arithm\u00e9tiques fondamentaux. Contrairement aux langages de bas niveau de type C, C++ ou Java qui requi\u00e8rent l&rsquo;orchestration explicite d&rsquo;une boucle it\u00e9rative parcourant les indices s\u00e9quentiels de 1 \u00e0 <em>n<\/em> pour soustraire deux s\u00e9ries de valeurs, R op\u00e8re de fa\u00e7on globale et directe sur les structures de donn\u00e9es atomiques.<\/p>\n<p>L&rsquo;impl\u00e9mentation de la distance euclidienne se pr\u00eate magnifiquement \u00e0 cette d\u00e9composition fonctionnelle modulaire :<\/p>\n<ul>\n<li><strong>La soustraction terme \u00e0 terme :<\/strong> L&rsquo;expression arithm\u00e9tique \u00e9l\u00e9mentaire utilisant l&rsquo;op\u00e9rateur de soustraction classique appliqu\u00e9 \u00e0 deux vecteurs num\u00e9riques de dimensions congruentes d\u00e9clenche imm\u00e9diatement une op\u00e9ration parall\u00e8le au niveau de chaque coordonn\u00e9e homologue. L&rsquo;\u00e9valuation produit instantan\u00e9ment un nouveau vecteur de r\u00e9sidus contenant les diff\u00e9rences sign\u00e9es.<\/li>\n<li><strong>L&rsquo;\u00e9l\u00e9vation quadratique :<\/strong> L&rsquo;application de l&rsquo;op\u00e9rateur puissance 2 \u00e0 ce vecteur r\u00e9siduel \u00e9l\u00e8ve individuellement chaque \u00e9cart diff\u00e9rentiel au carr\u00e9. Cette transformation non lin\u00e9aire supprime de mani\u00e8re infaillible les signes n\u00e9gatifs tout en surpond\u00e9rant arithm\u00e9tiquement les \u00e9carts de grande magnitude, sans n\u00e9cessiter de condition disjonctive relative au signe des valeurs.<\/li>\n<li><strong>L&rsquo;agr\u00e9gation sommative :<\/strong> L&rsquo;appel de la primitive interne <em>sum()<\/em> applique un r\u00e9ducteur d&rsquo;accumulation sur le vecteur des carr\u00e9s r\u00e9sultants. Cette \u00e9tape comprime la structure vectorielle unidimensionnelle en un scalaire unique repr\u00e9sentant la somme globale des r\u00e9sidus quadratiques.<\/li>\n<li><strong>L&rsquo;extraction du radical :<\/strong> Enfin, la fonction math\u00e9matique primitive <em>sqrt()<\/em> calcule la racine carr\u00e9e de ce scalaire d&rsquo;agr\u00e9gation, r\u00e9tablissant la dimensionnalit\u00e9 originelle de l&rsquo;espace de mesure et d\u00e9livrant la distance finale.<\/li>\n<\/ul>\n<h3>2.2 D\u00e9finition formelle de la fonction utilisateur<\/h3>\n<p>En exploitant la concision et l&rsquo;expressivit\u00e9 de la grammaire de R, la cr\u00e9ation d&rsquo;une routine sur mesure destin\u00e9e \u00e0 encapsuler ce calcul g\u00e9om\u00e9trique s&rsquo;op\u00e8re au moyen du mot-cl\u00e9 <em>function<\/em>. Consid\u00e9rons une proc\u00e9dure recevant en param\u00e8tres deux objets vectoriels distincts, arbitrairement d\u00e9sign\u00e9s sous les \u00e9tiquettes <em>u<\/em> et <em>v<\/em>. En respectant les conventions stylistiques idiomatiques de la communaut\u00e9 de d\u00e9veloppement statistique, le code de cette routine peut s&rsquo;\u00e9crire sous une forme compacte et imm\u00e9diatement lisible.<\/p>\n<p>Au sein du corps fonctionnel, les op\u00e9rations primitives s&rsquo;encha\u00eenent harmonieusement : la diff\u00e9rence vectorielle <em>(u &#8211; v)<\/em> est \u00e9lev\u00e9e au carr\u00e9 via l&rsquo;op\u00e9rateur chapeau ou double ast\u00e9risque, le produit vectoriel r\u00e9sultant est transmis comme argument \u00e0 l&rsquo;op\u00e9rateur sommateur <em>sum()<\/em>, et la quantit\u00e9 scalaire scalaire unique ainsi agr\u00e9g\u00e9e est transmise \u00e0 l&rsquo;op\u00e9rateur <em>sqrt()<\/em>. Dans le mod\u00e8le d&rsquo;\u00e9valuation de R, la valeur de la derni\u00e8re expression \u00e9valu\u00e9e dans le bloc fonctionnel constitue la valeur de retour implicite de la fonction, bien que l&rsquo;instruction explicite <em>return()<\/em> puisse \u00eatre formellement consign\u00e9e \u00e0 des fins de clart\u00e9 syntaxique didactique.<\/p>\n<p>Il convient de souligner que cette fonction op\u00e8re au sein d&rsquo;un environnement d&rsquo;ex\u00e9cution d\u00e9di\u00e9, caract\u00e9ris\u00e9 par les r\u00e8gles de port\u00e9e lexicale (lexical scoping) strictes du langage. Les vecteurs interm\u00e9diaires temporaires cr\u00e9\u00e9s au cours de l&rsquo;\u00e9valuation arithm\u00e9tique ne polluent \u00e0 aucun moment l&rsquo;espace de travail global (le Global Environment) de l&rsquo;utilisateur. D\u00e8s l&rsquo;ach\u00e8vement de l&rsquo;\u00e9valuation du retour scalaire, la m\u00e9moire allou\u00e9e aux structures volatiles est imm\u00e9diatement marqu\u00e9e comme r\u00e9cup\u00e9rable pour le ramasse-miettes (garbage collector) de l&rsquo;environnement d&rsquo;ex\u00e9cution, garantissant ainsi l&rsquo;int\u00e9grit\u00e9 de la session analytique.<\/p>\n<h3>2.3 Avantages computationnels de la vectorisation par rapport aux boucles<\/h3>\n<p>Pour un programmeur habitu\u00e9 aux langages imp\u00e9ratifs proc\u00e9duraux, le r\u00e9flexe spontan\u00e9 consisterait \u00e0 d\u00e9clarer une variable accumulatrice initialis\u00e9e \u00e0 z\u00e9ro, puis \u00e0 structurer une boucle s\u00e9quentielle it\u00e9rant sur la longueur des vecteurs, calculant l&rsquo;\u00e9cart pour chaque indice, ajoutant le carr\u00e9 au total partiel, avant d&rsquo;extraire la racine carr\u00e9e une fois l&rsquo;it\u00e9ration achev\u00e9e. Bien que parfaitement valide sur le plan logique, cette d\u00e9marche algorithmique s&rsquo;av\u00e8re particuli\u00e8rement sous-optimale dans l&rsquo;interpr\u00e9teur R standard.<\/p>\n<p>R \u00e9tant un langage interpr\u00e9t\u00e9 et typ\u00e9 dynamiquement, l&rsquo;ex\u00e9cution d&rsquo;une boucle it\u00e9rative classique implique que le moteur d&rsquo;ex\u00e9cution v\u00e9rifie de mani\u00e8re r\u00e9p\u00e9t\u00e9e le typage des op\u00e9randes et assure la gestion du d\u00e9r\u00e9f\u00e9rencement d&rsquo;indexation m\u00e9moire \u00e0 chaque pas d&rsquo;it\u00e9ration. Cette surcharge administrative computationnelle (computational overhead) d\u00e9grade dramatiquement les temps d&rsquo;ex\u00e9cution d\u00e8s lors que la taille des vecteurs atteint des \u00e9chelles substantielles. En revanche, les op\u00e9rations vectoris\u00e9es s&rsquo;appuient directement sur des primitives internes \u00e9crites en C compil\u00e9, optimis\u00e9es pour exploiter les registres vectoriels et les jeux d&rsquo;instructions SIMD (Single Instruction, Multiple Data) des microprocesseurs contemporains.<\/p>\n<p>Des exp\u00e9riences de profilage de code men\u00e9es \u00e0 l&rsquo;aide d&rsquo;outils tels que le module <em>bench<\/em> ou le profileur <em>Rprof<\/em> r\u00e9v\u00e8lent couramment des acc\u00e9l\u00e9rations d&rsquo;un ou deux ordres de grandeur en faveur de la routine vectoris\u00e9e comparativement \u00e0 la boucle s\u00e9quentielle. De surcro\u00eet, la lisibilit\u00e9 du code s&rsquo;en trouve d\u00e9cupl\u00e9e, \u00e9liminant tout risque d&rsquo;erreur classique d&rsquo;indexation aux limites (off-by-one errors) ou d&rsquo;initialisation fautive des structures de r\u00e9ception des r\u00e9sultats.<\/p>\n<h2>3. Calcul de la distance euclidienne entre deux vecteurs num\u00e9riques<\/h2>\n<p>Apr\u00e8s avoir \u00e9tabli les fondements conceptuels de l&rsquo;op\u00e9rateur fonctionnel personnalis\u00e9, son application pratique sur des donn\u00e9es empiriques concr\u00e8tes permet d&rsquo;illustrer la m\u00e9canique op\u00e9ratoire et d&rsquo;analyser la sensibilit\u00e9 structurelle de la m\u00e9trique face aux variations scalaires observ\u00e9es.<\/p>\n<h3>3.1 D\u00e9finition des vecteurs et validation dimensionnelle initiale<\/h3>\n<p>Dans l&rsquo;\u00e9cosyst\u00e8me R, la gen\u00e8se de vecteurs atomiques s&rsquo;effectue usuellement par l&rsquo;interm\u00e9diaire de l&rsquo;op\u00e9rateur de concat\u00e9nation <em>c()<\/em>. Imaginons une situation exp\u00e9rimentale issue d&rsquo;une \u00e9tude d&rsquo;ergonomie cognitive mesurant les profils de performance de deux op\u00e9rateurs humains soumis \u00e0 une s\u00e9rie de cinq \u00e9preuves standardis\u00e9es. Ces \u00e9preuves \u00e9valuent respectivement le temps de d\u00e9tection visuelle, l&#8217;empan mn\u00e9sique, la pr\u00e9cision motrice, le contr\u00f4le attentionnel et la flexibilit\u00e9 mentale. Les r\u00e9sultats de ces \u00e9valuations sont encapsul\u00e9s au sein de deux vecteurs num\u00e9riques distincts.<\/p>\n<p>Soit le premier sujet caract\u00e9ris\u00e9 par le vecteur de performances contenant les valeurs respectives de 12, 18, 25, 40 et 15. Le second op\u00e9rateur pr\u00e9sente quant \u00e0 lui un vecteur de coordonn\u00e9es constitu\u00e9 des mesures 15, 14, 20, 48 et 10. Avant d&rsquo;engager le calcul g\u00e9om\u00e9trique, le praticien doit s&rsquo;assurer que ces objets r\u00e9pondent aux crit\u00e8res de conformit\u00e9 num\u00e9rique :<\/p>\n<ul>\n<li><strong>Contr\u00f4le du mode atomique :<\/strong> Les vecteurs doivent \u00eatre de type <em>numeric<\/em> (qu&rsquo;il s&rsquo;agisse du mode \u00e0 virgule flottante double pr\u00e9cision ou de nombres entiers). L&rsquo;introduction accidentelle d&rsquo;une cha\u00eene de caract\u00e8res convertit instantan\u00e9ment l&rsquo;int\u00e9gralit\u00e9 du vecteur en type <em>character<\/em> par coercition implicite, interdisant toute op\u00e9ration arithm\u00e9tique subs\u00e9quente.<\/li>\n<li><strong>V\u00e9rification dimensionnelle :<\/strong> Les deux vecteurs doivent pr\u00e9senter des longueurs rigoureusement identiques, v\u00e9rifiables via l&rsquo;instruction primitive <em>length()<\/em>. Chaque dimension indic\u00e9e doit repr\u00e9senter un attribut conceptuellement appari\u00e9 entre les deux sujets pour que la comparaison spatiale conserve un sens heuristique fond\u00e9.<\/li>\n<\/ul>\n<h3>3.2 Ex\u00e9cution num\u00e9rique pas \u00e0 pas et validation du r\u00e9sultat<\/h3>\n<p>Lorsque ces deux vecteurs sont soumis \u00e0 la fonction de distance euclidienne personnalis\u00e9e pr\u00e9alablement construite, le moteur de calcul ex\u00e9cute s\u00e9quentiellement les \u00e9tapes arithm\u00e9tiques sous-jacentes. La premi\u00e8re op\u00e9ration r\u00e9siduelle calcule la diff\u00e9rence terme \u00e0 terme : 12 moins 15 donne -3 ; 18 moins 14 donne 4 ; 25 moins 20 donne 5 ; 40 moins 48 donne -8 ; 15 moins 10 donne 5. Le vecteur des \u00e9carts alg\u00e9briques s&rsquo;\u00e9tablit ainsi \u00e0 (-3, 4, 5, -8, 5).<\/p>\n<p>L&rsquo;\u00e9l\u00e9vation quadratique de ces composantes r\u00e9siduelles transforme chaque valeur en son carr\u00e9 arithm\u00e9tique : le carr\u00e9 de -3 vaut 9 ; le carr\u00e9 de 4 vaut 16 ; le carr\u00e9 de 5 vaut 25 ; le carr\u00e9 de -8 vaut 64 ; le carr\u00e9 de 5 vaut 25. Le vecteur r\u00e9sultant de cette transformation interm\u00e9diaire rassemble donc les grandeurs (9, 16, 25, 64, 25). Ces valeurs positives rendent compte de la contribution partielle de chaque dimension psychom\u00e9trique \u00e0 la s\u00e9paration spatiale globale entre les deux profils individuels.<\/p>\n<p>L&rsquo;op\u00e9ration d&rsquo;agr\u00e9gation scalaire somme ensuite ces composantes : 9 + 16 + 25 + 64 + 25 \u00e9quivaut rigoureusement \u00e0 139. Cette quantit\u00e9 scalaire finale, d\u00e9sign\u00e9e en mod\u00e9lisation statistique sous l&rsquo;appellation de somme des carr\u00e9s des \u00e9carts (Sum of Squared Differences ou SSD), repr\u00e9sente le carr\u00e9 de la distance g\u00e9om\u00e9trique. L&rsquo;extraction conclusive de la racine carr\u00e9e de 139 via la fonction <em>sqrt()<\/em> livre une valeur approximative de 11,78983. Cette magnitude constitue la distance euclidienne brute s\u00e9parant les deux profils cognitifs au sein du rep\u00e8re orthogonal quinquadimensionnel consid\u00e9r\u00e9.<\/p>\n<h3>3.3 Sensibilit\u00e9 aux ordres de grandeur et effet des variations locales<\/h3>\n<p>L&rsquo;examen minutieux des contributions individuelles au sein du vecteur quadratique met en lumi\u00e8re une propri\u00e9t\u00e9 math\u00e9matique cruciale de la norme <em>L<\/em><sub>2<\/sub> : sa sensibilit\u00e9 disproportionn\u00e9e aux \u00e9carts num\u00e9riques de forte amplitude. Dans l&rsquo;exemple pr\u00e9c\u00e9dent, l&rsquo;\u00e9cart observ\u00e9 sur la quatri\u00e8me variable (40 contre 48, soit un r\u00e9sidu absolu de 8 unit\u00e9s) engendre \u00e0 lui seul un carr\u00e9 de 64, repr\u00e9sentant pr\u00e8s de 46 % de la somme totale des carr\u00e9s (64 sur 139). \u00c0 l&rsquo;inverse, l&rsquo;\u00e9cart modeste de 3 unit\u00e9s relev\u00e9 sur la premi\u00e8re variable ne contribue qu&rsquo;\u00e0 hauteur de 9 unit\u00e9s, soit \u00e0 peine 6,5 % de la dispersion globale.<\/p>\n<p>En vertu de cette fonction de co\u00fbt quadratique convexe, la distance euclidienne p\u00e9nalise de mani\u00e8re nettement plus s\u00e9v\u00e8re une divergence isol\u00e9e mais prononc\u00e9e sur une unique dimension qu&rsquo;une pluralit\u00e9 de petites fluctuations uniform\u00e9ment distribu\u00e9es \u00e0 travers l&rsquo;ensemble des axes. Si l&rsquo;on comparait un profil caract\u00e9ris\u00e9 par un \u00e9cart unique de 10 unit\u00e9s et quatre \u00e9galit\u00e9s parfaites \u00e0 un autre profil pr\u00e9sentant un \u00e9cart constant de 4 unit\u00e9s sur chacune des cinq dimensions, la somme des carr\u00e9s du premier profil atteindrait 100 (racine carr\u00e9e \u00e9gale \u00e0 10), tandis que celle du second profil culminerait \u00e0 5 fois 16, soit 80 (racine carr\u00e9e approximative de 8,94).<\/p>\n<p>Cette sensibilit\u00e9 structurelle aux variations locales majeures conf\u00e8re \u00e0 la distance euclidienne une vuln\u00e9rabilit\u00e9 reconnue face aux valeurs aberrantes ou extr\u00eames (outliers). Dans les cohortes de donn\u00e9es empiriques non \u00e9pur\u00e9es, un individu pr\u00e9sentant une mesure anormale sur un seul indicateur verra sa distance euclidienne s&rsquo;accro\u00eetre artificiellement par rapport \u00e0 l&rsquo;ensemble du groupe, biaisant potentiellement les d\u00e9marches ult\u00e9rieures d&rsquo;agr\u00e9gation typologique ou d&rsquo;\u00e9valuation de la similarit\u00e9 ph\u00e9notypique.<\/p>\n<h2>4. Calcul de la distance euclidienne entre colonnes d&rsquo;un data frame<\/h2>\n<p>Dans la pratique courante de l&rsquo;analyste de donn\u00e9es sous R, l&rsquo;information se pr\u00e9sente rarement sous la forme de vecteurs isol\u00e9s. Elle se structure pr\u00e9f\u00e9rentiellement au sein d&rsquo;objets tabulaires bidimensionnels complexes, \u00e0 l&rsquo;instar des jeux de donn\u00e9es encapsul\u00e9s dans des data frames, o\u00f9 les lignes incarnent les unit\u00e9s statistiques \u00e9chantillonn\u00e9es et les colonnes repr\u00e9sentent les attributs m\u00e9triques mesur\u00e9s.<\/p>\n<h3>4.1 Organisation des structures de donn\u00e9es tabulaires pour l&rsquo;analyse<\/h3>\n<p>Consid\u00e9rons la construction d&rsquo;un jeu de donn\u00e9es exp\u00e9rimental consignant les observations recueillies aupr\u00e8s de six participants soumis \u00e0 trois \u00e9preuves psychom\u00e9triques distinctes. Le tableau de donn\u00e9es peut \u00eatre initialis\u00e9 sous R par l&rsquo;interm\u00e9diaire de la fonction primitive <em>data.frame()<\/em>. Les trois colonnes d&rsquo;int\u00e9r\u00eat m\u00e9thodologique mod\u00e9liseront respectivement des \u00e9chelles d&rsquo;anxi\u00e9t\u00e9 situationnelle, de r\u00e9activit\u00e9 \u00e9motionnelle et de tol\u00e9rance au stress, mesur\u00e9es chacune sur une graduation standardis\u00e9e s&rsquo;\u00e9tendant de 0 \u00e0 100.<\/p>\n<p>Les rang\u00e9es du tableau correspondent aux unit\u00e9s d&rsquo;observation individuelles, traditionnellement assign\u00e9es \u00e0 des identifiants alphanum\u00e9riques anonymis\u00e9s (par exemple Sujet_1 \u00e0 Sujet_6). L&rsquo;\u00e9valuation de l&rsquo;int\u00e9grit\u00e9 globale de cette structure tabulaire requiert l&rsquo;invocation imm\u00e9diate de commandes exploratoires telles que <em>str()<\/em> pour examiner le sch\u00e9ma des types de donn\u00e9es sous-jacents, et <em>summary()<\/em> pour obtenir les m\u00e9triques de tendance centrale et de dispersion associ\u00e9es \u00e0 chaque colonne.<\/p>\n<p>Dans ce contexte analytique, le calcul de distances g\u00e9om\u00e9triques peut s&rsquo;envisager sous une double perspective m\u00e9thodologique. D&rsquo;une part, on peut chercher \u00e0 quantifier la dissimilarit\u00e9 entre individus : dans ce cas, le calcul s&rsquo;op\u00e8re transversalement en comparant les lignes du tableau deux \u00e0 deux. D&rsquo;autre part, la d\u00e9marche peut consister \u00e0 \u00e9valuer la divergence ou la proximit\u00e9 globale entre les attributs psychologiques eux-m\u00eames : le calcul m\u00e9trique s&rsquo;effectue alors longitudinalement, en traitant chaque colonne du data frame comme un vecteur g\u00e9om\u00e9trique singulier r\u00e9sidant dans l&rsquo;espace multidimensionnel d\u00e9fini par les sujets observ\u00e9s.<\/p>\n<h3>4.2 Extraction et comparaison de paires de colonnes sp\u00e9cifiques<\/h3>\n<p>Lorsque la finalit\u00e9 analytique r\u00e9side dans l&rsquo;estimation de la distance g\u00e9om\u00e9trique s\u00e9parant deux variables comportementales sp\u00e9cifiques \u2014 par exemple pour estimer si l&rsquo;\u00e9chelle d&rsquo;anxi\u00e9t\u00e9 produit un profil de r\u00e9ponses globalement divergent de celui de la r\u00e9activit\u00e9 \u00e9motionnelle sur l&rsquo;ensemble de l&rsquo;\u00e9chantillon \u2014, l&rsquo;analyste extrait ces entit\u00e9s sous forme vectorielle \u00e0 l&rsquo;aide des op\u00e9rateurs d&rsquo;indexation standards de R.<\/p>\n<p>L&rsquo;utilisation la plus courante repose sur l&rsquo;op\u00e9rateur dollar, qui extrait directement la colonne d\u00e9sign\u00e9e sous forme de vecteur atomique sans alt\u00e9ration structurelle. L&rsquo;analyste peut \u00e9galement solliciter l&rsquo;op\u00e9rateur double crochet en sp\u00e9cifiant le nom de la variable sous forme de cha\u00eene de caract\u00e8res ou son indice ordinal de positionnement horizontal. Une fois ces deux vecteurs extraits, ils sont pass\u00e9s en arguments au sein de la fonction de distance euclidienne pr\u00e9c\u00e9demment d\u00e9clar\u00e9e.<\/p>\n<p>Le r\u00e9sultat scalaire obtenu synth\u00e9tise la divergence g\u00e9om\u00e9trique globale des deux instruments de mesure \u00e0 travers l&rsquo;\u00e9chantillon \u00e9tudi\u00e9. Si les scores attribu\u00e9s aux diff\u00e9rents sujets pour l&rsquo;anxi\u00e9t\u00e9 et la r\u00e9activit\u00e9 \u00e9motionnelle sont tr\u00e8s proches individu par individu, la distance euclidienne inter-colonnes sera minimale, signalant une co-localisation \u00e9troite des deux variables dans l&rsquo;espace des observations. Si au contraire les mesures s&rsquo;\u00e9cartent substantiellement pour chaque individu, la distance s&rsquo;accro\u00eetra en proportion directe de la variance diff\u00e9rentielle accumul\u00e9e.<\/p>\n<h3>4.3 G\u00e9n\u00e9ralisation du calcul par paires au moyen de combn() et apply()<\/h3>\n<p>D\u00e8s lors que le jeu de donn\u00e9es comporte un nombre \u00e9tendu de colonnes num\u00e9riques, la comparaison manuelle de chaque paire de variables devient fastidieuse, sujette aux erreurs de saisie et contraire aux exigences \u00e9l\u00e9mentaires d&rsquo;automatisation des flux de travail analytiques. Il devient imp\u00e9ratif d&rsquo;adopter une strat\u00e9gie programmatique capable de g\u00e9n\u00e9rer l&rsquo;ensemble exhaustif des combinaisons binaires possibles et d&rsquo;it\u00e9rer la m\u00e9trique euclidienne sans mobiliser de boucle explicite inefficace.<\/p>\n<p>Le langage R met \u00e0 disposition une fonction de combinatoire \u00e9l\u00e9gante nomm\u00e9e <em>combn()<\/em>. Lorsqu&rsquo;on lui transmet les noms des colonnes num\u00e9riques d&rsquo;un data frame et la valeur 2 pour sp\u00e9cifier des paires, <em>combn()<\/em> g\u00e9n\u00e8re une matrice contenant toutes les associations possibles de variables deux \u00e0 deux, sans remise et sans consid\u00e9ration d&rsquo;ordonnancement. Le nombre total de paires form\u00e9es \u00e0 partir de <em>m<\/em> variables r\u00e9pond strictement \u00e0 la formule combinatoire <em>m<\/em>!(2!(<em>m<\/em>-2)!), soit <em>m<\/em>(<em>m<\/em> &#8211; 1) \/ 2 combinaisons uniques.<\/p>\n<p>En associant <em>combn()<\/em> \u00e0 une fonction anonyme ou \u00e0 une routine personnalis\u00e9e ex\u00e9cut\u00e9e via son argument fonctionnel interne, R applique de mani\u00e8re vectoris\u00e9e le calcul de la distance euclidienne sur chaque paire identifi\u00e9e. Les valeurs r\u00e9sultantes peuvent ensuite \u00eatre restructur\u00e9es au sein d&rsquo;un data frame r\u00e9capitulatif ordonn\u00e9, explicitant les deux variables compar\u00e9es et leur indice de distance respectif. Cette approche offre une visibilit\u00e9 globale imm\u00e9diate sur la matrice de divergence des attributs, permettant d&rsquo;isoler rapidement les paires de variables pr\u00e9sentant la plus forte redondance m\u00e9trique ou, \u00e0 l&rsquo;inverse, l&rsquo;h\u00e9t\u00e9rog\u00e9n\u00e9it\u00e9 la plus prononc\u00e9e au sein de la population \u00e9tudi\u00e9e.<\/p>\n<h2>5. Gestion rigoureuse des longueurs in\u00e9gales et du recyclage vectoriel<\/h2>\n<p>L&rsquo;un des comportements les plus d\u00e9routants pour les utilisateurs novices du langage R \u2014 et potentiellement l&rsquo;une des sources d&rsquo;erreurs statistiques les plus pernicieuses dans les scripts de production \u2014 r\u00e9side dans le m\u00e9canisme connu sous le nom de recyclage des vecteurs. La mise en \u0153uvre d&rsquo;un calcul m\u00e9trique rigoureux exige une compr\u00e9hension fine de cette sp\u00e9cificit\u00e9 architecturale et la mise en place de barri\u00e8res d\u00e9fensives explicites.<\/p>\n<h3>5.1 Le m\u00e9canisme de recyclage des vecteurs dans le moteur R<\/h3>\n<p>Par conception philosophique, le langage R vise \u00e0 faciliter les op\u00e9rations vectoris\u00e9es mixtes entre des structures de dimensions asym\u00e9triques. L&rsquo;exemple embl\u00e9matique consiste \u00e0 multiplier un vecteur de longueur 10 par un scalaire unique (un vecteur de longueur 1) : le moteur d&rsquo;ex\u00e9cution recycle silencieusement le scalaire en le dupliquant dix fois afin de conformer sa taille \u00e0 celle du vecteur principal, autorisant ainsi l&rsquo;ex\u00e9cution imm\u00e9diate de la multiplication terme \u00e0 terme.<\/p>\n<p>Toutefois, cette tol\u00e9rance structurelle s&rsquo;applique \u00e9galement lorsque deux vecteurs de longueurs sup\u00e9rieures \u00e0 un mais in\u00e9gales sont confront\u00e9s dans une op\u00e9ration arithm\u00e9tique. Si l&rsquo;analyste tente de soustraire un vecteur <em>u<\/em> comprenant six composantes d&rsquo;un vecteur <em>v<\/em> n&rsquo;en comptant que trois, R r\u00e9utilise s\u00e9quentiellement les composantes du vecteur le plus court \u00e0 partir de son origine. La quatri\u00e8me observation de <em>u<\/em> se verra ainsi soustraite de la premi\u00e8re composante de <em>v<\/em>, la cinqui\u00e8me de la deuxi\u00e8me, et la sixi\u00e8me de la troisi\u00e8me.<\/p>\n<p>D&rsquo;un point de vue math\u00e9matique et m\u00e9trique, cette op\u00e9ration constitue une aberration absolue. Calculer une distance euclidienne entre deux entit\u00e9s r\u00e9sidant dans des espaces topologiques de dimensions diff\u00e9rentes n&rsquo;a rigoureusement aucun sens formel. Le recyclage cr\u00e9e artificiellement des r\u00e9sidus g\u00e9om\u00e9triques d\u00e9nu\u00e9s de toute signification empirique, g\u00e9n\u00e9rant une valeur de distance illusoire qui peut contaminer de mani\u00e8re totalement invisible l&rsquo;ensemble des inf\u00e9rences statistiques construites en aval.<\/p>\n<h3>5.2 Interpr\u00e9tation analytique des messages d&rsquo;avertissement de R<\/h3>\n<p>La dangerosit\u00e9 du recyclage r\u00e9side dans le fait qu&rsquo;il ne d\u00e9clenche pas syst\u00e9matiquement une erreur fatale interrompant l&rsquo;ex\u00e9cution du programme. Le comportement de R varie en fonction de la divisibilit\u00e9 des longueurs des op\u00e9randes :<\/p>\n<ul>\n<li><strong>Cas des longueurs multiples exactes :<\/strong> Si la longueur du vecteur le plus long est un multiple exact de la longueur du vecteur le plus court (par exemple, 6 et 3, ou 8 et 4), R ex\u00e9cute le recyclage et la soustraction de fa\u00e7on totalement silencieuse, sans \u00e9mettre le moindre avertissement dans la console. L&rsquo;utilisateur peut ainsi manipuler un r\u00e9sultat math\u00e9matiquement invalide sans jamais \u00eatre alert\u00e9 de l&rsquo;anomalie dimensionnelle.<\/li>\n<li><strong>Cas des longueurs non multiples :<\/strong> Si la dimension la plus grande n&rsquo;est pas un multiple entier de la plus petite (par exemple, un vecteur de 5 composantes confront\u00e9 \u00e0 un vecteur de 3 composantes), le moteur R finalise le calcul mais consigne un avertissement explicite (warning) indiquant que la longueur de l&rsquo;objet le plus long n&rsquo;est pas un multiple de celle de l&rsquo;objet le plus court.<\/li>\n<\/ul>\n<p>Dans la pratique de la programmation scientifique, consid\u00e9rer un avertissement comme anodin constitue une n\u00e9gligence m\u00e9thodologique grave. Cependant, dans un script complexe ex\u00e9cut\u00e9 en arri\u00e8re-plan (batch processing) ou au sein d&rsquo;une interface graphique interactive, les avertissements textuels \u00e9mis par la console sont fr\u00e9quemment ignor\u00e9s ou noy\u00e9s au milieu des journaux d&rsquo;ex\u00e9cution, laissant subsister des erreurs de mesure critiques.<\/p>\n<h3>5.3 Impl\u00e9mentation de barri\u00e8res d\u00e9fensives avec stopifnot() et stop()<\/h3>\n<p>Pour immuniser une fonction personnalis\u00e9e contre ces d\u00e9faillances silencieuses, la m\u00e9thodologie du d\u00e9veloppement logiciel d\u00e9fensif pr\u00e9conise d&rsquo;\u00e9riger des barri\u00e8res de validation pr\u00e9alables en tout d\u00e9but de routine. L&rsquo;acc\u00e8s au corps de calcul arithm\u00e9tique doit \u00eatre formellement conditionn\u00e9 au respect irr\u00e9prochable des hypoth\u00e8ses dimensionnelles requises.<\/p>\n<p>L&rsquo;approche la plus explicite consiste \u00e0 utiliser une structure conditionnelle bas\u00e9e sur le mot-cl\u00e9 <em>if<\/em>, comparant la longueur du premier vecteur \u00e0 celle du second via la primitive <em>length()<\/em>. Si les dimensions diff\u00e8rent d&rsquo;une seule unit\u00e9, la fonction interrompt imm\u00e9diatement son flux d&rsquo;\u00e9valuation \u00e0 l&rsquo;aide de l&rsquo;instruction <em>stop()<\/em>, laquelle l\u00e8ve une erreur bloquante accompagn\u00e9e d&rsquo;un message textuel personnalis\u00e9 et informatif explicitant les tailles respectives des objets re\u00e7us.<\/p>\n<p>Une alternative plus concise et hautement idiomatique r\u00e9side dans l&#8217;emploi de l&rsquo;assertion primitive <em>stopifnot()<\/em>. Cette fonction prend en charge une s\u00e9rie d&rsquo;expressions logiques bool\u00e9ennes et stoppe imm\u00e9diatement l&rsquo;ex\u00e9cution si l&rsquo;une d&rsquo;entre elles s&rsquo;\u00e9value \u00e0 faux. En consignant une instruction v\u00e9rifiant que la longueur de <em>u<\/em> \u00e9quivaut \u00e0 celle de <em>v<\/em>, ainsi qu&rsquo;une condition certifiant que les deux arguments r\u00e9pondent positivement au test de v\u00e9rification <em>is.numeric()<\/em>, la routine devient intrins\u00e8quement robuste face aux asym\u00e9tries dimensionnelles et aux incoh\u00e9rences de typage. De surcro\u00eet, l&rsquo;\u00e9laboration de tests unitaires automatis\u00e9s int\u00e9gr\u00e9s \u00e0 l&rsquo;aide de biblioth\u00e8ques logicielles comme <em>testthat<\/em> permet de valider continuellement cette robustesse lors du d\u00e9ploiement de scripts reproductibles.<\/p>\n<h2>6. Traitement des valeurs manquantes (NA) dans le calcul de distance<\/h2>\n<p>Les donn\u00e9es r\u00e9elles recueillies sur le terrain clinique, exp\u00e9rimental ou sociologique sont invariablement lacunaires. Dans l&rsquo;\u00e9cosyst\u00e8me R, l&rsquo;absence de donn\u00e9e est formellement encod\u00e9e par la constante logique <em>NA<\/em> (Not Available), dont le comportement arithm\u00e9tique rigide impose des arbitrages m\u00e9thodologiques prudents lors du calcul de grandeurs m\u00e9triques multidimensionnelles.<\/p>\n<h3>6.1 M\u00e9canisme de propagation des valeurs NA dans les op\u00e9rations arithm\u00e9tiques<\/h3>\n<p>R applique le principe de propagation conservative universelle \u00e0 toute expression arithm\u00e9tique impliquant une valeur manquante. Si la valeur exacte d&rsquo;un terme demeure inconnue, le r\u00e9sultat de toute op\u00e9ration le manipulant est intrins\u00e8quement ind\u00e9termin\u00e9. Par cons\u00e9quent, l&rsquo;\u00e9valuation de l&rsquo;addition, de la soustraction, du carr\u00e9 ou de la racine carr\u00e9e d&rsquo;une quantit\u00e9 incluant un <em>NA<\/em> renvoie in\u00e9luctablement <em>NA<\/em>.<\/p>\n<p>Ce m\u00e9canisme de contagion arithm\u00e9tique exerce un impact consid\u00e9rable sur le calcul de la distance euclidienne : la pr\u00e9sence d&rsquo;une seule valeur manquante au sein d&rsquo;un vecteur comportant plusieurs centaines de variables entra\u00eene m\u00e9caniquement l&rsquo;affectation de la valeur <em>NA<\/em> \u00e0 l&rsquo;agr\u00e9gation sommative compl\u00e8te <em>sum()<\/em>, puis \u00e0 la racine carr\u00e9e finale. La distance globale s\u00e9parant deux profils individuels devient totalement ind\u00e9termin\u00e9e, privant l&rsquo;analyste de toute m\u00e9trique de comparaison pour les observations incompl\u00e8tes.<\/p>\n<p>Avant d&rsquo;engager un calcul g\u00e9om\u00e9trique, le diagnostic de la compl\u00e9tude des vecteurs s&rsquo;av\u00e8re indispensable. Il s&rsquo;op\u00e8re couramment au moyen des pr\u00e9dicats logiques <em>is.na()<\/em>, qui g\u00e9n\u00e8re un masque bool\u00e9en identifiant les coordonn\u00e9es d\u00e9faillantes, ou <em>anyNA()<\/em>, qui examine instantan\u00e9ment si une structure vectorielle h\u00e9berge au moins un \u00e9l\u00e9ment non renseign\u00e9. Sur le plan th\u00e9orique, il convient de distinguer si ces omissions proc\u00e8dent d&rsquo;un m\u00e9canisme purement al\u00e9atoire ind\u00e9pendant des variables (Missing Completely at Random &#8211; MCAR) ou si elles r\u00e9v\u00e8lent un biais syst\u00e9matique d&rsquo;attrition ou de refus de r\u00e9ponse qui alt\u00e9rerait l&rsquo;interpr\u00e9tation substantielle de la distance calcul\u00e9e.<\/p>\n<h3>6.2 Adaptation de la fonction personnalis\u00e9e avec l&rsquo;argument na.rm<\/h3>\n<p>Pour conf\u00e9rer \u00e0 une fonction personnalis\u00e9e la souplesse op\u00e9ratoire n\u00e9cessaire face aux donn\u00e9es r\u00e9elles, il est courant d&rsquo;adjoindre \u00e0 sa signature formelle un argument bool\u00e9en, traditionnellement baptis\u00e9 <em>na.rm<\/em>, dot\u00e9 d&rsquo;une valeur par d\u00e9faut fix\u00e9e \u00e0 <em>FALSE<\/em> afin de pr\u00e9server la rigueur analytique.<\/p>\n<p>Lorsque l&rsquo;utilisateur bascule d\u00e9lib\u00e9r\u00e9ment ce commutateur \u00e0 <em>TRUE<\/em>, la routine doit appliquer une strat\u00e9gie d&rsquo;omission par paires (pairwise deletion). Cette modalit\u00e9 consiste \u00e0 restreindre temporairement l&rsquo;espace g\u00e9om\u00e9trique aux seules dimensions pour lesquelles les coordonn\u00e9es des deux observations sont simultan\u00e9ment connues et valides. Sur le plan programmatique, un masque logique conjoint est construit en combinant les n\u00e9gations des tests de valeurs manquantes par l&rsquo;interm\u00e9diaire de l&rsquo;op\u00e9rateur bool\u00e9en ET \u00e9l\u00e9ment par \u00e9l\u00e9ment : <em>!is.na(u) &#038; !is.na(v)<\/em>. Les deux vecteurs sont alors filtr\u00e9s par ce vecteur d&rsquo;indexation logique avant de proc\u00e9der \u00e0 la soustraction et \u00e0 la sommation quadratique.<\/p>\n<p>N\u00e9anmoins, cette omission brute introduit un biais g\u00e9om\u00e9trique majeur qu&rsquo;il importe de corriger arithm\u00e9tiquement : la distance euclidienne est une fonction strictement croissante du nombre de dimensions additionn\u00e9es sous le radical. Calculer la distance brute sur 8 dimensions disponibles pour un couple de sujets et sur 10 dimensions pour un autre couple engendre une sous-estimation syst\u00e9matique de la divergence du premier couple. Pour rem\u00e9dier \u00e0 cette distorsion, une pond\u00e9ration proportionnelle doit \u00eatre appliqu\u00e9e, consistant \u00e0 multiplier la somme des carr\u00e9s observ\u00e9e par le ratio entre la dimensionnalit\u00e9 th\u00e9orique totale et le nombre effectif de dimensions conjointement renseign\u00e9es, r\u00e9tablissant ainsi une m\u00e9trique comparable \u00e0 \u00e9chelle constante.<\/p>\n<h3>6.3 M\u00e9thodes d&rsquo;imputation pr\u00e9alable adapt\u00e9es aux donn\u00e9es psychom\u00e9triques<\/h3>\n<p>Bien que l&rsquo;omission par paires offre un palliatif algorithmique rapide, la m\u00e9thodologie quantitative moderne lui pr\u00e9f\u00e8re g\u00e9n\u00e9ralement le recours \u00e0 des protocoles formalis\u00e9s d&rsquo;imputation pr\u00e9alable. Cette strat\u00e9gie vise \u00e0 estimer de mani\u00e8re scientifiquement plausible les donn\u00e9es lacunaires en amont de toute d\u00e9marche g\u00e9om\u00e9trique, pr\u00e9servant ainsi l&rsquo;int\u00e9gralit\u00e9 de l&rsquo;\u00e9chantillon au sein d&rsquo;un espace vectoriel complet.<\/p>\n<p>Plusieurs niveaux de sophistication m\u00e9thodologique coexistent dans l&rsquo;\u00e9cosyst\u00e8me R :<\/p>\n<ul>\n<li><strong>L&rsquo;imputation univari\u00e9e simple :<\/strong> Elle remplace chaque valeur manquante par la moyenne ou la m\u00e9diane conditionnelle de la variable calcul\u00e9e sur le reste de la cohorte. Quoique triviale \u00e0 impl\u00e9menter, cette approche a pour d\u00e9faut majeur de comprimer artificiellement la variance empirique de la variable et de distordre les corr\u00e9lations bivari\u00e9es entre attributs.<\/li>\n<li><strong>L&rsquo;imputation par les <em>k<\/em> plus proches voisins (k-NN) :<\/strong> Largement mobilis\u00e9e en apprentissage statistique, cette m\u00e9thode \u00e9value la proximit\u00e9 g\u00e9om\u00e9trique des sujets sur les seules composantes observables afin d&rsquo;identifier les profils les plus analogues, dont les scores connus sont ensuite emprunt\u00e9s pour renseigner les valeurs lacunaires du sujet incomplet.<\/li>\n<li><strong>L&rsquo;imputation multiple par \u00e9quations cha\u00een\u00e9es (MICE) :<\/strong> Impl\u00e9ment\u00e9e dans le package de r\u00e9f\u00e9rence <em>mice<\/em>, cette approche mod\u00e9lise chaque variable incompl\u00e8te par r\u00e9gression conditionnelle sur l&rsquo;ensemble des autres attributs, g\u00e9n\u00e9rant une pluralit\u00e9 de jeux de donn\u00e9es imput\u00e9s int\u00e9grant formellement l&rsquo;incertitude stochastique li\u00e9e \u00e0 l&rsquo;absence d&rsquo;observation.<\/li>\n<\/ul>\n<p>Le choix de la proc\u00e9dure d&rsquo;imputation doit \u00eatre syst\u00e9matiquement justifi\u00e9 dans les rapports de recherche, dans la mesure o\u00f9 chaque algorithme de remplacement modifie subtilement la topologie des voisinages et peut infl\u00e9chir les distances euclidiennes calcul\u00e9es subs\u00e9quemment entre les sujets de l&rsquo;\u00e9tude.<\/p>\n<h2>7. Utilisation approfondie de la fonction native dist() de R<\/h2>\n<p>Si la conception de fonctions sur mesure poss\u00e8de une ind\u00e9niable valeur heuristique et p\u00e9dagogique, le traitement d&rsquo;\u00e9chantillons volumineux requiert des outils optimis\u00e9s au niveau de l&rsquo;architecture mat\u00e9rielle. La fonction primitive <em>dist()<\/em>, int\u00e9gr\u00e9e au package fondamental <em>stats<\/em> de R, constitue le composant standard universellement employ\u00e9 \u00e0 cet effet.<\/p>\n<h3>7.1 Syntaxe, arguments fondamentaux et fonctionnement interne de dist()<\/h3>\n<p>La fonction <em>dist()<\/em> se distingue fondamentalement par son mode op\u00e9ratoire : elle n&rsquo;a pas \u00e9t\u00e9 con\u00e7ue pour comparer deux vecteurs isol\u00e9s, mais pour calculer de fa\u00e7on exhaustive la matrice de distance compl\u00e8te s\u00e9parant l&rsquo;ensemble des lignes d&rsquo;un tableau matriciel. Sa signature standard accepte une matrice ou un data frame num\u00e9rique en premier argument principal, compl\u00e9t\u00e9 par plusieurs param\u00e8tres d&rsquo;ajustement m\u00e9thodologique.<\/p>\n<p>Le param\u00e8tre <em>method<\/em> d\u00e9finit la m\u00e9trique g\u00e9om\u00e9trique \u00e0 mobiliser. Sa valeur par d\u00e9faut est pr\u00e9cis\u00e9ment fix\u00e9e \u00e0 la cha\u00eene de caract\u00e8res \u00ab\u00a0euclidean\u00a0\u00bb, ce qui confirme la pr\u00e9\u00e9minence de cette norme au sein de l&rsquo;environnement R. L&rsquo;utilisateur peut \u00e9galement solliciter d&rsquo;autres m\u00e9triques telles que les distances \u00ab\u00a0maximum\u00a0\u00bb, \u00ab\u00a0manhattan\u00a0\u00bb, \u00ab\u00a0canberra\u00a0\u00bb, \u00ab\u00a0binary\u00a0\u00bb ou \u00ab\u00a0minkowski\u00a0\u00bb (cette derni\u00e8re exigeant la sp\u00e9cification conjointe de la puissance <em>p<\/em> via l&rsquo;argument d\u00e9di\u00e9).<\/p>\n<p>Sur le plan de l&rsquo;architecture logicielle, <em>dist()<\/em> ne mobilise aucune boucle it\u00e9rative interpr\u00e9t\u00e9e en R. L&rsquo;ensemble des op\u00e9rations tensorielles est d\u00e9l\u00e9gu\u00e9 \u00e0 une routine hautement optimis\u00e9e cod\u00e9e en C. Cette routine tire parti de la sym\u00e9trie axiomatique de la distance m\u00e9trique : la distance entre l&rsquo;observation <em>i<\/em> et l&rsquo;observation <em>j<\/em> \u00e9tant rigoureusement identique \u00e0 la distance entre <em>j<\/em> et <em>i<\/em>, et la distance d&rsquo;un \u00e9l\u00e9ment avec lui-m\u00eame \u00e9tant invariablement nulle, l&rsquo;algorithme ne calcule que la partie triangulaire strictement inf\u00e9rieure de la matrice de proximit\u00e9. Pour un ensemble de <em>N<\/em> observations, le nombre de calculs scalaires \u00e9l\u00e9mentaires se trouve ainsi r\u00e9duit exactement \u00e0 <em>N<\/em>(<em>N<\/em> &#8211; 1) \/ 2 op\u00e9rations, \u00e9conomisant la moiti\u00e9 du temps processeur comparativement \u00e0 une approche matricielle na\u00efve.<\/p>\n<h3>7.2 Manipulation et conversion des objets de classe dist<\/h3>\n<p>L&rsquo;ex\u00e9cution de la fonction <em>dist()<\/em> ne renvoie pas une matrice carr\u00e9e classique de dimension <em>N<\/em> &times; <em>N<\/em>, mais un objet dot\u00e9 d&rsquo;une classe d&rsquo;encapsulation sp\u00e9cifique intitul\u00e9e formellement <em>dist<\/em>. Ce format interne a \u00e9t\u00e9 sp\u00e9cialement imagin\u00e9 pour pr\u00e9server les ressources de m\u00e9moire vive. Au lieu d&rsquo;allouer de la m\u00e9moire pour les <em>N<\/em><sup>2<\/sup> cases d&rsquo;une matrice sym\u00e9trique redondante contenant une diagonale de z\u00e9ros, l&rsquo;objet stocke uniquement un vecteur unidimensionnel compact rassemblant les coefficients de dissimilarit\u00e9 de la partie triangulaire inf\u00e9rieure ordonn\u00e9s colonne par colonne.<\/p>\n<p>Cet objet est enrichi de m\u00e9tadonn\u00e9es fonctionnelles fix\u00e9es sous forme d&rsquo;attributs internes : la taille <em>Size<\/em> correspondant au nombre d&rsquo;observations initiales, les \u00e9tiquettes nominatives des lignes <em>Labels<\/em>, ainsi que deux indicateurs bool\u00e9ens <em>Diag<\/em> et <em>Upper<\/em> gouvernant les modalit\u00e9s d&rsquo;affichage textuel par la fonction g\u00e9n\u00e9rique <em>print()<\/em>. Cette optimisation structurelle divise l&#8217;empreinte m\u00e9moire d&rsquo;un facteur sup\u00e9rieur \u00e0 deux, un b\u00e9n\u00e9fice hautement appr\u00e9ciable lors de la manipulation de cohortes comprenant plusieurs milliers de sujets.<\/p>\n<p>Cependant, de nombreuses routines analytiques ou graphiques requi\u00e8rent l&rsquo;indexation directe des proximit\u00e9s sous forme bidimensionnelle classique. La coercition d&rsquo;un objet de classe <em>dist<\/em> en une matrice carr\u00e9e conventionnelle s&rsquo;op\u00e8re ais\u00e9ment via la fonction g\u00e9n\u00e9rique <em>as.matrix()<\/em>. Cette transformation produit une matrice sym\u00e9trique standard dont la diagonale principale est garnie de z\u00e9ros parfaits. L&rsquo;utilisateur peut d\u00e8s lors solliciter l&rsquo;indexation cart\u00e9sienne classique par coordonn\u00e9es num\u00e9riques ou nominatives entre crochets pour extraire la distance s\u00e9parant n&rsquo;importe quelle paire d&rsquo;individus identifi\u00e9s.<\/p>\n<h3>7.3 Comparaison fonctionnelle entre la fonction manuelle et dist()<\/h3>\n<p>Face \u00e0 la dualit\u00e9 m\u00e9thodologique entre la routine vectoris\u00e9e manuelle d\u00e9velopp\u00e9e en section 2 et la fonction native <em>dist()<\/em>, l&rsquo;analyste doit arbitrer en fonction du contexte applicatif et de la topologie de ses donn\u00e9es :<\/p>\n<ul>\n<li><strong>Cas de la fonction manuelle :<\/strong> Elle s&rsquo;av\u00e8re parfaitement adapt\u00e9e, concise et intuitive lorsqu&rsquo;il s&rsquo;agit de comparer strictement deux observations isol\u00e9es (deux vecteurs de variables) ou de calculer la divergence g\u00e9om\u00e9trique s\u00e9parant deux colonnes sp\u00e9cifiques au sein d&rsquo;un pipeline d&rsquo;analyse modulaire.<\/li>\n<li><strong>Cas de la primitive native dist() :<\/strong> Elle surpasse sans conteste toute alternative programmatique d\u00e8s lors que l&rsquo;objectif vise \u00e0 calculer la dissimilarit\u00e9 globale de l&rsquo;ensemble des paires d&rsquo;individus constitutifs d&rsquo;un \u00e9chantillon (l&rsquo;analyse par lignes). Son impl\u00e9mentation compil\u00e9e en langage de bas niveau garantit une vitesse d&rsquo;ex\u00e9cution inaccessible aux fonctions interpr\u00e9t\u00e9es.<\/li>\n<\/ul>\n<p>Sur le plan de la fid\u00e9lit\u00e9 num\u00e9rique, les deux approches d\u00e9montrent une convergence math\u00e9matique absolue. Les coefficients de distance scalaires g\u00e9n\u00e9r\u00e9s par la fonction manuelle et les composantes matricielles correspondantes extraites de <em>dist()<\/em> sont identiques jusqu&rsquo;au dernier chiffre significatif g\u00e9r\u00e9 par le format de repr\u00e9sentation \u00e0 virgule flottante double pr\u00e9cision conforme \u00e0 la norme IEEE 754.<\/p>\n<h2>8. Calcul de distances au moyen de packages R sp\u00e9cialis\u00e9s<\/h2>\n<p>Lorsque les architectures de donn\u00e9es s&rsquo;\u00e9cartent des structures matricielles homog\u00e8nes standards ou que les dimensions d&rsquo;\u00e9chantillonnage basculent dans le domaine des donn\u00e9es massives (big data), les fonctions du socle natif de R r\u00e9v\u00e8lent leurs limites computationnelles. L&rsquo;\u00e9cosyst\u00e8me du Comprehensive R Archive Network (CRAN) propose plusieurs extensions sp\u00e9cialis\u00e9es con\u00e7ues pour surmonter ces contraintes.<\/p>\n<h3>8.1 Calcul sur donn\u00e9es mixtes avec daisy() du package cluster<\/h3>\n<p>L&rsquo;un des d\u00e9fis m\u00e9thodologiques les plus r\u00e9currents en recherche observationnelle et clinique r\u00e9side dans l&rsquo;h\u00e9t\u00e9rog\u00e9n\u00e9it\u00e9 typologique des jeux de donn\u00e9es, lesquels conjuguent fr\u00e9quemment des mesures quantitatives continues (\u00e2ge, pression art\u00e9rielle, temps de r\u00e9action), des facteurs binaires dichotomiques (pr\u00e9sence ou absence d&rsquo;un sympt\u00f4me clinique) et des \u00e9chelles qualitatives polytomiques ou ordinales (niveaux socio-\u00e9ducatifs, stades de r\u00e9mission).<\/p>\n<p>Dans cette configuration hybride, l&rsquo;application directe de la distance euclidienne pure s&rsquo;av\u00e8re m\u00e9thodologiquement prohib\u00e9e. Pour surmonter cet \u00e9cueil, le package historique <em>cluster<\/em>, maintenu par Martin Maechler, met \u00e0 disposition la fonction <em>daisy()<\/em>. Cet outil int\u00e8gre de fa\u00e7on native la m\u00e9trique g\u00e9n\u00e9rale de Gower, laquelle \u00e9value la similarit\u00e9 \u00e9l\u00e9mentaire dimension par dimension en adaptant automatiquement la fonction de score au type sous-jacent de la variable (distance absolue standardis\u00e9e pour le quantitatif, co\u00efncidence binaire pour les facteurs qualitatifs, scores de rangs pour les variables ordinales), avant d&rsquo;agr\u00e9ger l&rsquo;ensemble sous forme d&rsquo;une moyenne pond\u00e9r\u00e9e norm\u00e9e entre 0 et 1.<\/p>\n<p>La fonction <em>daisy()<\/em> autorise \u00e9galement l&rsquo;application de la distance euclidienne standard en renseignant l&rsquo;argument <em>metric = \u00ab\u00a0euclidean\u00a0\u00bb<\/em>, tout en int\u00e9grant une option pr\u00e9cieuse d&rsquo;auto-standardisation univari\u00e9e via le param\u00e8tre bool\u00e9en <em>stand = TRUE<\/em>. Cette souplesse op\u00e9ratoire en fait l&rsquo;outil d&rsquo;\u00e9lection pour les praticiens des sciences humaines d\u00e9sireux d&rsquo;harmoniser les \u00e9tapes de pr\u00e9paration m\u00e9trique sans multiplier les lignes d&rsquo;instructions fastidieuses de pr\u00e9-traitement.<\/p>\n<h3>8.2 Calculs matriciels ultra-rapides avec pdist et proxy<\/h3>\n<p>Une limitation structurelle majeure de la fonction native <em>dist()<\/em> r\u00e9side dans son incapacit\u00e9 \u00e0 calculer des distances crois\u00e9es asym\u00e9triques. Elle ne peut calculer que les distances internes aux lignes d&rsquo;une matrice unique <em>X<\/em>. Si un protocole d&rsquo;analyse statistique exige d&rsquo;\u00e9valuer les distances s\u00e9parant un premier ensemble d&rsquo;observations <em>X<\/em> (par exemple un groupe de patients t\u00e9moins) d&rsquo;un second groupe distinct <em>Y<\/em> (un groupe de sujets atteints d&rsquo;une pathologie rare), la seule solution native consisterait \u00e0 fusionner les deux matrices au sein d&rsquo;un grand tableau et \u00e0 appliquer <em>dist()<\/em>. Cette man\u0153uvre implique le calcul inutile et co\u00fbteux de toutes les distances internes \u00e0 <em>X<\/em> et de toutes les distances internes \u00e0 <em>Y<\/em>, gaspillant un volume massif de m\u00e9moire vive.<\/p>\n<p>Le package <em>proxy<\/em> offre une architecture hautement modulable pour palier cette carence. Sa fonction <em>dist()<\/em> surcharg\u00e9e accepte deux jeux de donn\u00e9es distincts <em>x<\/em> et <em>y<\/em> pass\u00e9s conjointement en arguments, calculant strictement la matrice rectangulaire crois\u00e9e des proximit\u00e9s de dimension <em>N<\/em><sub><em>x<\/em><\/sub> &times; <em>N<\/em><sub><em>y<\/em><\/sub>. De surcro\u00eet, <em>proxy<\/em> h\u00e9berge un catalogue \u00e9tendu de dizaines de m\u00e9triques de similarit\u00e9 et autorise l&rsquo;enregistrement de fonctions de distance sur mesure enti\u00e8rement personnalis\u00e9es via son registre interne.<\/p>\n<p>Dans un registre d&rsquo;optimisation encore plus radical, le package <em>pdist<\/em> a \u00e9t\u00e9 programm\u00e9 exclusivement pour maximiser la vitesse computationnelle lors du calcul de matrices rectangulaires crois\u00e9es. D\u00e9velopp\u00e9 en langage C de bas niveau, il \u00e9limine toute surcharge logicielle superflue et calcule directement les distances s\u00e9parant deux ensembles d&rsquo;observations matricielles sans instancier d&rsquo;objets interm\u00e9diaires, constituant une ressource indispensable pour les algorithmes d&rsquo;appariement de cohortes cas-t\u00e9moins et les mod\u00e8les de validation crois\u00e9e pr\u00e9dictive.<\/p>\n<h3>8.3 Acc\u00e9l\u00e9ration computationnelle sur m\u00e9gadonn\u00e9es avec Rfast<\/h3>\n<p>\u00c0 l&rsquo;\u00e8re de la g\u00e9nomique quantitative, de la bio-informatique structurale et de la t\u00e9l\u00e9m\u00e9trie comportementale sur Internet, les analystes sont fr\u00e9quemment confront\u00e9s \u00e0 des matrices de donn\u00e9es contenant des dizaines ou des centaines de milliers d&rsquo;observations individuelles. Dans ces contextes extr\u00eames, les fonctions classiques atteignent un goulot d&rsquo;\u00e9tranglement s\u00e9v\u00e8re li\u00e9 \u00e0 l&rsquo;ex\u00e9cution sur un unique c\u0153ur de calcul processeur et \u00e0 la gestion non parall\u00e8le des transferts de donn\u00e9es en m\u00e9moire.<\/p>\n<p>Le package moderne <em>Rfast<\/em> propose une r\u00e9impl\u00e9mentation compl\u00e8te des calculs statistiques fondamentaux en s&rsquo;appuyant de mani\u00e8re intensive sur la biblioth\u00e8que logicielle C++ de haut niveau <em>Armadillo<\/em> par l&rsquo;interm\u00e9diaire de l&rsquo;interface <em>Rcpp<\/em>. Sa fonction sp\u00e9cialis\u00e9e <em>Dist()<\/em> exploite l&rsquo;architecture multi-c\u0153ur des ordinateurs modernes gr\u00e2ce \u00e0 la parall\u00e9lisation native OpenMP, tout en optimisant l&rsquo;alignement des donn\u00e9es en m\u00e9moire cache mat\u00e9rielle.<\/p>\n<p>Les bancs d&rsquo;essai comparatifs (benchmarks) d\u00e9montrent que sur des volumes d&rsquo;observations atteignant 50 000 \u00e0 100 000 lignes, <em>Rfast::Dist()<\/em> peut surpasser la fonction native <em>stats::dist()<\/em> d&rsquo;un facteur multiplicatif atteignant 5 \u00e0 15 fois la vitesse d&rsquo;ex\u00e9cution de r\u00e9f\u00e9rence, tout en divisant drastiquement les pics d&rsquo;allocation de m\u00e9moire vive. Cependant, l&rsquo;analyste doit veiller scrupuleusement aux limites physiques de sa station de travail : l&rsquo;allocation matricielle finale demeurant proportionnelle au carr\u00e9 du nombre d&rsquo;observations, aucune acc\u00e9l\u00e9ration de bas niveau ne saurait contourner l&rsquo;\u00e9puisement physique de la m\u00e9moire lorsque <em>N<\/em> exc\u00e8de les capacit\u00e9s d&rsquo;adressage du syst\u00e8me d&rsquo;exploitation.<\/p>\n<h2>9. N\u00e9cessit\u00e9 critique de la standardisation des variables en amont<\/h2>\n<p>L&rsquo;utilisation de la distance euclidienne sans examen critique pr\u00e9alable des \u00e9chelles de mesure constitue sans conteste l&rsquo;\u00e9cueil m\u00e9thodologique le plus s\u00e9v\u00e8re et le plus d\u00e9vastateur rencontr\u00e9 dans la litt\u00e9rature empirique appliqu\u00e9e. En raison de sa construction g\u00e9om\u00e9trique rigide, cette m\u00e9trique est incapable de s&rsquo;auto-calibrer face aux disparit\u00e9s d&rsquo;unit\u00e9s de mesure.<\/p>\n<h3>9.1 Vuln\u00e9rabilit\u00e9 de la distance euclidienne aux disparit\u00e9s d&rsquo;\u00e9chelle<\/h3>\n<p>Dans l&rsquo;espace g\u00e9om\u00e9trique affine r\u00e9el, chaque axe orthogonal contribue \u00e0 l&rsquo;\u00e9valuation de l&rsquo;hypot\u00e9nuse multidimensionnelle au travers de la grandeur num\u00e9rique absolue de son \u00e9cart diff\u00e9rentiel. Par cons\u00e9quent, une variable caract\u00e9ris\u00e9e par des valeurs num\u00e9riques massives exercera une domination \u00e9crasante et quasi exclusive sur la somme des carr\u00e9s, rel\u00e9guant les variables s&rsquo;exprimant sur des \u00e9chelles num\u00e9riques resserr\u00e9es au rang de r\u00e9sidus totalement n\u00e9gligeables.<\/p>\n<p>Consid\u00e9rons une \u00e9tude clinique en neuropsychologie \u00e9valuant simultan\u00e9ment le temps de r\u00e9action motrice d&rsquo;un individu \u00e0 un stimulus lumineux (exprim\u00e9 en millisecondes et fluctuant couramment entre 200 et 800 unit\u00e9s) et son score d&rsquo;anxi\u00e9t\u00e9 \u00e9valu\u00e9 sur une \u00e9chelle psychom\u00e9trique standardis\u00e9e variant de 1 \u00e0 10. Si deux sujets pr\u00e9sentent un \u00e9cart temporel modeste de 50 millisecondes, le terme quadratique correspondant injectera 2 500 unit\u00e9s sous le radical euclidien. En regard, l&rsquo;\u00e9cart maximal concevable sur l&rsquo;\u00e9chelle d&rsquo;anxi\u00e9t\u00e9 (9 unit\u00e9s d&rsquo;\u00e9cart absolu) ne g\u00e9n\u00e9rera qu&rsquo;un carr\u00e9 maximal de 81 unit\u00e9s.<\/p>\n<p>Le constat math\u00e9matique est sans appel : la dimension du temps de r\u00e9action \u00e9touffe litt\u00e9ralement la dimension psychologique d&rsquo;un facteur d&rsquo;\u00e9chelle sup\u00e9rieur \u00e0 30, sans qu&rsquo;aucun fondement scientifique ne vienne l\u00e9gitimer cette pr\u00e9pond\u00e9rance artificielle. Les relations de proximit\u00e9 calcul\u00e9es dans cet espace ne refl\u00e9teront nullement la similarit\u00e9 conjointe des deux attributs, mais uniquement les variations enregistr\u00e9es sur la variable dont l&rsquo;unit\u00e9 empirique produit les plus grands nombres. La distance euclidienne est donc fondamentalement tributaire du syst\u00e8me m\u00e9trique arbitrairement s\u00e9lectionn\u00e9 par l&rsquo;exp\u00e9rimentateur (mesurer une longueur en millim\u00e8tres plut\u00f4t qu&rsquo;en kilom\u00e8tres amplifie artificiellement son poids g\u00e9om\u00e9trique d&rsquo;un facteur un million au carr\u00e9).<\/p>\n<h3>9.2 Techniques de centrage et de r\u00e9duction avec scale()<\/h3>\n<p>Pour neutraliser ce biais dimensionnel et conf\u00e9rer un poids statistique \u00e9quilibr\u00e9 et rigoureusement \u00e9gal \u00e0 chaque composante dans l&rsquo;espace g\u00e9om\u00e9trique, il est imp\u00e9ratif d&rsquo;appliquer aux variables un protocole de standardisation univari\u00e9e pr\u00e9alablement \u00e0 tout calcul m\u00e9trique. La m\u00e9thode la plus universellement consacr\u00e9e en statistique param\u00e9trique est le centrage-r\u00e9duction, conduisant \u00e0 la d\u00e9rivation des scores Z (Z-scores).<\/p>\n<p>Dans l&rsquo;environnement R, cette op\u00e9ration s&rsquo;ex\u00e9cute de mani\u00e8re \u00e9l\u00e9gante et directe gr\u00e2ce \u00e0 la fonction g\u00e9n\u00e9rique <em>scale()<\/em>. Appliqu\u00e9e \u00e0 une matrice ou \u00e0 un data frame num\u00e9rique, <em>scale()<\/em> soustrait \u00e0 chaque observation la moyenne arithm\u00e9tique de sa colonne respective (centrage) puis divise l&rsquo;\u00e9cart obtenu par l&rsquo;\u00e9cart-type empirique de cette m\u00eame colonne (r\u00e9duction). \u00c0 l&rsquo;issue de cette transformation lin\u00e9aire, chaque dimension transform\u00e9e pr\u00e9sente une moyenne rigoureusement \u00e9gale \u00e0 0 et une variance unitaire (\u00e9cart-type \u00e9gal \u00e0 1).<\/p>\n<p>D&rsquo;autres alternatives m\u00e9thodologiques de normalisation peuvent \u00eatre mobilis\u00e9es en fonction de la structure des distributions :<\/p>\n<ul>\n<li><strong>La normalisation min-max :<\/strong> Cette transformation applique une mise \u00e0 l&rsquo;\u00e9chelle lin\u00e9aire born\u00e9e contraignant l&rsquo;ensemble des valeurs \u00e0 r\u00e9sider strictement au sein de l&rsquo;intervalle [0, 1]. Elle s&rsquo;obtient en soustrayant le minimum empirique de la variable et en divisant la diff\u00e9rence par l&rsquo;\u00e9tendue (l&rsquo;\u00e9cart entre le maximum et le minimum). Elle s&rsquo;av\u00e8re particuli\u00e8rement appropri\u00e9e lorsque les donn\u00e9es doivent alimenter des r\u00e9seaux de neurones ou des classificateurs sensibles aux bornes strictes.<\/li>\n<li><strong>La standardisation robuste :<\/strong> Lorsque les distributions empiriques sont asym\u00e9triques ou contamin\u00e9es par des valeurs aberrantes massives qui fausseraient le calcul de la moyenne et de l&rsquo;\u00e9cart-type, il est pr\u00e9f\u00e9rable de centrer les variables sur leur m\u00e9diane et de les r\u00e9duire par leur \u00e9cart interquartile (Interquartile Range &#8211; IQR) ou par la d\u00e9viation absolue m\u00e9diane (Median Absolute Deviation &#8211; MAD).<\/li>\n<\/ul>\n<h3>9.3 \u00c9tude comparative : matrices de distance sur donn\u00e9es brutes vs normalis\u00e9es<\/h3>\n<p>La d\u00e9monstration empirique de la distorsion m\u00e9trique provoqu\u00e9e par l&rsquo;absence de normalisation s&rsquo;illustre avec \u00e9clat lorsqu&rsquo;on proc\u00e8de \u00e0 une analyse comparative crois\u00e9e des matrices de proximit\u00e9 g\u00e9n\u00e9r\u00e9es sur un m\u00eame jeu de donn\u00e9es h\u00e9t\u00e9rog\u00e8ne avant et apr\u00e8s ex\u00e9cution de la fonction <em>scale()<\/em>.<\/p>\n<p>En observant les classements de proximit\u00e9 ordonn\u00e9s entre les paires de sujets, on constate r\u00e9guli\u00e8rement un bouleversement complet de la topologie de l&rsquo;espace. Deux observations qui apparaissaient extr\u00eamement distantes sur les donn\u00e9es brutes \u2014 en raison d&rsquo;une divergence modeste sur une variable \u00e0 forte amplitude num\u00e9rique \u2014 se r\u00e9v\u00e8lent \u00eatre de proches voisines une fois les coordonn\u00e9es ramen\u00e9es \u00e0 des dispersions unitaires \u00e9quivalentes. Inversement, des individus artificiellement d\u00e9clar\u00e9s similaires sur donn\u00e9es brutes peuvent voir leur divergence g\u00e9om\u00e9trique \u00e9clater d\u00e8s lors que leurs \u00e9carts sur les petites \u00e9chelles psychom\u00e9triques sont ad\u00e9quatement valoris\u00e9s.<\/p>\n<p>Sur le plan de l&rsquo;inf\u00e9rence statistique formelle, la congruence entre ces deux matrices de distance peut \u00eatre quantifi\u00e9e par le test de corr\u00e9lation matricielle de Mantel, disponible dans le package <em>vegan<\/em> ou <em>ade4<\/em>. Ce test \u00e9value la corr\u00e9lation de Pearson ou de Spearman entre les \u00e9l\u00e9ments homologues des parties triangulaires inf\u00e9rieures des deux matrices tout en appliquant des permutations al\u00e9atoires de rang\u00e9es pour d\u00e9river la significativit\u00e9 statistique. Une corr\u00e9lation de Mantel modeste ou m\u00e9diocre confirme que l&rsquo;absence de standardisation alt\u00e8re structurellement la g\u00e9om\u00e9trie relationnelle de l&rsquo;\u00e9chantillon, soulignant le caract\u00e8re non n\u00e9gociable de ce pr\u00e9traitement dans toute publication acad\u00e9mique rigoureuse.<\/p>\n<h2>10. Applications pratiques : Typologies et classifications comportementales<\/h2>\n<p>La quantification des distances euclidiennes ne constitue que rarement une fin analytique en soi ; elle mat\u00e9rialise l&rsquo;\u00e9tape pr\u00e9liminaire indispensable \u00e0 l&rsquo;ex\u00e9cution d&rsquo;algorithmes de fouille de donn\u00e9es orient\u00e9s vers la d\u00e9couverte de groupements latents, la taxonomie empirique et la d\u00e9tection d&rsquo;anomalies multidimensionnelles.<\/p>\n<h3>10.1 Algorithme des k-moyennes (k-means) fond\u00e9 sur la minimisation euclidienne<\/h3>\n<p>L&rsquo;algorithme de partitionnement des <em>k<\/em>-moyennes, formalis\u00e9 initialement par Stuart Lloyd et James MacQueen, repr\u00e9sente la technique de classification non supervis\u00e9e la plus largement d\u00e9ploy\u00e9e en science des donn\u00e9es. Son principe fondamental repose sur la minimisation de la variance intra-classe globale, mesur\u00e9e par la somme des carr\u00e9s des distances euclidiennes s\u00e9parant chaque observation du barycentre (le profil moyen multidimensionnel) du groupe auquel elle est assign\u00e9e.<\/p>\n<p>Au sein de l&rsquo;environnement R, cette proc\u00e9dure est mise en \u0153uvre de fa\u00e7on native via la fonction <em>kmeans()<\/em>. L&rsquo;algorithme op\u00e8re par raffinements it\u00e9ratifs successifs :<\/p>\n<ul>\n<li><strong>Phase d&rsquo;affectation :<\/strong> Les observations sont temporairement rattach\u00e9es au centre de gravit\u00e9 le plus proche selon la m\u00e9trique euclidienne canonique.<\/li>\n<li><strong>Phase de mise \u00e0 jour :<\/strong> Les coordonn\u00e9es des centro\u00efdes sont recalcul\u00e9es en extrayant la moyenne arithm\u00e9tique des variables sur l&rsquo;ensemble des points venant d&rsquo;\u00eatre assign\u00e9s \u00e0 chaque groupe respectif.<\/li>\n<li><strong>Convergence :<\/strong> Les deux \u00e9tapes pr\u00e9c\u00e9dentes alternent de mani\u00e8re cyclique jusqu&rsquo;\u00e0 ce que la composition des partitions se stabilise compl\u00e8tement ou que le nombre maximal d&rsquo;it\u00e9rations soit atteint.<\/li>\n<\/ul>\n<p>Il importe de souligner avec force que le partitionnement des <em>k<\/em>-moyennes n&rsquo;est math\u00e9matiquement coh\u00e9rent qu&rsquo;avec la distance euclidienne standard. Vouloir substituer arbitrairement une autre m\u00e9trique (comme la distance de Manhattan ou de Corr\u00e9lation) au sein du sch\u00e9ma algorithmique de <em>kmeans()<\/em> conventionnel g\u00e9n\u00e8re un conflit th\u00e9orique majeur : la moyenne arithm\u00e9tique ne constitue le minimiseur optimal de dispersion que pour la somme des r\u00e9sidus quadratiques (norme <em>L<\/em><sub>2<\/sub>). L&rsquo;usage d&rsquo;une distance de Manhattan exigerait de d\u00e9river les m\u00e9dianes multidimensionnelles (algorithme <em>k<\/em>-m\u00e9dianes), sous peine de violer les garanties formelles de convergence asymptotique.<\/p>\n<h3>10.2 Classification ascendante hi\u00e9rarchique (CAH) avec hclust()<\/h3>\n<p>Une d\u00e9marche typologique alternative fort pris\u00e9e en psychologie cognitive et en \u00e9cologie quantitative r\u00e9side dans la Classification Ascendante Hi\u00e9rarchique (CAH), laquelle ne postule aucun nombre de classes fix\u00e9 <em>a priori<\/em> et d\u00e9livre un arbre relationnel continu connu sous le nom de dendrogramme. Dans R, cette proc\u00e9dure s&rsquo;articule directement sur la fonction native <em>hclust()<\/em>, dont l&rsquo;architecture logicielle requiert explicitement un objet de classe <em>dist<\/em> en entr\u00e9e principale.<\/p>\n<p>La CAH proc\u00e8de par agr\u00e9gations ascendantes s\u00e9quentielles : au point de d\u00e9part de l&rsquo;algorithme, chaque observation constitue une classe singuli\u00e8re isol\u00e9e. \u00c0 chaque \u00e9tape it\u00e9rative, l&rsquo;algorithme identifie les deux entit\u00e9s les plus proches g\u00e9ographiquement au sein de la matrice de distance euclidienne et les fusionne pour former un agr\u00e9gat conjoint. La distance s\u00e9parant ce nouveau groupe des autres observations r\u00e9siduelles est ensuite actualis\u00e9e selon le crit\u00e8re d&rsquo;agr\u00e9gation formel sp\u00e9cifi\u00e9 dans l&rsquo;argument <em>method<\/em> :<\/p>\n<ul>\n<li><strong>Le lien simple (single linkage) :<\/strong> D\u00e9finit la dissimilarit\u00e9 inter-groupes comme la distance euclidienne minimale reliant deux observations issues de chacun des deux agr\u00e9gats. Ce crit\u00e8re a pour d\u00e9faut d&rsquo;induire des ph\u00e9nom\u00e8nes pernicieux de cha\u00eenage continu.<\/li>\n<li><strong>Le lien complet (complete linkage) :<\/strong> Retient la distance euclidienne maximale entre \u00e9l\u00e9ments des groupes, favorisant la gen\u00e8se d&rsquo;agr\u00e9gats particuli\u00e8rement compacts et homog\u00e8nes.<\/li>\n<li><strong>La m\u00e9thode de Ward (Ward.D2) :<\/strong> Fond\u00e9e sur la th\u00e9orie de la d\u00e9composition de la variance de Huygens, cette m\u00e9thode minimise l&rsquo;accroissement de la variance intra-classe cons\u00e9cutif \u00e0 chaque fusion. Elle constitue la transposition hi\u00e9rarchique directe de la philosophie des <em>k<\/em>-moyennes et repr\u00e9sente le crit\u00e8re de choix standard lorsque la matrice sous-jacente est issue de la distance euclidienne.<\/li>\n<\/ul>\n<p>Le trac\u00e9 graphique du dendrogramme r\u00e9sultant, g\u00e9n\u00e9r\u00e9 par l&rsquo;application de la fonction g\u00e9n\u00e9rique <em>plot()<\/em> sur l&rsquo;objet retourn\u00e9 par <em>hclust()<\/em>, offre une visualisation hi\u00e9rarchique de l&rsquo;organisation structurelle de la cohorte. Le choix du seuil optimal de troncature de l&rsquo;arbre (cut-off point), ex\u00e9cutable via la commande <em>cutree()<\/em>, permet d&rsquo;isoler une partition discr\u00e8te scientifiquement robuste et th\u00e9oriquement interpr\u00e9table.<\/p>\n<h3>10.3 D\u00e9tection d&rsquo;observations atypiques multivari\u00e9es (outliers g\u00e9om\u00e9triques)<\/h3>\n<p>Dans les vastes r\u00e9pertoires de donn\u00e9es empiriques, l&rsquo;identification des observations discordantes ou aberrantes s&rsquo;av\u00e8re fondamentale pour pr\u00e9venir les distorsions d&rsquo;estimation statistique. Si la d\u00e9tection univari\u00e9e classique repose sur l&rsquo;examen des \u00e9carts-types marginaux ou des diagrammes de Tukey, ces approches \u00e9chouent totalement \u00e0 rep\u00e9rer les valeurs atypiques multivari\u00e9es : un individu peut pr\u00e9senter des valeurs parfaitement banales et centrales sur chaque variable analys\u00e9e individuellement, tout en incarnant une configuration d&rsquo;association \u00e9minemment anormale dans l&rsquo;espace multidimensionnel conjoint.<\/p>\n<p>La g\u00e9om\u00e9trie euclidienne offre une technique de d\u00e9tection directe par le calcul de l&rsquo;\u00e9cart spatial reliant chaque observation au centre de gravit\u00e9 multidimensionnel de l&rsquo;\u00e9chantillon. En d\u00e9terminant le vecteur des moyennes globales de la cohorte (le centro\u00efde empirique), l&rsquo;analyste peut solliciter la fonction de distance euclidienne pour calculer la distance s\u00e9parant chaque profil individuel de ce point d&rsquo;ancrage central. Les sujets exhibant des distances exc\u00e9dant un seuil probabiliste critique (par exemple d\u00e9fini au-del\u00e0 du troisi\u00e8me quartile major\u00e9 de trois fois l&rsquo;\u00e9cart interquartile de la distribution des distances) sont formellement isol\u00e9s pour examen clinique ou m\u00e9thodologique.<\/p>\n<p>Il est cependant imp\u00e9ratif d&rsquo;\u00e9mettre une r\u00e9serve statistique majeure concernant cette approche : la distance euclidienne postule l&rsquo;absence de corr\u00e9lation lin\u00e9aire entre les axes dimensionnels. Si deux variables psychologiques mesur\u00e9es pr\u00e9sentent une corr\u00e9lation empirique \u00e9lev\u00e9e (par exemple <em>r<\/em> = 0,85), la dispersion naturelle des observations dans le plan bidimensionnel n&rsquo;adopte plus une forme sph\u00e9rique circulaire, mais s&rsquo;\u00e9tire le long d&rsquo;une ellipse inclin\u00e9e. Dans cette configuration, un point situ\u00e9 perpendiculairement au grand axe de l&rsquo;ellipse peut repr\u00e9senter une aberration conceptuelle manifeste tout en pr\u00e9sentant une distance euclidienne brute inf\u00e9rieure \u00e0 celle d&rsquo;un point extr\u00eame mais parfaitement congruent situ\u00e9 \u00e0 l&rsquo;extr\u00e9mit\u00e9 de l&rsquo;ellipse de dispersion. Pour corriger cette myopie g\u00e9om\u00e9trique face aux covariances sous-jacentes, il devient alors indispensable de recourir \u00e0 la distance de Mahalanobis, laquelle pond\u00e8re l&rsquo;\u00e9cart quadratique par l&rsquo;inverse de la matrice de variance-covariance empirique des donn\u00e9es.<\/p>\n<h2>11. Visualisation graphique des relations de distance dans R<\/h2>\n<p>La restitution visuelle des proximit\u00e9s calcul\u00e9es constitue un levier heuristique de premier plan pour communiquer les r\u00e9sultats quantitatifs et v\u00e9rifier intuitivement la validit\u00e9 des mod\u00e8les typologiques. Le langage R dispose d&rsquo;un ensemble exceptionnel d&rsquo;outils graphiques permettant de traduire les structures m\u00e9triques en repr\u00e9sentations cartographiques interactives ou statiques.<\/p>\n<h3>11.1 Repr\u00e9sentation g\u00e9om\u00e9trique bidimensionnelle avec ggplot2<\/h3>\n<p>Le package <em>ggplot2<\/em>, con\u00e7u par Hadley Wickham selon les pr\u00e9ceptes th\u00e9oriques de la grammaire des graphiques formul\u00e9s par Leland Wilkinson, offre un contr\u00f4le typographique et esth\u00e9tique total pour l&rsquo;illustration spatiale directe des distances euclidiennes dans des espaces de petite dimensionnalit\u00e9.<\/p>\n<p>Consid\u00e9rons le cas didactique o\u00f9 deux dimensions psychologiques continues (par exemple, le score de vigilance et le score de pr\u00e9cision motrice) sont projet\u00e9es sur un rep\u00e8re cart\u00e9sien bidimensionnel standard. Les participants \u00e0 l&rsquo;\u00e9tude sont repr\u00e9sent\u00e9s sous la forme de coordonn\u00e9es ponctuelles via la fonction graphique primitive <em>geom_point()<\/em>. Pour mat\u00e9rialiser visuellement la distance euclidienne s\u00e9parant deux observations singuli\u00e8res s\u00e9lectionn\u00e9es \u00e0 des fins de d\u00e9monstration, l&rsquo;analyste peut adjoindre une couche g\u00e9om\u00e9trique explicite au moyen de l&rsquo;instruction <em>geom_segment()<\/em>.<\/p>\n<p>Cette instruction trace le segment rectiligne unissant exactement les coordonn\u00e9es cart\u00e9siennes de d\u00e9part aux coordonn\u00e9es d&rsquo;arriv\u00e9e, illustrant litt\u00e9ralement l&rsquo;hypot\u00e9nuse euclidienne sous-jacente. L&rsquo;int\u00e9gration de la directive <em>geom_text()<\/em> ou <em>annotate()<\/em> permet d&rsquo;inscrire la magnitude num\u00e9rique calcul\u00e9e de la distance \u00e0 proximit\u00e9 imm\u00e9diate du segment g\u00e9om\u00e9trique, enrichissant l&rsquo;iconographie scientifique d&rsquo;indications quantitatives conformes aux standards les plus rigoureux des revues acad\u00e9miques internationales.<\/p>\n<h3>11.2 Cartographie thermique (heatmaps) des matrices de proximit\u00e9<\/h3>\n<p>Lorsque la cohorte d&rsquo;observations grandit, la repr\u00e9sentation ponctuelle directe devient inop\u00e9rante en raison des ph\u00e9nom\u00e8nes d&rsquo;occultation visuelle (overplotting) et de l&rsquo;impossibilit\u00e9 de figurer simultan\u00e9ment des espaces \u00e0 haute dimensionnalit\u00e9. Dans cette conjoncture, la cartographie thermique (heatmap) de la matrice de distance compl\u00e8te fournit une synth\u00e8se visuelle globale de l&rsquo;organisation structurelle de l&rsquo;\u00e9chantillon.<\/p>\n<p>Dans l&rsquo;\u00e9cosyst\u00e8me R contemporain, le package sp\u00e9cialis\u00e9 <em>pheatmap<\/em> (Pretty Heatmaps) s&rsquo;est impos\u00e9 comme l&rsquo;instrument de r\u00e9f\u00e9rence pour cette t\u00e2che, surpassant la fonction native basique <em>heatmap()<\/em>. Lorsqu&rsquo;on lui transmet une matrice de distance euclidienne convertie via <em>as.matrix(dist(donnees))<\/em>, <em>pheatmap<\/em> ex\u00e9cute automatiquement plusieurs op\u00e9rations visuelles et analytiques coordonn\u00e9es :<\/p>\n<ul>\n<li><strong>Ordonnancement hi\u00e9rarchique :<\/strong> La fonction applique une classification ascendante hi\u00e9rarchique simultan\u00e9ment sur les lignes et les colonnes de la matrice, r\u00e9ordonnant les observations de mani\u00e8re \u00e0 agr\u00e9ger spatialement les profils les plus similaires le long de la diagonale principale.<\/li>\n<li><strong>Rendu chromatique continu :<\/strong> Les coefficients scalaires de distance sont traduits en une \u00e9chelle continue de gradients de couleurs. Les proximit\u00e9s g\u00e9om\u00e9triques \u00e9troites (distances proches de z\u00e9ro) s&rsquo;affichent usuellement dans des teintes sombres et satur\u00e9es (ou chromatiquement chaudes), tandis que les fortes divergences g\u00e9om\u00e9triques basculent progressivement vers des nuances claires ou froides.<\/li>\n<li><strong>R\u00e9v\u00e9lation des blocs structurels :<\/strong> L&rsquo;apparition visuelle de pav\u00e9s rectangulaires homog\u00e8nes et contrast\u00e9s le long de la diagonale dendrographique atteste de mani\u00e8re \u00e9clatante de l&rsquo;existence de sous-populations typologiques distinctes au sein de la cohorte explor\u00e9e.<\/li>\n<\/ul>\n<h3>11.3 Positionnement multidimensionnel classique (MDS) avec cmdscale()<\/h3>\n<p>Lorsqu&rsquo;un jeu de donn\u00e9es mobilise un nombre important de variables comportementales ou psychom\u00e9triques (par exemple, un questionnaire comportant 50 items distincts), l&rsquo;espace g\u00e9om\u00e9trique originel r\u00e9side dans <strong>R<\/strong><sup>50<\/sup>, interdisant toute projection visuelle brute. Le Positionnement Multidimensionnel classique (Classical Multidimensional Scaling &#8211; MDS), \u00e9galement d\u00e9sign\u00e9 sous l&rsquo;appellation d&rsquo;analyse en coordonn\u00e9es principales (PCoA), apporte une r\u00e9ponse g\u00e9om\u00e9trique remarquable \u00e0 ce probl\u00e8me de compression spatiale.<\/p>\n<p>La th\u00e9orie du MDS classique repose sur un objectif d&rsquo;optimisation bien d\u00e9fini : trouver une configuration de points dans un espace euclidien de dimension r\u00e9duite (g\u00e9n\u00e9ralement le plan cart\u00e9sien \u00e0 deux dimensions) dont les distances euclidiennes inter-points reconstruites reproduisent le plus fid\u00e8lement possible les distances empiriques originelles mesur\u00e9es dans l&rsquo;espace multidimensionnel complet. Dans le langage R, cette d\u00e9composition spectrale est impl\u00e9ment\u00e9e nativement par la fonction <em>cmdscale()<\/em>, qui op\u00e8re directement sur l&rsquo;objet retourn\u00e9 par la fonction <em>dist()<\/em>.<\/p>\n<p>Sur le plan computationnel, <em>cmdscale()<\/em> applique une transformation de double centrage \u00e0 la matrice des carr\u00e9s des distances, convertissant cette derni\u00e8re en une matrice de produits scalaires crois\u00e9s (matrice de Gram de covariance centr\u00e9e). L&rsquo;algorithme extrait ensuite la d\u00e9composition spectrale en valeurs propres et vecteurs propres de cette structure matricielle, isolant les deux dimensions pr\u00e9pond\u00e9rantes associ\u00e9es aux valeurs propres les plus massives. En projetant les sujets sur ces deux axes cardinaux \u00e9mergents, l&rsquo;analyste obtient une carte spatiale bidimensionnelle directement interpr\u00e9table o\u00f9 les distances visuelles r\u00e9sument de fa\u00e7on optimale les distances euclidiennes multivari\u00e9es d&rsquo;origine.<\/p>\n<p>L&rsquo;\u00e9valuation rigoureuse de cette projection exige l&rsquo;estimation de la qualit\u00e9 d&rsquo;ajustement g\u00e9om\u00e9trique, usuellement appr\u00e9ci\u00e9e par la quantification du stress statistique ou par le ratio de variance accumul\u00e9e par les deux premi\u00e8res valeurs propres positives. Une statistique de stress r\u00e9siduel faible garantit que la repr\u00e9sentation spatiale projet\u00e9e sur l&rsquo;\u00e9cran ou le papier ne trahit pas les proximit\u00e9s multidimensionnelles r\u00e9elles observ\u00e9es au sein de la population exp\u00e9rimentale.<\/p>\n<h2>12. Erreurs courantes, pi\u00e8ges m\u00e9thodologiques et bonnes pratiques<\/h2>\n<p>La ma\u00eetrise de la distance euclidienne en environnement informatique exige enfin une vigilance constante face \u00e0 des chausse-trappes techniques r\u00e9currentes qui pars\u00e8ment les scripts d&rsquo;analyse de donn\u00e9es, ainsi qu&rsquo;une adh\u00e9sion in\u00e9branlable aux principes de la recherche computationnelle reproductible.<\/p>\n<h3>12.1 Pi\u00e8ges syntaxiques et typologiques r\u00e9currents<\/h3>\n<p>M\u00eame chez des praticiens exp\u00e9riment\u00e9s, des erreurs d&rsquo;inattention syntaxique ou d&rsquo;incompr\u00e9hension des structures de donn\u00e9es sous-jacentes engendrent fr\u00e9quemment des anomalies de calcul majeures. L&rsquo;une des b\u00e9vues les plus document\u00e9es concerne l&rsquo;inclusion involontaire de colonnes d&rsquo;identification ou de variables cat\u00e9gorielles non num\u00e9riques au sein du tableau soumis au calcul de distance.<\/p>\n<p>Si un data frame contient une colonne consignant le matricule alphanum\u00e9rique des sujets ou leur genre, l&rsquo;invocation directe de la fonction native <em>dist()<\/em> d\u00e9clenche imm\u00e9diatement une interruption d&rsquo;ex\u00e9cution assortie d&rsquo;un message d&rsquo;erreur signalant l&rsquo;impossibilit\u00e9 de convertir des valeurs textuelles en mode num\u00e9rique. Cependant, si l&rsquo;identifiant individuel a \u00e9t\u00e9 accidentellement cod\u00e9 sous forme de variable enti\u00e8re s\u00e9quentielle (de 1 \u00e0 <em>N<\/em>), R ne l\u00e8vera aucune exception ! Le moteur de calcul traitera cet identifiant num\u00e9rique comme un axe g\u00e9om\u00e9trique \u00e0 part enti\u00e8re, injectant une variable artificielle dont la variance cro\u00eetra avec l&rsquo;ordre de saisie des lignes et corrompant irr\u00e9m\u00e9diablement l&rsquo;espace m\u00e9trique r\u00e9el.<\/p>\n<p>Une autre source d&rsquo;incompr\u00e9hension fr\u00e9quente \u00e9mane de l&rsquo;\u00e9mergence des tableaux de donn\u00e9es modernes de l&rsquo;\u00e9cosyst\u00e8me <em>tidyverse<\/em>, connus sous le nom de <em>tibbles<\/em> (objets de classe <em>tbl_df<\/em>). Contrairement aux data frames natifs de R qui convertissent silencieusement une extraction de colonne unique par crochet simple en un vecteur atomique plat (par le m\u00e9canisme historique <em>drop = TRUE<\/em>), les tibbles pr\u00e9servent rigoureusement leur statut de tableau bidimensionnel lors de toute indexation par crochets. Si un utilisateur tente d&rsquo;injecter une colonne extraite d&rsquo;un tibble par crochet simple dans une fonction math\u00e9matique personnalis\u00e9e attendant un vecteur num\u00e9rique atomique, l&rsquo;\u00e9valuation arithm\u00e9tique \u00e9chouera ou produira des r\u00e9sultats impr\u00e9visibles en raison de l&rsquo;incompatibilit\u00e9 des m\u00e9thodes associ\u00e9es aux structures tabulaires.<\/p>\n<p>Pour immuniser les flux de travail contre ces p\u00e9rils, la bonne pratique pr\u00e9conise d&rsquo;op\u00e9rer une phase de filtrage pr\u00e9alable syst\u00e9matique en mobilisant des instructions d&rsquo;inspection fonctionnelle telles que <em>sapply(donnees, is.numeric)<\/em> afin de n&rsquo;isoler strictement que les colonnes num\u00e9riques valid\u00e9es avant toute tentative de calcul de dissimilarit\u00e9 m\u00e9trique.<\/p>\n<h3>12.2 Optimisation des performances face aux limites de m\u00e9moire vive<\/h3>\n<p>Le traitement des matrices de distance est assujetti \u00e0 une contrainte physique d&rsquo;une implacable s\u00e9v\u00e9rit\u00e9 : la complexit\u00e9 spatiale en m\u00e9moire vive cro\u00eet selon une progression quadratique mod\u00e9lis\u00e9e par la notation grand O, soit <em>O<\/em>(<em>n<\/em><sup>2<\/sup>), o\u00f9 <em>n<\/em> figure le nombre d&rsquo;observations individuelles incluses dans l&rsquo;\u00e9chantillon d&rsquo;analyse.<\/p>\n<p>Pour une cohorte clinique modeste de 1 000 participants, la matrice sym\u00e9trique compl\u00e8te ne mobilise qu&rsquo;un million d&rsquo;\u00e9l\u00e9ments scalaires, soit une empreinte m\u00e9moire d\u00e9risoire d&rsquo;environ 8 m\u00e9gaoctets en repr\u00e9sentation \u00e0 virgule flottante double pr\u00e9cision. En revanche, si la taille de l&rsquo;\u00e9chantillon passe \u00e0 50 000 observations (une volum\u00e9trie courante dans les biobanques de sant\u00e9 publique ou les bases de donn\u00e9es d&rsquo;apprentissage automatique), la matrice int\u00e9grale requiert l&rsquo;allocation de 2,5 milliards de nombres d\u00e9cimaux, exigeant instantan\u00e9ment pr\u00e8s de 20 gigaoctets de m\u00e9moire vive continue.<\/p>\n<p>Face \u00e0 cette explosion combinatoire, le moteur R standard d\u00e9clenche in\u00e9luctablement l&rsquo;erreur fatale bien connue des analystes : \u00ab\u00a0vector memory limit exhausted\u00a0\u00bb (ou \u00ab\u00a0cannot allocate vector of size&#8230;\u00a0\u00bb), traduisant l&rsquo;incapacit\u00e9 du syst\u00e8me d&rsquo;exploitation \u00e0 assigner un bloc contigu de m\u00e9moire suffisant au processus R. Pour contourner cette impasse structurelle sans investissements mat\u00e9riels d\u00e9mesur\u00e9s, plusieurs strat\u00e9gies alternatives de haut vol doivent \u00eatre envisag\u00e9es :<\/p>\n<ul>\n<li><strong>L&rsquo;\u00e9chantillonnage repr\u00e9sentatif stratifi\u00e9 :<\/strong> R\u00e9duire la taille de l&rsquo;\u00e9chantillon global en extrayant un sous-ensemble probabiliste homog\u00e8ne pr\u00e9servant la distribution d\u00e9mographique et clinique des variables fondamentales.<\/li>\n<li><strong>Le calcul it\u00e9ratif par blocs s\u00e9quentiels :<\/strong> Programmer des routines fractionnant la matrice en tuiles matricielles successives trait\u00e9es s\u00e9par\u00e9ment et consign\u00e9es directement sur le disque dur plut\u00f4t que stock\u00e9es simultan\u00e9ment dans la m\u00e9moire volatile.<\/li>\n<li><strong>Les matrices mapp\u00e9es sur disque ou partag\u00e9es :<\/strong> Solliciter des biblioth\u00e8ques d&rsquo;infrastructure avanc\u00e9es telles que <em>bigstatsr<\/em> ou <em>bigmemory<\/em>, lesquelles s&rsquo;appuient sur des fichiers binaires mapp\u00e9s en m\u00e9moire (memory-mapped files) permettant de manipuler des matrices de dimensions colossales exc\u00e9dant la capacit\u00e9 de la RAM physique sans saturer les ressources du syst\u00e8me d&rsquo;exploitation.<\/li>\n<\/ul>\n<h3>12.3 Synth\u00e8se des recommandations pour une recherche empirique reproductible<\/h3>\n<p>L&rsquo;int\u00e9grit\u00e9 de la communication scientifique et la reproductibilit\u00e9 computationnelle des r\u00e9sultats quantitatifs requi\u00e8rent une discipline m\u00e9thodologique sans faille lors de l&rsquo;exploitation de la distance euclidienne dans les publications de recherche empirique. La cons\u00e9cration de quelques directives cardinales permet d&rsquo;assurer la transparence absolue des protocoles analytiques :<\/p>\n<ul>\n<li><strong>Explicitation int\u00e9grale des protocoles de standardisation :<\/strong> Les chercheurs doivent obligatoirement documenter dans la section m\u00e9thodologique de leurs \u00e9crits la nature exacte des transformations scalaires appliqu\u00e9es aux variables en amont du calcul de distance (centrage-r\u00e9duction param\u00e9trique, transformation min-max, normalisation robuste ou absence d\u00e9lib\u00e9r\u00e9e de standardisation pour des donn\u00e9es intrins\u00e8quement homog\u00e8nes).<\/li>\n<li><strong>Fixation rigoureuse des g\u00e9n\u00e9rateurs stochastiques :<\/strong> Si l&rsquo;analyse mobilise des d\u00e9marches d\u00e9pendantes d&rsquo;initialisations al\u00e9atoires \u2014 telles que les centro\u00efdes initiaux de l&rsquo;algorithme des <em>k<\/em>-moyennes ou les protocoles d&rsquo;imputation multiple par \u00e9quations cha\u00een\u00e9es \u2014, l&rsquo;instruction <em>set.seed()<\/em> doit imp\u00e9rativement pr\u00e9c\u00e9der l&rsquo;ex\u00e9cution pour garantir la reproductibilit\u00e9 exacte des matrices et des clusters au bit pr\u00e8s lors de r\u00e9plications ind\u00e9pendantes.<\/li>\n<li><strong>Structuration modulaire et documentation du code source :<\/strong> Le script analytique R doit \u00eatre con\u00e7u sous forme de pipeline \u00e9tanche, s\u00e9gr\u00e9gu\u00e9 en \u00e9tapes ind\u00e9pendantes d&rsquo;importation, de validation des types, de nettoyage des donn\u00e9es manquantes, de calcul m\u00e9trique et d&rsquo;interpr\u00e9tation visuelle, id\u00e9alement enrichi de m\u00e9tadonn\u00e9es de versionnement (session information via <em>sessionInfo()<\/em> consignant les versions pr\u00e9cises de R et des biblioth\u00e8ques mobilis\u00e9es).<\/li>\n<li><strong>Justification \u00e9pist\u00e9mologique du choix m\u00e9trique :<\/strong> Enfin, l&rsquo;analyste se doit de l\u00e9gitimer formellement le choix de la distance euclidienne par rapport aux autres familles de m\u00e9triques disponibles. L&rsquo;adoption de la norme <em>L<\/em><sub>2<\/sub> doit r\u00e9sulter d&rsquo;une ad\u00e9quation v\u00e9rifi\u00e9e entre la nature continue et orthogonale des donn\u00e9es et les propri\u00e9t\u00e9s isotropes de la g\u00e9om\u00e9trie affine euclidienne, garantissant ainsi l&rsquo;alignement parfait entre la th\u00e9orie psychologique ou biologique et la formalisation math\u00e9matique de la dissimilarit\u00e9.<\/li>\n<\/ul>\n<h2>R\u00e9f\u00e9rences<\/h2>\n<p>Chambers, J. M. (2008). <em>Software for data analysis: Programming with R<\/em>. Springer. https:\/\/doi.org\/10.1007\/978-0-387-75936-4<\/p>\n<p>Deza, M. M., &amp; Deza, E. (2016). <em>Encyclopedia of distances<\/em> (4th ed.). Springer. https:\/\/doi.org\/10.1007\/978-3-662-52844-0<\/p>\n<p>Gower, J. C. (1971). A general coefficient of similarity and some of its properties. <em>Biometrics<\/em>, 27(4), 857\u2013871. https:\/\/doi.org\/10.2307\/2528823<\/p>\n<p>Hastie, T., Tibshirani, R., &amp; Friedman, J. (2009). <em>The elements of statistical learning: Data mining, inference, and prediction<\/em> (2nd ed.). Springer. https:\/\/doi.org\/10.1007\/978-0-387-84858-7<\/p>\n<p>Kaufman, L., &amp; Rousseeuw, P. J. (1990). <em>Finding groups in data: An introduction to cluster analysis<\/em>. John Wiley &amp; Sons. https:\/\/doi.org\/10.1002\/9780470316801<\/p>\n<p>Legendre, P., &amp; Legendre, L. (2012). <em>Numerical ecology<\/em> (3rd English ed.). Elsevier. https:\/\/doi.org\/10.1016\/B978-0-444-53868-0.50001-6<\/p>\n<p>Murtagh, F., &amp; Contreras, P. (2012). Algorithms for hierarchical clustering: An overview. <em>WIREs Data Mining and Knowledge Discovery<\/em>, 2(1), 86\u201397. https:\/\/doi.org\/10.1002\/widm.53<\/p>\n<p>R Core Team. (2023). <em>R: A language and environment for statistical computing<\/em>. R Foundation for Statistical Computing. https:\/\/www.R-project.org\/<\/p>\n<p>Shepard, R. N. (1987). Toward a universal law of generalization for psychological science. <em>Science<\/em>, 237(4820), 1317\u20131323. https:\/\/doi.org\/10.1126\/science.3629243<\/p>\n<p>van Buuren, S., &amp; Groothuis-Oudshoorn, K. (2011). mice: Multivariate imputation by chained equations in R. <em>Journal of Statistical Software<\/em>, 45(3), 1\u201367. https:\/\/doi.org\/10.18637\/jss.v045.i03<\/p>\n<p>Wickham, H. (2016). <em>ggplot2: Elegant graphics for data analysis<\/em> (2nd ed.). Springer. https:\/\/doi.org\/10.1007\/978-3-319-24277-4<\/p>\n<p>Wickham, H. (2019). <em>Advanced R<\/em> (2nd ed.). Chapman &amp; Hall\/CRC. https:\/\/doi.org\/10.1201\/9781351201315<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Guide acad\u00e9mique complet pour calculer la distance euclidienne dans R : fonctions personnalis\u00e9es, fonction dist(), exemples concrets et applications.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","categories":[1829,2193],"tags":[3791,3788,3790,2658,3789],"class_list":["post-1782","psych_stat","type-psych_stat","status-publish","hentry","category-methodologie-statistique","category-programmation-r","tag-analyse-multivariee","tag-distance-euclidienne","tag-matrice-de-distance","tag-r","tag-vecteurs"],"_links":{"self":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/1782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat"}],"about":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/types\/psych_stat"}],"author":[{"embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1782"}],"version-history":[{"count":1,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/1782\/revisions"}],"predecessor-version":[{"id":16272,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/1782\/revisions\/16272"}],"wp:attachment":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}