{"id":4537,"date":"2026-09-11T09:11:16","date_gmt":"2026-09-11T09:11:16","guid":{"rendered":"http:\/\/french.arabpsychology.com\/statistics\/comment-effectuer-un-test-f-en-python\/"},"modified":"2026-09-11T09:11:16","modified_gmt":"2026-09-11T09:11:16","slug":"comment-effectuer-un-test-f-en-python","status":"publish","type":"psych_stat","link":"https:\/\/french.arabpsychology.com\/?psych_stat=comment-effectuer-un-test-f-en-python","title":{"rendered":"Comment effectuer un test F en Python"},"content":{"rendered":"<p>L&rsquo;analyse statistique de la dispersion constitue l&rsquo;un des piliers m\u00e9thodologiques les plus d\u00e9terminants de l&rsquo;inf\u00e9rence scientifique moderne. Dans les sciences empiriques, et tout particuli\u00e8rement au sein de la psychologie quantitative, des neurosciences cognitives et de la mod\u00e9lisation comportementale, la variabilit\u00e9 des donn\u00e9es n&rsquo;est jamais un simple r\u00e9sidu al\u00e9atoire ou un bruit de fond n\u00e9gligeable. Elle repr\u00e9sente, au contraire, l&rsquo;expression directe de processus sous-jacents fondamentaux : variations interindividuelles des capacit\u00e9s d&rsquo;adaptation, instabilit\u00e9 attentionnelle, fluctuations temporelles des performances ou encore h\u00e9t\u00e9rog\u00e9n\u00e9it\u00e9 des r\u00e9ponses th\u00e9rapeutiques face \u00e0 un protocole clinique standardis\u00e9.<\/p>\n<p>Pour comparer rigoureusement la dispersion relative de deux \u00e9chantillons ind\u00e9pendants et d\u00e9terminer si leurs variances populationnelles sous-jacentes divergent de mani\u00e8re statistiquement significative, le test d&rsquo;\u00e9galit\u00e9 des variances, commun\u00e9ment d\u00e9sign\u00e9 sous le terme de test F de Fisher-Snedecor, s&rsquo;impose comme une r\u00e9f\u00e9rence math\u00e9matique incontournable. Fond\u00e9 sur l&rsquo;\u00e9valuation du ratio de deux variances d&rsquo;\u00e9chantillons corrig\u00e9es, ce test param\u00e9trique repose sur des postulats distributionnels pr\u00e9cis dont la violation peut radicalement alt\u00e9rer la validit\u00e9 des conclusions exp\u00e9rimentales. La ma\u00eetrise de ses fondements analytiques et de son impl\u00e9mentation computationnelle s&rsquo;av\u00e8re d\u00e8s lors indispensable pour tout chercheur ou praticien de la science des donn\u00e9es d\u00e9sireux de garantir la rigueur de ses analyses inf\u00e9rentielles.<\/p>\n<p>L&rsquo;\u00e9cosyst\u00e8me open-source <a rel=\"noopener noreferrer\" href=\"https:\/\/www.python.org\">Python<\/a>, enrichi par la suite logicielle scientifique regroupant <a rel=\"noopener noreferrer\" href=\"https:\/\/numpy.org\">NumPy<\/a>, <a rel=\"noopener noreferrer\" href=\"https:\/\/scipy.org\">SciPy<\/a> et <a rel=\"noopener noreferrer\" href=\"https:\/\/pandas.pydata.org\">Pandas<\/a>, offre un environnement d&rsquo;une puissance remarquable pour conceptualiser, automatiser et documenter ce type d&rsquo;investigation statistique. Ce guide exhaustif expose l&rsquo;int\u00e9gralit\u00e9 du cadre m\u00e9thodologique et technique aff\u00e9rent au test F : depuis la d\u00e9rivation axiomatique de la loi de Fisher-Snedecor jusqu&rsquo;\u00e0 sa programmation modulaire sans d\u00e9pendance superflue, en passant par le diagnostic s\u00e9v\u00e8re de ses conditions d&rsquo;application, ses alternatives robustes modernes, son extension directe vers l&rsquo;analyse de variance omnibus, et sa formalisation scrupuleuse au sein d&rsquo;un rapport de recherche r\u00e9pondant aux normes les plus exigeantes de la communaut\u00e9 scientifique internationale.<\/p>\n<h2>1. Fondements th\u00e9oriques et math\u00e9matiques du test F d&rsquo;\u00e9galit\u00e9 des variances<\/h2>\n<p>L&rsquo;inf\u00e9rence statistique consacr\u00e9e aux param\u00e8tres d&rsquo;\u00e9chelle n\u00e9cessite la construction d&rsquo;une statistique de test dont la distribution d&rsquo;\u00e9chantillonnage exacte est calculable sous l&rsquo;hypoth\u00e8se nulle. Historiquement d\u00e9velopp\u00e9e par Ronald Fisher et George Snedecor, l&rsquo;analyse du rapport des variances implique une compr\u00e9hension fine des interactions entre les sommes de r\u00e9sidus quadratiques et les lois de probabilit\u00e9 continues.<\/p>\n<h3>1.1 D\u00e9finition de la statistique F et distribution de Fisher-Snedecor<\/h3>\n<p>La statistique F trouve son origine th\u00e9orique dans le comportement conjoint de deux variables al\u00e9atoires ind\u00e9pendantes suivant chacune une distribution du khi-deux. Consid\u00e9rons deux \u00e9chantillons al\u00e9atoires simples issus respectivement de deux populations normales ind\u00e9pendantes <span class=\"arabpsy-math-inline\" data-latex=\"X_1 \\sim \\mathcal{N}(\\mu_1, \\sigma_1^2)\">$X_1 \\sim \\mathcal{N}(\\mu_1, \\sigma_1^2)$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"X_2 \\sim \\mathcal{N}(\\mu_2, \\sigma_2^2)\">$X_2 \\sim \\mathcal{N}(\\mu_2, \\sigma_2^2)$<\/span>, de tailles respectives <span class=\"arabpsy-math-inline\" data-latex=\"n_1\">$n_1$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"n_2\">$n_2$<\/span>. Lorsque les moyennes populationnelles sont inconnues et estim\u00e9es par les moyennes d&rsquo;\u00e9chantillon respectives <span class=\"arabpsy-math-inline\" data-latex=\"\\bar{X}_1\">$\\bar{X}_1$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"\\bar{X}_2\">$\\bar{X}_2$<\/span>, les sommes standardis\u00e9es des d\u00e9viations quadratiques divis\u00e9es par leur variance th\u00e9orique suivent des lois du khi-deux dont les degr\u00e9s de libert\u00e9 correspondent \u00e0 la taille de chaque groupe diminu\u00e9e d&rsquo;une unit\u00e9.<\/p>\n<p>Formellement, les quantit\u00e9s <span class=\"arabpsy-math-inline\" data-latex=\"U_1 = (n_1 - 1)S_1^2 \/ \\sigma_1^2\">$U_1 = (n_1 &#8211; 1)S_1^2 \/ \\sigma_1^2$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"U_2 = (n_2 - 1)S_2^2 \/ \\sigma_2^2\">$U_2 = (n_2 &#8211; 1)S_2^2 \/ \\sigma_2^2$<\/span> suivent respectivement des lois <span class=\"arabpsy-math-inline\" data-latex=\"\\chi^2\">$\\chi^2$<\/span> \u00e0 <span class=\"arabpsy-math-inline\" data-latex=\"\\nu_1 = n_1 - 1\">$\\nu_1 = n_1 &#8211; 1$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"\\nu_2 = n_2 - 1\">$\\nu_2 = n_2 &#8211; 1$<\/span> degr\u00e9s de libert\u00e9. Selon le th\u00e9or\u00e8me fondamental de Fisher, la variable al\u00e9atoire d\u00e9finie par le ratio de ces deux lois du khi-deux, chacune normalis\u00e9e par son propre degr\u00e9 de libert\u00e9, suit par d\u00e9finition une loi de Fisher-Snedecor not\u00e9e <span class=\"arabpsy-math-inline\" data-latex=\"F(\\nu_1, \\nu_2)\">$F(\\nu_1, \\nu_2)$<\/span> :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"F = \\frac{U_1 \/ \\nu_1}{U_2 \/ \\nu_2} = \\frac{S_1^2 \/ \\sigma_1^2}{S_2^2 \/ \\sigma_2^2}\">$$F = \\frac{U_1 \/ \\nu_1}{U_2 \/ \\nu_2} = \\frac{S_1^2 \/ \\sigma_1^2}{S_2^2 \/ \\sigma_2^2}$$<\/span><\/p>\n<p>Sous l&rsquo;hypoth\u00e8se nulle stipulant que les deux variances de population sont strictement identiques (<span class=\"arabpsy-math-inline\" data-latex=\"\\sigma_1^2 = \\sigma_2^2\">$\\sigma_1^2 = \\sigma_2^2$<\/span>), les param\u00e8tres de population se simplifient alg\u00e9briquement, laissant \u00e9merger la statistique de test op\u00e9rationnelle :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"F_{stat} = \\frac{S_1^2}{S_2^2}\">$$F_{stat} = \\frac{S_1^2}{S_2^2}$$<\/span><\/p>\n<p>La densit\u00e9 de probabilit\u00e9 associ\u00e9e \u00e0 la variable <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span> pour des valeurs strictement positives (<span class=\"arabpsy-math-inline\" data-latex=\"f &gt; 0\">$f > 0$<\/span>) est gouvern\u00e9e par la fonction math\u00e9matique suivante, int\u00e9grant la fonction Gamma d&rsquo;Euler <span class=\"arabpsy-math-inline\" data-latex=\"\\Gamma(\\cdot)\">$\\Gamma(\\cdot)$<\/span> :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"f(f; \\nu_1, \\nu_2) = \\frac{1}{\\mathrm{B}\\left(\\frac{\\nu_1}{2}, \\frac{\\nu_2}{2}\\right)} \\left(\\frac{\\nu_1}{\\nu_2}\\right)^{\\frac{\\nu_1}{2}} f^{\\frac{\\nu_1}{2} - 1} \\left(1 + \\frac{\\nu_1}{\\nu_2}f\\right)^{-\\frac{\\nu_1 + \\nu_2}{2}}\">$$f(f; \\nu_1, \\nu_2) = \\frac{1}{\\mathrm{B}\\left(\\frac{\\nu_1}{2}, \\frac{\\nu_2}{2}\\right)} \\left(\\frac{\\nu_1}{\\nu_2}\\right)^{\\frac{\\nu_1}{2}} f^{\\frac{\\nu_1}{2} &#8211; 1} \\left(1 + \\frac{\\nu_1}{\\nu_2}f\\right)^{-\\frac{\\nu_1 + \\nu_2}{2}}$$<\/span><\/p>\n<p>Cette distribution est caract\u00e9ris\u00e9e par une asym\u00e9trie positive marqu\u00e9e, son domaine de d\u00e9finition \u00e9tant strictement born\u00e9 \u00e0 gauche par z\u00e9ro et s&rsquo;\u00e9tendant asymptotiquement vers l&rsquo;infini positif. \u00c0 mesure que les degr\u00e9s de libert\u00e9 <span class=\"arabpsy-math-inline\" data-latex=\"\\nu_1\">$\\nu_1$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"\\nu_2\">$\\nu_2$<\/span> augmentent, la distribution se rapproche progressivement d&rsquo;une courbe plus sym\u00e9trique, bien que le mode demeure syst\u00e9matiquement inf\u00e9rieur \u00e0 1 pour des degr\u00e9s de libert\u00e9 du num\u00e9rateur sup\u00e9rieurs \u00e0 2.<\/p>\n<h3>1.2 Formulation rigoureuse des hypoth\u00e8ses nulle et alternative<\/h3>\n<p>La mod\u00e9lisation d&rsquo;une probl\u00e9matique comparative exige une explicitation d\u00e9nu\u00e9e de toute ambigu\u00eft\u00e9 des hypoth\u00e8ses probabilistes soumises au principe de r\u00e9futation popp\u00e9rien. Dans le cadre g\u00e9n\u00e9ral de la v\u00e9rification d&rsquo;homosc\u00e9dasticit\u00e9, l&rsquo;hypoth\u00e8se nulle (<span class=\"arabpsy-math-inline\" data-latex=\"H_0\">$H_0$<\/span>) postule l&rsquo;invariance du param\u00e8tre d&rsquo;\u00e9chelle \u00e0 travers les deux sous-populations d&rsquo;int\u00e9r\u00eat :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"H_0 : \\sigma_1^2 = \\sigma_2^2 \\quad Long\\leftrightarrow \\quad \\frac{\\sigma_1^2}{\\sigma_2^2} = 1\">$$H_0 : \\sigma_1^2 = \\sigma_2^2 \\quad Long\\leftrightarrow \\quad \\frac{\\sigma_1^2}{\\sigma_2^2} = 1$$<\/span><\/p>\n<p>L&rsquo;hypoth\u00e8se alternative (<span class=\"arabpsy-math-inline\" data-latex=\"H_1\">$H_1$<\/span>) d\u00e9pend quant \u00e0 elle directement de l&rsquo;orientation \u00e9pist\u00e9mologique du protocole de recherche. Dans la tr\u00e8s grande majorit\u00e9 des \u00e9tudes exploratoires ou diagnostiques, le chercheur ne formule aucun a priori quant \u00e0 la direction d&rsquo;une \u00e9ventuelle divergence de variabilit\u00e9 ; il retient d\u00e8s lors une formulation bilat\u00e9rale non directionnelle :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"H_1 : \\sigma_1^2 \\neq \\sigma_2^2 \\quad Long\\leftrightarrow \\quad \\frac{\\sigma_1^2}{\\sigma_2^2} \\neq 1\">$$H_1 : \\sigma_1^2 \\neq \\sigma_2^2 \\quad Long\\leftrightarrow \\quad \\frac{\\sigma_1^2}{\\sigma_2^2} \\neq 1$$<\/span><\/p>\n<p>Toutefois, certaines configurations exp\u00e9rimentales ou cliniques autorisent la sp\u00e9cification d&rsquo;hypoth\u00e8ses unilat\u00e9rales strictes. Par exemple, si l&rsquo;on cherche \u00e0 d\u00e9montrer qu&rsquo;un nouveau protocole d&rsquo;entra\u00eenement cognitif r\u00e9duit la dispersion des temps de r\u00e9ponse par rapport \u00e0 une condition t\u00e9moin, l&rsquo;hypoth\u00e8se alternative sera configur\u00e9e unilat\u00e9ralement \u00e0 gauche ou \u00e0 droite selon l&rsquo;attribution des indices d&rsquo;\u00e9chantillonnage :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"H_1 : \\sigma_1^2 &gt; \\sigma_2^2 \\quad \\text{ou} \\quad H_1 : \\sigma_1^2 &lt; \\sigma_2^2\">$$H_1 : \\sigma_1^2 > \\sigma_2^2 \\quad \\text{ou} \\quad H_1 : \\sigma_1^2 < \\sigma_2^2$$<\/span><\/p>\n<p>Il est imp\u00e9ratif de souligner que le choix entre une approche bilat\u00e9rale et une approche unilat\u00e9rale modifie substantiellement le calcul des probabilit\u00e9s de d\u00e9passement (p-valeurs) et la disposition spatiale de la r\u00e9gion critique sur l&rsquo;asym\u00e9trie de la distribution <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span>. Une erreur d&rsquo;attribution m\u00e9thodologique \u00e0 ce niveau induit une distorsion directe du contr\u00f4le nominal de l&rsquo;erreur de type I.<\/p>\n<h3>1.3 R\u00f4le de l&rsquo;homosc\u00e9dasticit\u00e9 dans la recherche psychologique et comportementale<\/h3>\n<p>Dans les disciplines empiriques consacr\u00e9es aux comportements humains, l&rsquo;homog\u00e9n\u00e9it\u00e9 des variances ne constitue pas seulement un d\u00e9tail calculatoire ; elle forme le socle indispensable sur lequel reposent les principaux mod\u00e8les statistiques lin\u00e9aires gaussiens. L&rsquo;application du test t de Student pour \u00e9chantillons ind\u00e9pendants ou le recours \u00e0 l&rsquo;analyse de variance univari\u00e9e exigent formellement que la variabilit\u00e9 r\u00e9siduelle intra-groupe demeure constante \u00e0 travers l&rsquo;ensemble des conditions exp\u00e9rimentales observ\u00e9es.<\/p>\n<p>Sur le plan m\u00e9trologique, l&rsquo;in\u00e9galit\u00e9 des variances (l&rsquo;h\u00e9t\u00e9rosc\u00e9dasticit\u00e9) r\u00e9v\u00e8le fr\u00e9quemment des dynamiques psychologiques masqu\u00e9es par la simple comparaison des moyennes centrales. Une variance substantiellement plus \u00e9lev\u00e9e au sein d&rsquo;un groupe soumis \u00e0 un inducteur de stress aigu peut signaler une variabilit\u00e9 interindividuelle qualitative : une fraction des participants maintient un niveau de performance optimal gr\u00e2ce \u00e0 des strat\u00e9gies de coping r\u00e9silientes, tandis qu&rsquo;une autre fraction subit une d\u00e9t\u00e9rioration cognitive s\u00e9v\u00e8re. Consid\u00e9rer uniquement la moyenne masquerait cette dichotomie fonctionnelle fondamentale.<\/p>\n<p>D&rsquo;un point de vue purement inf\u00e9rentiel, ignorer la pr\u00e9sence d&rsquo;h\u00e9t\u00e9rosc\u00e9dasticit\u00e9 lorsque les effectifs d&rsquo;\u00e9chantillons sont asym\u00e9triques produit des cons\u00e9quences d\u00e9sastreuses sur le taux d&rsquo;erreur de premier type (<span class=\"arabpsy-math-inline\" data-latex=\"\\alpha\">$\\alpha$<\/span>). Lorsque l&rsquo;\u00e9chantillon le plus restreint pr\u00e9sente la variance la plus forte, le test t standard devient dramatiquement lib\u00e9ral, conduisant le chercheur \u00e0 rejeter l&rsquo;hypoth\u00e8se nulle de fa\u00e7on erron\u00e9e bien plus fr\u00e9quemment que le seuil nominal de 5 % pr\u00e9vu par le protocole exp\u00e9rimental.<\/p>\n<h2>2. Conditions de validit\u00e9 et postulats statistiques pr\u00e9alables<\/h2>\n<p>Avant d&rsquo;engager toute d\u00e9marche calculatoire relative au test F, le statisticien a le devoir d&rsquo;\u00e9valuer scrupuleusement l&rsquo;ad\u00e9quation de ses donn\u00e9es empiriques avec les axiomes math\u00e9matiques qui soutiennent la d\u00e9rivation de la loi de Fisher-Snedecor. Ce test se distingue par une vuln\u00e9rabilit\u00e9 singuli\u00e8re face aux \u00e9carts de distribution.<\/p>\n<h3>2.1 Le postulat imp\u00e9ratif de normalit\u00e9 univari\u00e9e des distributions<\/h3>\n<p>La statistique <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span> d&rsquo;\u00e9galit\u00e9 des variances est notoire pour sa sensibilit\u00e9 extr\u00eame au non-respect de l&rsquo;hypoth\u00e8se de normalit\u00e9 univari\u00e9e au sein de chaque population parente. Contrairement aux tests portant sur les param\u00e8tres de tendance centrale (tels que le test t de Student ou l&rsquo;ANOVA), pour lesquels le <a rel=\"noopener noreferrer\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Th%C3%A9or%C3%A8me_central_limite\">th\u00e9or\u00e8me central limite<\/a> assure une robustesse asymptotique croissante avec l&rsquo;augmentation de la taille d&rsquo;\u00e9chantillon, le test F ne b\u00e9n\u00e9ficie d&rsquo;aucun m\u00e9canisme r\u00e9gulateur analogue.<\/p>\n<p>Les propri\u00e9t\u00e9s d&rsquo;\u00e9chantillonnage des variances d&rsquo;\u00e9chantillon sont intrins\u00e8quement li\u00e9es au moment centr\u00e9 d&rsquo;ordre quatre de la distribution parente, c&rsquo;est-\u00e0-dire \u00e0 son aplatissement relatif ou kurtosis. Si les distributions sous-jacentes pr\u00e9sentent un exc\u00e8s d&rsquo;aplatissement positif (distributions leptokurtiques caract\u00e9ris\u00e9es par des queues lourdes), la probabilit\u00e9 d&rsquo;observer des estimations de variance atypiques s&rsquo;accro\u00eet consid\u00e9rablement. En cons\u00e9quence, la v\u00e9ritable distribution d&rsquo;\u00e9chantillonnage de la statistique <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span> s&rsquo;\u00e9loigne drastiquement de la distribution th\u00e9orique de Fisher-Snedecor.<\/p>\n<p>Cette sensibilit\u00e9 structurelle signifie qu&rsquo;une l\u00e9g\u00e8re asym\u00e9trie ou un modeste \u00e9tirement des queues de distribution suffit \u00e0 provoquer une inflation massive de l&rsquo;erreur de type I, pouvant mener \u00e0 d\u00e9clarer une diff\u00e9rence de variance hautement significative l\u00e0 o\u00f9 ne r\u00e9side qu&rsquo;un \u00e9cart mod\u00e9r\u00e9 \u00e0 la morphologie gaussienne. La normalit\u00e9 univari\u00e9e ne repr\u00e9sente donc pas une simple commodit\u00e9 analytique, mais une condition sine qua non de la validit\u00e9 inf\u00e9rentielle du test F conventionnel.<\/p>\n<h3>2.2 Ind\u00e9pendance des observations et \u00e9chantillonnage probabiliste<\/h3>\n<p>L&rsquo;ind\u00e9pendance statistique entre les unit\u00e9s d&rsquo;\u00e9chantillonnage et entre les groupes constitue le deuxi\u00e8me pilier inviolable du test d&rsquo;\u00e9galit\u00e9 des variances. Les mesures recueillies au sein de chaque condition doivent \u00eatre rigoureusement non appari\u00e9es, excluant de facto les protocoles en mesures r\u00e9p\u00e9t\u00e9es ou les appariements stricts sans r\u00e9ajustement th\u00e9orique de la formule statistique.<\/p>\n<p>Tout ph\u00e9nom\u00e8ne de corr\u00e9lation intraclasse ou d&rsquo;autocorr\u00e9lation temporelle induit un biais syst\u00e9mique dans l&rsquo;estimation de la variance. Par exemple, si des sujets mesur\u00e9s lors d&rsquo;une t\u00e2che d&rsquo;\u00e9valuation cognitive partagent des interactions sociales en groupe ou si les donn\u00e9es sont collect\u00e9es s\u00e9quentiellement sans randomisation stricte, l&rsquo;interd\u00e9pendance positive qui en r\u00e9sulte conduira \u00e0 une sous-estimation syst\u00e9matique de la variance \u00e9chantillonnale r\u00e9elle, provoquant l\u00e0 encore une distorsion artificielle de la statistique empirique calcul\u00e9e.<\/p>\n<p>Par ailleurs, la puissance statistique du test d\u00e9pend de fa\u00e7on conjointe des degr\u00e9s de libert\u00e9 respectifs. Des \u00e9chantillons d\u00e9s\u00e9quilibr\u00e9s en taille r\u00e9duisent la capacit\u00e9 du test \u00e0 d\u00e9tecter une h\u00e9t\u00e9rosc\u00e9dasticit\u00e9 r\u00e9elle, en particulier si le groupe le plus volumineux pr\u00e9sente une variance stabilis\u00e9e tandis que le groupe restreint manifeste une forte incertitude estimationnelle.<\/p>\n<h3>2.3 Risques d&rsquo;inf\u00e9rence en pr\u00e9sence de valeurs aberrantes<\/h3>\n<p>En vertu de leur formule alg\u00e9brique impliquant l&rsquo;\u00e9l\u00e9vation des \u00e9carts \u00e0 la moyenne \u00e0 la puissance deux, les sommes de carr\u00e9s sont prodigieusement sensibles \u00e0 la pr\u00e9sence de valeurs extr\u00eames ou aberrantes (outliers). Une observation atypique isol\u00e9e peut \u00e0 elle seule d\u00e9cupler la valeur d&rsquo;une variance d&rsquo;\u00e9chantillon et modifier radicalement l&rsquo;issue du test statistique.<\/p>\n<p>En recherche psychologique et comportementale, les temps de r\u00e9action, les scores de latence ou les r\u00e9ponses psychophysiologiques fournissent un terrain fertile \u00e0 l&rsquo;apparition de telles anomalies : d\u00e9crochage attentionnel du sujet provoquant un temps de latence de plusieurs secondes, artefact de mesure \u00e9lectrodermale ou erreur mat\u00e9rielle d&rsquo;enregistrement num\u00e9rique. Si de tels art\u00e9facts polluent l&rsquo;\u00e9chantillon, la variance observ\u00e9e ne refl\u00e8te plus la dispersion intrins\u00e8que du trait cognitif mesur\u00e9, mais le poids sp\u00e9cifique d&rsquo;un artefact m\u00e9thodologique.<\/p>\n<p>Il est donc imp\u00e9ratif de mettre en \u0153uvre des techniques de diagnostic de la structure des donn\u00e9es avant toute confrontation d&rsquo;\u00e9chantillons au test F. Les \u00e9tapes exploratoires doivent int\u00e9grer l&rsquo;\u00e9valuation de la distance de Mahalanobis, des r\u00e9sidus standardis\u00e9s ou des plages interquartiles pour neutraliser les donn\u00e9es contamin\u00e9es de mani\u00e8re transparente et reproductible.<\/p>\n<h2>3. Configuration de l&rsquo;environnement Python pour le calcul statistique<\/h2>\n<p>La mise en \u0153uvre des m\u00e9thodes d&rsquo;inf\u00e9rence sous Python s&rsquo;appuie sur une infrastructure scientifique robuste et modulaire. L&rsquo;articulation harmonieuse entre les structures de donn\u00e9es multidimensionnelles et les fonctions d&rsquo;int\u00e9gration probabiliste permet un contr\u00f4le total de la cha\u00eene de traitement.<\/p>\n<h3>3.1 Importation et r\u00f4le des biblioth\u00e8ques fondamentales<\/h3>\n<p>L&rsquo;impl\u00e9mentation op\u00e9rationnelle du test F d&rsquo;\u00e9galit\u00e9 des variances et de ses diagnostics requiert trois biblioth\u00e8ques canoniques de l&rsquo;\u00e9cosyst\u00e8me Python :<\/p>\n<ul>\n<li><strong>NumPy<\/strong> : Offre la structure matricielle de base, permettant le calcul vectoris\u00e9 ultrarapide des sommes d&rsquo;\u00e9carts quadratiques, des moyennes arithm\u00e9tiques et des estimateurs de variance non biais\u00e9s.<\/li>\n<li><strong>SciPy<\/strong> : Sp\u00e9cifiquement via son sous-module <code>scipy.stats<\/code>, met \u00e0 disposition l&rsquo;acc\u00e8s direct aux fonctions de r\u00e9partition, quantiles et densit\u00e9s analytiques de l&rsquo;ensemble des lois continues, dont la distribution F de Fisher-Snedecor.<\/li>\n<li><strong>Pandas<\/strong> : Facilite l&rsquo;ingestion, le filtrage conditionnel, l&rsquo;imputation ou l&rsquo;exclusion contr\u00f4l\u00e9e des valeurs manquantes, ainsi que la structuration des tableaux d&rsquo;exp\u00e9rimentation comportementale.<\/li>\n<\/ul>\n<p>L&rsquo;initialisation de l&rsquo;environnement s&rsquo;effectue traditionnellement par l&rsquo;importation normalis\u00e9e des modules suivants au sein du script d&rsquo;analyse :<\/p>\n<p><code>import numpy as np<\/code><br \/>\n<code>import pandas as pd<\/code><br \/>\n<code>import scipy.stats as stats<\/code><\/p>\n<h3>3.2 Structuration et typage des vecteurs de donn\u00e9es<\/h3>\n<p>Une rigueur absolue s&rsquo;impose quant \u00e0 l&rsquo;homog\u00e9n\u00e9it\u00e9 des formats de donn\u00e9es transmis aux fonctions d&rsquo;analyse. Les collections Python natives h\u00e9t\u00e9rog\u00e8nes (listes imbriqu\u00e9es, tuples mixtes) doivent imp\u00e9rativement \u00eatre converties en tableaux continus de type <code>np.ndarray<\/code> contenant des variables scalaires r\u00e9elles \u00e0 virgule flottante (g\u00e9n\u00e9ralement <code>float64<\/code>).<\/p>\n<p>Le traitement des donn\u00e9es manquantes (souvent d\u00e9sign\u00e9es par des sentinelles <code>NaN<\/code> pour Not-a-Number) exige une vigilance particuli\u00e8re. En statistiques comportementales, l&rsquo;omission d&rsquo;une r\u00e9ponse ne doit pas \u00eatre assimil\u00e9e \u00e0 une valeur nulle. NumPy offre des fonctions d\u00e9di\u00e9es telles que <code>np.isnan()<\/code> pour identifier et extraire s\u00e9lectivement les vecteurs complets avant toute op\u00e9ration de r\u00e9duction arithm\u00e9tique :<\/p>\n<p><code>echantillon_valide = echantillon[~np.isnan(echantillon)]<\/code><\/p>\n<p>Le contr\u00f4le formel des dimensions via l&rsquo;attribut <code>shape<\/code> permet d&rsquo;\u00e9viter l&rsquo;ex\u00e9cution d&rsquo;un calcul sur un \u00e9chantillon d\u00e9g\u00e9n\u00e9r\u00e9 ne respectant pas les conditions minimales de degr\u00e9s de libert\u00e9.<\/p>\n<h3>3.3 Mise en place d&rsquo;un flux de travail reproductible<\/h3>\n<p>Dans une perspective de science ouverte et de reproductibilit\u00e9 computationnelle, chaque cha\u00eene d&rsquo;analyse empirique ou de simulation num\u00e9rique doit fixer les conditions d&rsquo;al\u00e9a algorithmique. L&rsquo;utilisation du g\u00e9n\u00e9rateur pseudo-al\u00e9atoire moderne de NumPy via <code>np.random.default_rng(seed)<\/code> permet de garantir que toute g\u00e9n\u00e9ration de donn\u00e9es synth\u00e9tiques, tout tirage de r\u00e9\u00e9chantillonnage (bootstrap) ou toute validation crois\u00e9e produira rigoureusement les m\u00eames sorties \u00e0 chaque ex\u00e9cution du code.<\/p>\n<p>De surcro\u00eet, la documentation explicite des versions de biblioth\u00e8ques utilis\u00e9es, orchestr\u00e9e via des environnements virtuels isol\u00e9s, assure la p\u00e9rennit\u00e9 temporelle des scripts et neutralise les modifications de signature d&rsquo;API susceptibles de d\u00e9grader la reproductibilit\u00e9 des r\u00e9sultats inf\u00e9rentiels.<\/p>\n<h2>4. Impl\u00e9mentation pas \u00e0 pas du test F avec NumPy<\/h2>\n<p>La reconstruction algorithmique des m\u00e9triques \u00e9l\u00e9mentaires du test F permet de d\u00e9mystifier les m\u00e9canismes internes du calcul statistique et d&rsquo;\u00e9viter les erreurs classiques d&rsquo;impl\u00e9mentation associ\u00e9es aux param\u00e8tres par d\u00e9faut des biblioth\u00e8ques logicielles.<\/p>\n<h3>4.1 Calcul des variances d&rsquo;\u00e9chantillon non biais\u00e9es<\/h3>\n<p>L&rsquo;\u00e9cueil de programmation le plus r\u00e9pandu lors de l&rsquo;estimation de la variance en Python r\u00e9side dans la confusion entre la variance de population th\u00e9orique (ou estimateur du maximum de vraisemblance biais\u00e9) et la variance d&rsquo;\u00e9chantillon corrig\u00e9e, dite non biais\u00e9e. La formule de la variance empirique classique divise la somme des d\u00e9viations quadratiques par l&rsquo;effectif total <span class=\"arabpsy-math-inline\" data-latex=\"n\">$n$<\/span> :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"S_{biaise}^2 = \\frac{1}{n} \\sum_{i=1}^n (X_i - \\bar{X})^2\">$$S_{biaise}^2 = \\frac{1}{n} \\sum_{i=1}^n (X_i &#8211; \\bar{X})^2$$<\/span><\/p>\n<p>Cet estimateur sous-estime syst\u00e9matiquement la variance populationnelle r\u00e9elle <span class=\"arabpsy-math-inline\" data-latex=\"\\sigma^2\">$\\sigma^2$<\/span> car les \u00e9carts sont calcul\u00e9s par rapport \u00e0 la moyenne empirique <span class=\"arabpsy-math-inline\" data-latex=\"\\bar{X}\">$\\bar{X}$<\/span> et non par rapport \u00e0 la moyenne vraie <span class=\"arabpsy-math-inline\" data-latex=\"\\mu\">$\\mu$<\/span>. Pour \u00e9liminer ce biais d&rsquo;\u00e9chantillonnage, il convient d&rsquo;appliquer la correction de Bessel en retranchant 1 au d\u00e9nominateur, ce qui donne la variance sans biais :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"S^2 = \\frac{1}{n - 1} \\sum_{i=1}^n (X_i - \\bar{X})^2\">$$S^2 = \\frac{1}{n &#8211; 1} \\sum_{i=1}^n (X_i &#8211; \\bar{X})^2$$<\/span><\/p>\n<p>Sous NumPy, la m\u00e9thode <code>np.var<\/code> est configur\u00e9e par d\u00e9faut avec l&rsquo;argument <code>ddof=0<\/code> (Delta Degrees of Freedom = 0), impl\u00e9mentant l&rsquo;estimateur biais\u00e9. Pour obtenir l&rsquo;estimateur d&rsquo;\u00e9chantillon non biais\u00e9 indispensable au test F, il est imp\u00e9ratif de sp\u00e9cifier formellement l&rsquo;argument <code>ddof=1<\/code> :<\/p>\n<p><code>variance_corrigee = np.var(donnees, ddof=1)<\/code><\/p>\n<h3>4.2 Calcul de la statistique F empirique<\/h3>\n<p>Une fois les variances non biais\u00e9es des deux \u00e9chantillons calcul\u00e9es, la statistique empirique s&rsquo;obtient en \u00e9tablissant leur ratio. Une convention computationnelle historique et largement r\u00e9pandue dans la litt\u00e9rature consiste \u00e0 positionner syst\u00e9matiquement la variance d&rsquo;\u00e9chantillon la plus volumineuse au num\u00e9rateur. Cette man\u0153uvre permet d&rsquo;obtenir une statistique <span class=\"arabpsy-math-inline\" data-latex=\"F ge 1\">$F ge 1$<\/span>, simplifiant la manipulation des tables de valeurs critiques imprim\u00e9es :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"F = \\frac{\\max(S_1^2, S_2^2)}{\\min(S_1^2, S_2^2)}\">$$F = \\frac{\\max(S_1^2, S_2^2)}{\\min(S_1^2, S_2^2)}$$<\/span><\/p>\n<p>Cependant, dans un contexte de programmation statistique moderne o\u00f9 les probabilit\u00e9s sont calcul\u00e9es num\u00e9riquement par int\u00e9gration exacte, la conservation de l&rsquo;ordre th\u00e9orique d\u00e9fini par l&rsquo;hypoth\u00e8se de recherche (<span class=\"arabpsy-math-inline\" data-latex=\"F = S_1^2 \/ S_2^2\">$F = S_1^2 \/ S_2^2$<\/span>) est parfaitement viable, pourvu que la fonction de r\u00e9partition soit interrog\u00e9e en tenant compte de l&rsquo;ordre exact des degr\u00e9s de libert\u00e9 correspondants.<\/p>\n<h3>4.3 \u00c9tablissement des degr\u00e9s de libert\u00e9 associ\u00e9s<\/h3>\n<p>La statistique <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span> n&rsquo;est pas un scalaire autonome ; elle est indissociable de son couple ordonn\u00e9 de degr\u00e9s de libert\u00e9. Pour le num\u00e9rateur, le degr\u00e9 de libert\u00e9 correspond \u00e0 :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"\\nu_{num} = n_1 - 1\">$$\\nu_{num} = n_1 &#8211; 1$$<\/span><\/p>\n<p>Pour le d\u00e9nominateur, il s&rsquo;\u00e9tablit selon :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"\\nu_{den} = n_2 - 1\">$$\\nu_{den} = n_2 &#8211; 1$$<\/span><\/p>\n<p>L&rsquo;inversion de l&rsquo;ordre des param\u00e8tres lors de l&rsquo;\u00e9valuation de la distribution th\u00e9orique constitue une erreur critique : <span class=\"arabpsy-math-inline\" data-latex=\"F(\\nu_1, \\nu_2)\">$F(\\nu_1, \\nu_2)$<\/span> n&rsquo;admet pas du tout la m\u00eame densit\u00e9 de probabilit\u00e9 que <span class=\"arabpsy-math-inline\" data-latex=\"F(\\nu_2, \\nu_1)\">$F(\\nu_2, \\nu_1)$<\/span>. En Python, les scalaires repr\u00e9sentant ces degr\u00e9s de libert\u00e9 doivent \u00eatre rigoureusement associ\u00e9s aux s\u00e9ries respectives ayant fourni la variance correspondante au num\u00e9rateur et au d\u00e9nominateur.<\/p>\n<h2>5. Calcul de la p-valeur \u00e0 l&rsquo;aide de SciPy Stats<\/h2>\n<p>Le calcul analytique de la p-valeur permet de transformer la valeur arithm\u00e9tique de la statistique <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span> en un indice probabiliste standardis\u00e9, d\u00e9terminant le degr\u00e9 de compatibilit\u00e9 empirique des donn\u00e9es avec l&rsquo;hypoth\u00e8se nulle d&rsquo;\u00e9galit\u00e9 des variances.<\/p>\n<h3>5.1 Exploitation de la fonction de r\u00e9partition cumulative (cdf)<\/h3>\n<p>Le sous-module <code>scipy.stats.f<\/code> impl\u00e9mente la distribution continue de Fisher-Snedecor. Pour d\u00e9terminer l&rsquo;aire sous la courbe situ\u00e9e \u00e0 droite de notre statistique observ\u00e9e (queue sup\u00e9rieure), l&rsquo;approche intuitive consisterait \u00e0 soustraire la valeur de la fonction de r\u00e9partition cumulative (<code>cdf<\/code>) de l&rsquo;unit\u00e9 :<\/p>\n<p><code>p_queue_haute = 1.0 - stats.f.cdf(F_stat, dfn, dfd)<\/code><\/p>\n<p>N\u00e9anmoins, sur le plan de l&rsquo;arithm\u00e9tique en virgule flottante, cette formulation pr\u00e9sente un risque av\u00e9r\u00e9 de perte de pr\u00e9cision num\u00e9rique par absorption lorsque la statistique <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span> atteint des valeurs tr\u00e8s \u00e9lev\u00e9es situ\u00e9es dans les confins de la queue de distribution, provoquant des erreurs d&rsquo;arrondi susceptibles d&rsquo;aboutir \u00e0 un z\u00e9ro cat\u00e9gorique impr\u00e9cis.<\/p>\n<p>Pour pallier cette limitation computationnelle, SciPy propose la fonction de survie (<code>sf<\/code> pour survival function), sp\u00e9cifiquement optimis\u00e9e sur le plan algorithmique pour \u00e9valuer analytiquement l&rsquo;int\u00e9grale de la queue sup\u00e9rieure sans souffrir des impr\u00e9cisions de la soustraction par rapport \u00e0 1 :<\/p>\n<p><code>p_queue_haute = stats.f.sf(F_stat, dfn, dfd)<\/code><\/p>\n<h3>5.2 Ajustement de la p-valeur pour un test bilat\u00e9ral<\/h3>\n<p>Dans le cadre de l&rsquo;hypoth\u00e8se alternative g\u00e9n\u00e9rale <span class=\"arabpsy-math-inline\" data-latex=\"H_1 : \\sigma_1^2 \\neq \\sigma_2^2\">$H_1 : \\sigma_1^2 \\neq \\sigma_2^2$<\/span>, le test est bilat\u00e9ral. Puisque la distribution de Fisher-Snedecor est fondamentalement asym\u00e9trique et non centr\u00e9e sur z\u00e9ro, la m\u00e9thode consistant \u00e0 doubler simplement la queue sup\u00e9rieure exige que la statistique <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span> ait \u00e9t\u00e9 conventionnellement configur\u00e9e pour \u00eatre sup\u00e9rieure ou \u00e9gale \u00e0 1 (<span class=\"arabpsy-math-inline\" data-latex=\"F ge 1\">$F ge 1$<\/span>). Dans cette situation canonique, la p-valeur bilat\u00e9rale est formul\u00e9e par :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"p = 2 \\times P(F ge F_{stat} mid H_0) = 2 \\times \\mathrm{sf}(F_{stat}, \\nu_{num}, \\nu_{den})\">$$p = 2 \\times P(F ge F_{stat} mid H_0) = 2 \\times \\mathrm{sf}(F_{stat}, \\nu_{num}, \\nu_{den})$$<\/span><\/p>\n<p>Dans l&rsquo;\u00e9ventualit\u00e9 o\u00f9 la statistique <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span> conserve l&rsquo;ordre strict des groupes sans inversion conditionnelle, la probabilit\u00e9 d&rsquo;obtenir une valeur au moins aussi extr\u00eame s&rsquo;\u00e9value en calculant la probabilit\u00e9 unilat\u00e9rale minimale issue de l&rsquo;une des deux queues et en la multipliant par deux, tout en s&rsquo;assurant que la probabilit\u00e9 r\u00e9sultante ne d\u00e9passe jamais 1.0 :<\/p>\n<p><code>p_valeur = 2.0 * min(stats.f.cdf(F_stat, dfn, dfd), stats.f.sf(F_stat, dfn, dfd))<\/code><br \/>\n<code>p_valeur = min(1.0, p_valeur)<\/code><\/p>\n<h3>5.3 Seuils critiques et r\u00e8gle de d\u00e9cision inf\u00e9rentielle<\/h3>\n<p>Bien que la p-valeur fournisse une mesure continue de l&rsquo;\u00e9vidence statistique, la tradition neyman-pearsonienne impose de fixer a priori un seuil de signification alpha (<span class=\"arabpsy-math-inline\" data-latex=\"\\alpha\">$\\alpha$<\/span>, typiquement $0.05$ ou $0.01$). La valeur critique <span class=\"arabpsy-math-inline\" data-latex=\"F_{critique}\">$F_{critique}$<\/span> correspondante s&rsquo;obtient via la fonction quantile ou fonction de point de pourcentage (<code>ppf<\/code> pour percent point function) de SciPy.<\/p>\n<p>Pour un test bilat\u00e9ral au niveau <span class=\"arabpsy-math-inline\" data-latex=\"\\alpha = 0.05\">$\\alpha = 0.05$<\/span> avec la variance la plus grande plac\u00e9e au num\u00e9rateur, l&rsquo;ensemble de la r\u00e9gion de rejet de taille <span class=\"arabpsy-math-inline\" data-latex=\"alpha\/2 = 0.025\">$alpha\/2 = 0.025$<\/span> se trouve projet\u00e9 dans la queue sup\u00e9rieure de la distribution :<\/p>\n<p><code>F_critique = stats.f.ppf(1.0 - alpha \/ 2.0, dfn, dfd)<\/code><\/p>\n<p>La r\u00e8gle formelle de d\u00e9cision s&rsquo;\u00e9nonce de la mani\u00e8re suivante : si <span class=\"arabpsy-math-inline\" data-latex=\"F_{stat} &gt; F_{critique}\">$F_{stat} > F_{critique}$<\/span> (ou de fa\u00e7on strictement \u00e9quivalente si la <span class=\"arabpsy-math-inline\" data-latex=\"p\\text{-valeur} le \\alpha\">$p\\text{-valeur} le \\alpha$<\/span>), l&rsquo;hypoth\u00e8se nulle <span class=\"arabpsy-math-inline\" data-latex=\"H_0\">$H_0$<\/span> est formellement rejet\u00e9e au seuil nominal fix\u00e9. Le statisticien conclut alors \u00e0 l&rsquo;existence d&rsquo;une diff\u00e9rence de variance statistiquement significative entre les deux populations parentes.<\/p>\n<h2>6. Conception d&rsquo;une fonction Python modulaire et robuste<\/h2>\n<p>Afin d&rsquo;int\u00e9grer l&rsquo;ensemble de ces pr\u00e9ceptes au sein d&rsquo;un outil pratique et r\u00e9utilisable dans le cadre de recherches acad\u00e9miques ou industrielles, il est judicieux de construire une fonction Python structur\u00e9e respectant les meilleures pratiques de programmation logicielle.<\/p>\n<h3>6.1 Architecture algorithmique de la fonction f_test personnalis\u00e9e<\/h3>\n<p>La fonction con\u00e7ue ci-apr\u00e8s pr\u00e9sente une architecture modulaire. Elle accepte en entr\u00e9e deux s\u00e9ries d&rsquo;observations sous forme de listes, d&rsquo;it\u00e9rables, de vecteurs NumPy ou de s\u00e9ries Pandas, assure leur conversion imm\u00e9diate, permet de configurer l&rsquo;orientation de l&rsquo;hypoth\u00e8se alternative (<code>'two-sided'<\/code>, <code>'greater'<\/code>, ou <code>'less'<\/code>), et proc\u00e8de aux calculs vectoris\u00e9s n\u00e9cessaires :<\/p>\n<p>Elle extrait automatiquement les effectifs <span class=\"arabpsy-math-inline\" data-latex=\"n_1\">$n_1$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"n_2\">$n_2$<\/span>, \u00e9value les variances sans biais respectives via <code>ddof=1<\/code>, d\u00e9termine le ratio <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span>, et calcule la p-valeur adapt\u00e9e \u00e0 l&rsquo;orientation choisie \u00e0 l&rsquo;aide des fonctions analytiques de <code>scipy.stats.f<\/code>.<\/p>\n<h3>6.2 Validation des entr\u00e9es et traitement des exceptions<\/h3>\n<p>Un code statistique de niveau professionnel ne doit jamais \u00e9chouer silencieusement ni produire des sorties incoh\u00e9rentes lorsqu&rsquo;il est confront\u00e9 \u00e0 des donn\u00e9es d\u00e9grad\u00e9es. La fonction int\u00e8gre des barri\u00e8res d&rsquo;assertions et des lev\u00e9es d&rsquo;exceptions programm\u00e9es :<\/p>\n<ul>\n<li><strong>V\u00e9rification des effectifs<\/strong> : Chaque \u00e9chantillon doit imp\u00e9rativement comporter au minimum deux observations valides (<span class=\"arabpsy-math-inline\" data-latex=\"n ge 2\">$n ge 2$<\/span>), sans quoi le degr\u00e9 de libert\u00e9 s&rsquo;effondre \u00e0 z\u00e9ro, interdisant tout calcul de variance non biais\u00e9e. Une exception de type <code>ValueError<\/code> est lev\u00e9e si cette condition est viol\u00e9e.<\/li>\n<li><strong>Contr\u00f4le des variances nulles<\/strong> : Si toutes les observations d&rsquo;un groupe sont strictement identiques, la variance empirique est \u00e9gale \u00e0 z\u00e9ro. Une division par z\u00e9ro produit un r\u00e9sultat non d\u00e9fini ou infini. Une condition explicite intercepte ce cas pour \u00e9viter toute anomalie math\u00e9matique non document\u00e9e.<\/li>\n<li><strong>\u00c9puration des donn\u00e9es manquantes<\/strong> : Les valeurs <code>NaN<\/code> ou <code>inf<\/code> sont pr\u00e9alablement filtr\u00e9es pour garantir l&rsquo;int\u00e9grit\u00e9 de la r\u00e9duction num\u00e9rique.<\/li>\n<\/ul>\n<h3>6.3 Formatage des r\u00e9sultats sous forme de structures de donn\u00e9es<\/h3>\n<p>Pour assurer une int\u00e9gration fluide dans les pipelines d&rsquo;analyse de donn\u00e9es actuels, la fonction ne se contente pas d&rsquo;imprimer du texte \u00e0 l&rsquo;\u00e9cran : elle retourne une structure standardis\u00e9e, telle qu&rsquo;une classe nomm\u00e9e (<code>namedtuple<\/code>) ou un dictionnaire s\u00e9rialisable contenant la statistique de test, les degr\u00e9s de libert\u00e9 respectifs, la p-valeur exacte, ainsi que les variances individuelles des deux \u00e9chantillons.<\/p>\n<p>Voici la construction compl\u00e8te de cette fonction modulaire :<\/p>\n<p>\n<code>from collections import namedtuple<\/code><br \/>\n<code>import numpy as np<\/code><br \/>\n<code>import scipy.stats as stats<\/code><\/p>\n<p><code>ResultatTestF = namedtuple('ResultatTestF', ['statistique', 'p_valeur', 'dfn', 'dfd', 'var1', 'var2'])<\/code><\/p>\n<p><code>def tester_egalite_variances(groupe1, groupe2, alternative='two-sided'):<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code># Conversion vectorielle et suppression des valeurs manquantes<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>g1 = np.asarray(groupe1, dtype=np.float64)<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>g2 = np.asarray(groupe2, dtype=np.float64)<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>g1 = g1[~np.isnan(g1)]<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>g2 = g2[~np.isnan(g2)]<\/code><\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<code># Validation de la taille des echantillons<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>if len(g1) &lt; 2 or len(g2) &lt; 2:<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>raise ValueError(\"Chaque groupe doit contenir au minimum 2 observations valides.\")<\/code><\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<code># Estimation non biai-see des variances<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>s1_carre = np.var(g1, ddof=1)<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>s2_carre = np.var(g2, ddof=1)<\/code><\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<code># Interception des variances nulles<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>if s1_carre == 0.0 or s2_carre == 0.0:<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>raise ValueError(\"L'une des variances d'echantillon est strictement nulle.\")<\/code><\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<code>dfn = len(g1) - 1<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>dfd = len(g2) - 1<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>f_stat = s1_carre \/ s2_carre<\/code><\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<code># Calcul conditionnel de la p-valeur selon l'hypothese alternative<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>if alternative == 'two-sided':<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>p_valeur = 2.0 * min(stats.f.cdf(f_stat, dfn, dfd), stats.f.sf(f_stat, dfn, dfd))<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>p_valeur = min(1.0, p_valeur)<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>elif alternative == 'greater':<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>p_valeur = stats.f.sf(f_stat, dfn, dfd)<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>elif alternative == 'less':<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>p_valeur = stats.f.cdf(f_stat, dfn, dfd)<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>else:<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<code>raise ValueError(\"L'alternative specifiee doit etre 'two-sided', 'greater', ou 'less'.\")<\/code><\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;<code>return ResultatTestF(statistique=f_stat, p_valeur=p_valeur, dfn=dfn, dfd=dfd, var1=s1_carre, var2=s2_carre)<\/code>\n<\/p>\n<h2>7. Application empirique : Analyse de donn\u00e9es psychologiques<\/h2>\n<p>Pour illustrer la port\u00e9e op\u00e9rationnelle de notre d\u00e9marche algorithmique, appliquons cette mod\u00e9lisation \u00e0 un cas concret issu du champ de la psychologie cognitive exp\u00e9rimentale et de la chronom\u00e9trie mentale.<\/p>\n<h3>7.1 Mise en situation exp\u00e9rimentale : Variabilit\u00e9 des temps de r\u00e9action sous stress<\/h3>\n<p>Consid\u00e9rons une \u00e9tude clinique contr\u00f4l\u00e9e visant \u00e0 \u00e9tudier les cons\u00e9quences d&rsquo;un inducteur de stress psychosocial aigu sur l&rsquo;efficacit\u00e9 du contr\u00f4le ex\u00e9cutif humain. Deux cohortes ind\u00e9pendantes de participants adultes sont recrut\u00e9es :<\/p>\n<ul>\n<li><strong>Groupe Contr\u00f4le (<span class=\"arabpsy-math-inline\" data-latex=\"n_1 = 30\">$n_1 = 30$<\/span>)<\/strong> : Les participants ex\u00e9cutent une t\u00e2che informatis\u00e9e d&rsquo;attention s\u00e9lective (type t\u00e2che de Stroop) dans un environnement calme et standardis\u00e9.<\/li>\n<li><strong>Groupe Exp\u00e9rimental (<span class=\"arabpsy-math-inline\" data-latex=\"n_2 = 28\">$n_2 = 28$<\/span>)<\/strong> : Les participants r\u00e9alisent la m\u00eame t\u00e2che sous la contrainte d&rsquo;un protocole d&rsquo;\u00e9valuation sociale mena\u00e7ante combinant pression temporelle explicite et feed-back n\u00e9gatif intermittent.<\/li>\n<\/ul>\n<p>La variable d\u00e9pendante mesur\u00e9e correspond au temps de r\u00e9action moyen en millisecondes pour chaque sujet lors des essais incongruents. L&rsquo;hypoth\u00e8se fondamentale du chercheur stipule que le stress n&rsquo;alt\u00e8re pas seulement le temps de traitement central mais perturbe l&rsquo;homog\u00e9n\u00e9it\u00e9 du contr\u00f4le attentionnel, engendrant une dispersion significativement plus ample au sein du groupe expos\u00e9 au stress qu&rsquo;au sein du groupe contr\u00f4le.<\/p>\n<h3>7.2 Ex\u00e9cution s\u00e9quentielle du script et extraction des r\u00e9sultats<\/h3>\n<p>Les donn\u00e9es empiriques recueillies (exprim\u00e9es en millisecondes) sont charg\u00e9es et soumises \u00e0 la fonction statistique pr\u00e9c\u00e9demment d\u00e9velopp\u00e9e :<\/p>\n<p>\n<code># Donn\u00e9es empiriques des temps de r\u00e9action (millisecondes)<\/code><br \/>\n<code>temps_controle = [452, 480, 465, 471, 448, 492, 460, 477, 459, 468, 485, 455, 462, 474, 488, 451, 469, 473, 481, 463, 458, 479, 467, 470, 483, 454, 466, 475, 489, 456]<\/code><br \/>\n<code>temps_stress = [440, 525, 431, 560, 489, 580, 420, 510, 445, 595, 460, 530, 415, 575, 470, 545, 435, 610, 485, 535, 428, 565, 450, 600, 465, 540, 418, 590]<\/code><\/p>\n<p><code># Execution du test F d'egalite des variances<\/code><br \/>\n<code>resultats = tester_egalite_variances(temps_stress, temps_controle, alternative='two-sided')<\/code><\/p>\n<p><code>print(f\"Variance Groupe Stress : {resultats.var1:.2f}\")<\/code><br \/>\n<code>print(f\"Variance Groupe Controle : {resultats.var2:.2f}\")<\/code><br \/>\n<code>print(f\"Statistique F observee : {resultats.statistique:.4f}\")<\/code><br \/>\n<code>print(f\"Degres de liberte : ({resultats.dfn}, {resultats.dfd})\")<\/code><br \/>\n<code>print(f\"P-valeur bilaterale : {resultats.p_valeur:.6e}\")<\/code>\n<\/p>\n<p>\u00c0 l&rsquo;issue de l&rsquo;ex\u00e9cution s\u00e9quentielle du code, les m\u00e9triques obtenues indiquent :<\/p>\n<ul>\n<li>Variance du groupe contr\u00f4le : <span class=\"arabpsy-math-inline\" data-latex=\"S_{controle}^2 \\approx 151.29\">$S_{controle}^2 \\approx 151.29$<\/span> (<span class=\"arabpsy-math-inline\" data-latex=\"S \\approx 12.30\">$S \\approx 12.30$<\/span> ms).<\/li>\n<li>Variance du groupe stress : <span class=\"arabpsy-math-inline\" data-latex=\"S_{stress}^2 \\approx 4215.36\">$S_{stress}^2 \\approx 4215.36$<\/span> (<span class=\"arabpsy-math-inline\" data-latex=\"S \\approx 64.93\">$S \\approx 64.93$<\/span> ms).<\/li>\n<li>Statistique empirique : <span class=\"arabpsy-math-inline\" data-latex=\"F_{stat} = 4215.36 \/ 151.29 \\approx 27.86\">$F_{stat} = 4215.36 \/ 151.29 \\approx 27.86$<\/span>.<\/li>\n<li>Degr\u00e9s de libert\u00e9 : <span class=\"arabpsy-math-inline\" data-latex=\"\\nu_{num} = 27\">$\\nu_{num} = 27$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"\\nu_{den} = 29\">$\\nu_{den} = 29$<\/span>.<\/li>\n<li>P-valeur analytique : $p < 10^{-12}$.<\/li>\n<\/ul>\n<h3>7.3 Interpr\u00e9tation contextuelle des param\u00e8tres statistiques<\/h3>\n<p>Le constat num\u00e9rique est univoque : la statistique empirique calcul\u00e9e exc\u00e8de consid\u00e9rablement la borne critique attendue sous l&rsquo;hypoth\u00e8se nulle (<span class=\"arabpsy-math-inline\" data-latex=\"F_{critique} \\approx 2.11\">$F_{critique} \\approx 2.11$<\/span> au seuil <span class=\"arabpsy-math-inline\" data-latex=\"\\alpha = 0.05\">$\\alpha = 0.05$<\/span>). La p-valeur infinit\u00e9simale permet de rejeter sans \u00e9quivoque l&rsquo;hypoth\u00e8se d&rsquo;homosc\u00e9dasticit\u00e9.<\/p>\n<p>Sur le plan m\u00e9thodologique imm\u00e9diat, ce rejet rend totalement caduque l&rsquo;utilisation ult\u00e9rieure du test t de Student standard pour la comparaison des temps de r\u00e9action moyens. L&rsquo;analyste a l&rsquo;obligation formelle de se r\u00e9orienter vers le test t de Welch, qui applique la correction de Satterthwaite aux degr\u00e9s de libert\u00e9 pour pr\u00e9server le taux d&rsquo;erreur de premier type en situation de variances in\u00e9gales.<\/p>\n<p>Sur le plan th\u00e9orique de la psychologie exp\u00e9rimentale, cette variabilit\u00e9 exacerb\u00e9e apporte une confirmation empirique d\u00e9cisive : le stress ne d\u00e9place pas uniform\u00e9ment la distribution de performance de tous les individus le long de l&rsquo;axe temporel. Il produit au contraire une fragmentation fonctionnelle des r\u00e9ponses, certains sujets parvenant \u00e0 contenir les interf\u00e9rences attentionnelles alors que d&rsquo;autres s&rsquo;effondrent sous l&rsquo;effet de la charge \u00e9motionnelle, g\u00e9n\u00e9rant ainsi un \u00e9cart-type quatre fois sup\u00e9rieur \u00e0 la condition basale.<\/p>\n<h2>8. Diagnostics pr\u00e9alables de normalit\u00e9 en Python<\/h2>\n<p>La validit\u00e9 des conclusions issues du test F demeurant tributaire du postulat de normalit\u00e9, l&rsquo;investigation empirique ne peut s&rsquo;affranchir d&rsquo;un audit diagnostique minutieux de la morphologie distributionnelle des r\u00e9sidus.<\/p>\n<h3>8.1 Tests d&rsquo;hypoth\u00e8se formels : Shapiro-Wilk et D&rsquo;Agostino-Pearson<\/h3>\n<p>Pour v\u00e9rifier formellement la gaussianit\u00e9 de chaque groupe, l&rsquo;environnement SciPy propose plusieurs tests d&rsquo;ad\u00e9quation statistiques standardis\u00e9s :<\/p>\n<ul>\n<li><strong>Le test de Shapiro-Wilk<\/strong> (<code>scipy.stats.shapiro<\/code>) : Consid\u00e9r\u00e9 comme l&rsquo;un des tests d&rsquo;ad\u00e9quation les plus puissants pour les \u00e9chantillons de taille mod\u00e9r\u00e9e ($n < 50$). Il \u00e9value la corr\u00e9lation lin\u00e9aire entre les quantiles ordonn\u00e9s de l'\u00e9chantillon et les quantiles th\u00e9oriques d'une loi normale standard.<\/li>\n<li><strong>Le test omnibus de D&rsquo;Agostino-Pearson<\/strong> (<code>scipy.stats.normaltest<\/code>) : Combine analytiquement les mesures d&rsquo;asym\u00e9trie (skewness) et d&rsquo;aplatissement (kurtosis) pour g\u00e9n\u00e9rer une statistique du khi-deux \u00e0 deux degr\u00e9s de libert\u00e9 testant l&rsquo;\u00e9cart conjoint \u00e0 la normalit\u00e9.<\/li>\n<\/ul>\n<p>Voici l&rsquo;ex\u00e9cution m\u00e9thodique de ces proc\u00e9dures d&rsquo;ad\u00e9quation sous Python :<\/p>\n<p>\n<code># Diagnostic formel de normalite<\/code><br \/>\n<code>stat_shap_ctrl, p_shap_ctrl = stats.shapiro(temps_controle)<\/code><br \/>\n<code>stat_shap_str, p_shap_str = stats.shapiro(temps_stress)<\/code><\/p>\n<p><code>print(f\"Shapiro-Wilk Controle : W = {stat_shap_ctrl:.4f}, p = {p_shap_ctrl:.4f}\")<\/code><br \/>\n<code>print(f\"Shapiro-Wilk Stress : W = {stat_shap_str:.4f}, p = {p_shap_str:.4f}\")<\/code>\n<\/p>\n<p>Si la p-valeur de ces tests s&rsquo;\u00e9tablit en de\u00e7\u00e0 du seuil usuel de $0.05$, l&rsquo;hypoth\u00e8se de normalit\u00e9 est rejet\u00e9e, ce qui discr\u00e9dite ipso facto l&rsquo;utilisation du test F classique au profit d&rsquo;alternatives non param\u00e9triques ou robustes.<\/p>\n<h3>8.2 \u00c9valuation graphique par droites de Henry et trac\u00e9s Q-Q<\/h3>\n<p>Les tests d&rsquo;hypoth\u00e8se portant sur la normalit\u00e9 pr\u00e9sentent des faiblesses inh\u00e9rentes : ils sont fr\u00e9quemment sous-puissants pour les petits effectifs (incapables de rejeter <span class=\"arabpsy-math-inline\" data-latex=\"H_0\">$H_0$<\/span> face \u00e0 des violations substantielles) et excessivement sensibles lors d&rsquo;effectifs massifs (rejetant <span class=\"arabpsy-math-inline\" data-latex=\"H_0\">$H_0$<\/span> pour des micro-d\u00e9viations sans cons\u00e9quence empirique). L&rsquo;inspection visuelle via les diagrammes Quantile-Quantile (droites de Henry) s&rsquo;av\u00e8re un compl\u00e9ment indispensable.<\/p>\n<p>Le sous-module <code>scipy.stats.probplot<\/code> permet de mod\u00e9liser les quantiles empiriques observ\u00e9s en regard des quantiles th\u00e9oriques de la loi normale. Tout \u00e9cart morphologique substantiel vis-\u00e0-vis de la droite de r\u00e9gression orthogonale signale une anomalie sp\u00e9cifique :<\/p>\n<ul>\n<li>Une courbure en \u00ab S \u00bb r\u00e9v\u00e8le des queues de distribution \u00e9paisses (leptokurticit\u00e9) ou courtes (platykurticit\u00e9).<\/li>\n<li>Une incurvation concave ou convexe caract\u00e9rise une asym\u00e9trie unilat\u00e9rale marqu\u00e9e.<\/li>\n<\/ul>\n<p>Le script d&rsquo;inspection visuelle se d\u00e9ploie via <a rel=\"noopener noreferrer\" href=\"https:\/\/matplotlib.org\">Matplotlib<\/a> :<\/p>\n<p>\n<code>import matplotlib.pyplot as plt<\/code><\/p>\n<p><code>fig, ax = plt.subplots(1, 2, figsize=(12, 5))<\/code><br \/>\n<code>stats.probplot(temps_controle, dist=\"norm\", plot=ax[0])<\/code><br \/>\n<code>ax[0].set_title(\"Trac\u00e9 Q-Q : Groupe Contr\u00f4le\")<\/code><br \/>\n<code>stats.probplot(temps_stress, dist=\"norm\", plot=ax[1])<\/code><br \/>\n<code>ax[1].set_title(\"Trac\u00e9 Q-Q : Groupe Stress\")<\/code><br \/>\n<code>plt.tight_layout()<\/code>\n<\/p>\n<h3>8.3 Arbre d\u00e9cisionnel en cas de non-respect de la normalit\u00e9<\/h3>\n<p>Lorsque le diagnostic confirme l&rsquo;absence de normalit\u00e9 univari\u00e9e, poursuivre la mod\u00e9lisation avec le test F conventionnel expose l&rsquo;analyste \u00e0 un risque de conclusions fallacieuses. Deux voies d&rsquo;ajustement m\u00e9thodologique s&rsquo;ouvrent alors :<\/p>\n<p>La premi\u00e8re strat\u00e9gie r\u00e9side dans l&rsquo;application d&rsquo;une transformation math\u00e9matique non lin\u00e9aire stabilisatrice de variance. La transformation logarithmique (<span class=\"arabpsy-math-inline\" data-latex=\"ln(X)\">$ln(X)$<\/span>) est r\u00e9put\u00e9e pour compresser l&rsquo;asym\u00e9trie positive des temps de r\u00e9action. Les approches param\u00e9triques g\u00e9n\u00e9ralis\u00e9es comme la transformation de <a rel=\"noopener noreferrer\" href=\"https:\/\/en.wikipedia.org\/wiki\/Power_transform#Box%E2%80%93Cox_transformation\">Box-Cox<\/a> (disponible via <code>scipy.stats.boxcox<\/code>) permettent d&rsquo;identifier algorithmiquement le coefficient optimal <span class=\"arabpsy-math-inline\" data-latex=\"lambda\">$lambda$<\/span> assurant l&rsquo;alignement le plus \u00e9troit possible avec la distribution normale.<\/p>\n<p>Si aucune transformation d\u00e9terministe ne parvient \u00e0 normaliser de mani\u00e8re conjointe les distributions ou si le cadre d&rsquo;analyse exige la pr\u00e9servation rigoureuse de l&rsquo;\u00e9chelle d&rsquo;origine des mesures, le statisticien doit imp\u00e9rativement abandonner le test F pour adopter des tests d&rsquo;homosc\u00e9dasticit\u00e9 fond\u00e9s sur les rangs ou les \u00e9carts m\u00e9dians absolus.<\/p>\n<h2>9. Visualisation avanc\u00e9e de la dispersion et de la distribution F<\/h2>\n<p>La restitution visuelle des param\u00e8tres statistiques et des lois sous-jacentes facilite l&rsquo;appropriation des r\u00e9sultats tant pour la communaut\u00e9 scientifique que pour les \u00e9valuateurs pairs.<\/p>\n<h3>9.1 Repr\u00e9sentation graphique de la dispersion des groupes avec Seaborn<\/h3>\n<p>La biblioth\u00e8que <a rel=\"noopener noreferrer\" href=\"https:\/\/seaborn.pydata.org\">Seaborn<\/a> offre une syntaxe expressive pour exposer simultan\u00e9ment la dispersion, la sym\u00e9trie et les observations individuelles. La combinaison superpos\u00e9e d&rsquo;une bo\u00eete \u00e0 moustaches (<code>boxplot<\/code>) et d&rsquo;un nuage de points individualis\u00e9s (<code>stripplot<\/code>) permet d&rsquo;illustrer concr\u00e8tement l&rsquo;in\u00e9galit\u00e9 des \u00e9chelles de dispersion :<\/p>\n<p>\n<code>import seaborn as sns<\/code><br \/>\n<code>import pandas as pd<\/code><\/p>\n<p><code># Pr\u00e9paration du DataFrame structur\u00e9<\/code><br \/>\n<code>df_visu = pd.DataFrame({<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>'Temps': temps_controle + temps_stress,<\/code><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<code>'Condition': ['Contr\u00f4le'] * len(temps_controle) + ['Stress'] * len(temps_stress)<\/code><br \/>\n<code>})<\/code><\/p>\n<p><code>plt.figure(figsize=(8, 6))<\/code><br \/>\n<code>sns.boxplot(x='Condition', y='Temps', data=df_visu, color='lightgray', showmeans=True)<\/code><br \/>\n<code>sns.stripplot(x='Condition', y='Temps', data=df_visu, color='black', alpha=0.6, jitter=0.2, size=7)<\/code><br \/>\n<code>plt.ylabel(\"Temps de r\u00e9action (ms)\")<\/code><br \/>\n<code>plt.title(\"Comparaison visuelle de la dispersion intra-groupe\")<\/code>\n<\/p>\n<p>Ce graphique met visuellement en exergue l&rsquo;ampleur de l&rsquo;\u00e9cart interquartile dilat\u00e9 du groupe exp\u00e9rimental face \u00e0 la compacit\u00e9 du groupe t\u00e9moin, offrant un support visuel imm\u00e9diat aux conclusions analytiques issues du test F.<\/p>\n<h3>9.2 Mod\u00e9lisation graphique de la fonction de densit\u00e9 th\u00e9orique de Fisher<\/h3>\n<p>Pour illustrer la m\u00e9canique probabiliste de la prise de d\u00e9cision inf\u00e9rentielle, il est hautement p\u00e9dagogique de tracer la courbe de densit\u00e9 th\u00e9orique <span class=\"arabpsy-math-inline\" data-latex=\"f(f; \\nu_{num}, \\nu_{den})\">$f(f; \\nu_{num}, \\nu_{den})$<\/span> de la loi de Fisher-Snedecor correspondant aux degr\u00e9s de libert\u00e9 du protocole exp\u00e9rimental.<\/p>\n<p>\u00c0 l&rsquo;aide de <code>scipy.stats.f.pdf<\/code>, on g\u00e9n\u00e8re un vecteur d&rsquo;abscisses continues sur l&rsquo;intervalle <span class=\"arabpsy-math-inline\" data-latex=\"[0, 5]\">$[0, 5]$<\/span>, sur lequel est projet\u00e9e l&rsquo;aire de rejet critique au seuil <span class=\"arabpsy-math-inline\" data-latex=\"\\alpha = 0.05\">$\\alpha = 0.05$<\/span>. La position de la statistique observ\u00e9e peut alors \u00eatre projet\u00e9e sur l&rsquo;axe : si cette derni\u00e8re est tr\u00e8s \u00e9lev\u00e9e (comme le <span class=\"arabpsy-math-inline\" data-latex=\"F_{stat} \\approx 27.86\">$F_{stat} \\approx 27.86$<\/span> de notre exemple empirique), elle se positionne bien au-del\u00e0 de la fronti\u00e8re critique, visualisant de fa\u00e7on spectaculaire l&rsquo;extr\u00eame invraisemblance de l&rsquo;\u00e9chantillonnage sous l&rsquo;hypoth\u00e8se nulle.<\/p>\n<p>\n<code># Mod\u00e9lisation de la densit\u00e9 F th\u00e9orique<\/code><br \/>\n<code>x = np.linspace(0, 5, 1000)<\/code><br \/>\n<code>y = stats.f.pdf(x, 27, 29)<\/code><br \/>\n<code>f_seuil = stats.f.ppf(0.975, 27, 29) # Borne sup\u00e9rieure alpha\/2 = 0.025<\/code><\/p>\n<p><code>plt.figure(figsize=(9, 5))<\/code><br \/>\n<code>plt.plot(x, y, label=\"Densit\u00e9 th\u00e9orique F(27, 29)\", color='navy', lw=2)<\/code><br \/>\n<code>plt.fill_between(x, y, where=(x >= f_seuil), color='crimson', alpha=0.5, label=f\"R\u00e9gion critique (F >= {f_seuil:.2f})\")<\/code><br \/>\n<code>plt.axvline(f_seuil, color='crimson', linestyle='--')<\/code><br \/>\n<code>plt.xlabel(\"Ratio F\")<\/code><br \/>\n<code>plt.ylabel(\"Densit\u00e9 de probabilit\u00e9\")<\/code><br \/>\n<code>plt.legend()<\/code><br \/>\n<code>plt.title(\"Distribution de Fisher-Snedecor et r\u00e9gion de rejet unilat\u00e9rale sup\u00e9rieure\")<\/code>\n<\/p>\n<h3>9.3 Personnalisation des graphiques selon les standards de publication<\/h3>\n<p>La publication au sein de revues scientifiques internationales affili\u00e9es \u00e0 l&rsquo;<a rel=\"noopener noreferrer\" href=\"https:\/\/www.apa.org\">American Psychological Association<\/a> (APA) ou \u00e0 d&rsquo;autres soci\u00e9t\u00e9s savantes impose des standards typographiques stricts :<\/p>\n<ul>\n<li>Suppression des grilles d&rsquo;arri\u00e8re-plan inutiles et des bordures sup\u00e9rieures et droites (chartjunk).<\/li>\n<li>Choix d&rsquo;une typographie sans empattement lisible (Arial ou Helvetica) avec des tailles de police hi\u00e9rarchis\u00e9es.<\/li>\n<li>Utilisation d&rsquo;\u00e9chelles de contrastes rigoureuses garantissant une lisibilit\u00e9 parfaite en noir et blanc ou pour les lecteurs pr\u00e9sentant des d\u00e9ficiences visuelles.<\/li>\n<li>Exportation sous des formats vectoriels haute r\u00e9solution sans perte (format PDF ou SVG) ou matriciels \u00e0 600 DPI (TIFF\/PNG) via la commande <code>plt.savefig('figure.pdf', dpi=600, bbox_inches='tight')<\/code>.<\/li>\n<\/ul>\n<h2>10. Alternatives robustes au test F disponibles dans SciPy<\/h2>\n<p>Compte tenu de l&rsquo;hypersensibilit\u00e9 du test F \u00e0 toute non-normalit\u00e9, la litt\u00e9rature statistique moderne a d\u00e9velopp\u00e9 des protocoles de substitution dot\u00e9s d&rsquo;une r\u00e9silience algorithmique consid\u00e9rablement sup\u00e9rieure.<\/p>\n<h3>10.1 Le test de Levene pour distributions asym\u00e9triques ou mod\u00e9r\u00e9ment d\u00e9viantes<\/h3>\n<p>Propos\u00e9 par Howard Levene en 1960, le test de Levene transforme le probl\u00e8me de comparaison de variances en une analyse de variance standard portant sur les d\u00e9viations absolues des scores individuels par rapport \u00e0 leur mesure de tendance centrale. Initialement, la formulation standard retenait la moyenne arithm\u00e9tique de chaque \u00e9chantillon :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"Z_{ij} = |Y_{ij} - \\bar{Y}_i|\">$$Z_{ij} = |Y_{ij} &#8211; \\bar{Y}_i|$$<\/span><\/p>\n<p>Une ANOVA unifactorielle standard est ensuite ex\u00e9cut\u00e9e directement sur les scores d\u00e9riv\u00e9s <span class=\"arabpsy-math-inline\" data-latex=\"Z_{ij}\">$Z_{ij}$<\/span>. Au sein du module <code>scipy.stats<\/code>, cette approche s&rsquo;impl\u00e9mente via la fonction <code>levene<\/code> avec le param\u00e8tre <code>center='mean'<\/code> :<\/p>\n<p><code>stat_levene, p_levene = stats.levene(temps_controle, temps_stress, center='mean')<\/code><\/p>\n<p>Cette m\u00e9thode conf\u00e8re une bien meilleure robustesse face aux violations mod\u00e9r\u00e9es de la normalit\u00e9 que le test F usuel, tout en pr\u00e9servant une puissance statistique remarquable.<\/p>\n<h3>10.2 Le test de Brown-Forsythe pour donn\u00e9es \u00e0 fortes d\u00e9viations<\/h3>\n<p>En 1974, Morton Brown et Alan Forsythe ont perfectionn\u00e9 la m\u00e9thodologie de Levene en rempla\u00e7ant la moyenne arithm\u00e9tique par la m\u00e9diane de chaque groupe comme point d&rsquo;ancrage central :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"Z_{ij} = |Y_{ij} - \\tilde{Y}_i|\">$$Z_{ij} = |Y_{ij} &#8211; \\tilde{Y}_i|$$<\/span><\/p>\n<p>Cette substitution est d\u00e9terminante : la m\u00e9diane \u00e9tant particuli\u00e8rement insensible aux valeurs extr\u00eames, le test conserve son taux d&rsquo;erreur de premier type nominal m\u00eame lorsque les donn\u00e9es sous-jacentes sont issues de distributions hautement asym\u00e9triques ou pr\u00e9sentent des queues extr\u00eamement lourdes (distributions de Cauchy ou log-normales s\u00e9v\u00e8res).<\/p>\n<p>Cette proc\u00e9dure repr\u00e9sente l&rsquo;option configur\u00e9e par d\u00e9faut dans SciPy :<\/p>\n<p><code>stat_bf, p_bf = stats.levene(temps_controle, temps_stress, center='median')<\/code><\/p>\n<p>En recherche psychologique et comportementale, le test de Brown-Forsythe constitue d\u00e9sormais la r\u00e9f\u00e9rence consensuelle pour statuer sur l&rsquo;homosc\u00e9dasticit\u00e9 pr\u00e9alablement \u00e0 toute analyse lin\u00e9aire.<\/p>\n<h3>10.3 Le test de Bartlett et crit\u00e8res de s\u00e9lection du test adapt\u00e9<\/h3>\n<p>Le test de Bartlett (<code>scipy.stats.bartlett<\/code>) propose une autre formulation analytique fond\u00e9e sur une correction du ratio de vraisemblance logarithmique. Toutefois, \u00e0 l&rsquo;instar du test F, le test de Bartlett est extr\u00eamement sensible \u00e0 la moindre d\u00e9viation de normalit\u00e9 ; son emploi doit \u00eatre strictement circonscrit aux situations o\u00f9 la parfaite gaussianit\u00e9 des donn\u00e9es a \u00e9t\u00e9 math\u00e9matiquement prouv\u00e9e.<\/p>\n<p>Pour arbitrer objectivement entre ces diff\u00e9rentes alternatives, le chercheur peut s&rsquo;appuyer sur la grille d&rsquo;orientation suivante :<\/p>\n<ul>\n<li><strong>Normalit\u00e9 univari\u00e9e rigoureusement \u00e9tablie<\/strong> : Le test F ou le test de Bartlett peuvent \u00eatre appliqu\u00e9s ; ils b\u00e9n\u00e9ficient d&rsquo;une puissance optimale.<\/li>\n<li><strong>D\u00e9viations mod\u00e9r\u00e9es ou distributions sym\u00e9triques non gaussiennes<\/strong> : Privil\u00e9gier le test de Levene centr\u00e9 sur la moyenne (<code>center='mean'<\/code>).<\/li>\n<li><strong>Distributions asym\u00e9triques, queues lourdes ou pr\u00e9sence suspect\u00e9e d&rsquo;outliers<\/strong> : Adopter sans r\u00e9serve le test de Brown-Forsythe centr\u00e9 sur la m\u00e9diane (<code>center='median'<\/code>).<\/li>\n<\/ul>\n<h2>11. Extension du test F dans les mod\u00e8les lin\u00e9aires et l&rsquo;ANOVA<\/h2>\n<p>La compr\u00e9hension du test F \u00e0 deux \u00e9chantillons offre une passerelle conceptuelle directe vers l&rsquo;analyse des mod\u00e8les lin\u00e9aires g\u00e9n\u00e9raux. La statistique <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span> n&rsquo;est pas limit\u00e9e \u00e0 la comparaison de deux variances isol\u00e9es : elle forme le c\u0153ur du test omnibus de l&rsquo;analyse de variance (<a rel=\"noopener noreferrer\" href=\"https:\/\/fr.wikipedia.org\/wiki\/Analyse_de_la_variance\">ANOVA<\/a>) et de la r\u00e9gression multiple.<\/p>\n<h3>11.1 Passage de la comparaison de deux variances au test omnibus de l&rsquo;ANOVA<\/h3>\n<p>Dans l&rsquo;analyse de variance unifactorielle comparant <span class=\"arabpsy-math-inline\" data-latex=\"k\">$k$<\/span> groupes (<span class=\"arabpsy-math-inline\" data-latex=\"k ge 2\">$k ge 2$<\/span>), la variabilit\u00e9 totale observ\u00e9e dans les donn\u00e9es est d\u00e9compos\u00e9e additivement en deux composantes ind\u00e9pendantes :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"SS_{Total} = SS_{Inter} + SS_{Intra}\">$$SS_{Total} = SS_{Inter} + SS_{Intra}$$<\/span><\/p>\n<p>La somme des carr\u00e9s inter-groupes (<span class=\"arabpsy-math-inline\" data-latex=\"SS_{Inter}\">$SS_{Inter}$<\/span>) quantifie la dispersion des moyennes des sous-groupes autour de la moyenne g\u00e9n\u00e9rale, pond\u00e9r\u00e9e par leurs effectifs. La somme des carr\u00e9s intra-groupes (<span class=\"arabpsy-math-inline\" data-latex=\"SS_{Intra}\">$SS_{Intra}$<\/span> ou r\u00e9siduelle) agr\u00e8ge les d\u00e9viations des individus autour de la moyenne sp\u00e9cifique de leur condition.<\/p>\n<p>En divisant chacune de ces sommes par leurs degr\u00e9s de libert\u00e9 respectifs (<span class=\"arabpsy-math-inline\" data-latex=\"\\nu_{Inter} = k - 1\">$\\nu_{Inter} = k &#8211; 1$<\/span> et <span class=\"arabpsy-math-inline\" data-latex=\"\\nu_{Intra} = N - k\">$\\nu_{Intra} = N &#8211; k$<\/span>, o\u00f9 <span class=\"arabpsy-math-inline\" data-latex=\"N\">$N$<\/span> repr\u00e9sente l&rsquo;effectif global), on obtient les carr\u00e9s moyens inter (<span class=\"arabpsy-math-inline\" data-latex=\"MS_{Inter}\">$MS_{Inter}$<\/span>) et intra (<span class=\"arabpsy-math-inline\" data-latex=\"MS_{Intra}\">$MS_{Intra}$<\/span>). Le test omnibus de l&rsquo;ANOVA s&rsquo;exprime alors comme un ratio F :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"F_{omnibus} = \\frac{MS_{Inter}}{MS_{Intra}}\">$$F_{omnibus} = \\frac{MS_{Inter}}{MS_{Intra}}$$<\/span><\/p>\n<p>Lorsque <span class=\"arabpsy-math-inline\" data-latex=\"k = 2\">$k = 2$<\/span>, ce test omnibus de l&rsquo;ANOVA unifactorielle est rigoureusement identique au carr\u00e9 de la statistique t de Student bilat\u00e9rale (<span class=\"arabpsy-math-inline\" data-latex=\"F = t^2\">$F = t^2$<\/span>). L&rsquo;ANOVA est donc fondamentalement un test F \u00e9valuant si la variance induite par la manipulation exp\u00e9rimentale surpasse significativement la variance r\u00e9siduelle naturelle.<\/p>\n<h3>11.2 Ex\u00e9cution de mod\u00e8les lin\u00e9aires avec Statsmodels en Python<\/h3>\n<p>Pour ex\u00e9cuter ces mod\u00e9lisations en Python, la biblioth\u00e8que sp\u00e9cialis\u00e9e <a rel=\"noopener noreferrer\" href=\"https:\/\/www.statsmodels.org\">Statsmodels<\/a> fournit une interface syntaxique inspir\u00e9e de l&rsquo;environnement R, s&rsquo;appuyant sur les formules de r\u00e9gression patsy :<\/p>\n<p>\n<code>import statsmodels.api as sm<\/code><br \/>\n<code>from statsmodels.formula.api import ols<\/code><\/p>\n<p><code># Ajustement d'un mod\u00e8le lin\u00e9aire standard<\/code><br \/>\n<code>modele = ols('Temps ~ Condition', data=df_visu).fit()<\/code><\/p>\n<p><code># Extraction de la table d'ANOVA<\/code><br \/>\n<code>table_anova = sm.stats.anova_lm(modele, typ=2)<\/code><br \/>\n<code>print(table_anova)<\/code>\n<\/p>\n<p>La table restitu\u00e9e d\u00e9taille avec pr\u00e9cision les sommes de carr\u00e9s, les degr\u00e9s de libert\u00e9, les carr\u00e9s moyens, ainsi que la statistique <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span> omnibus et sa valeur de significativit\u00e9 associ\u00e9e.<\/p>\n<h3>11.3 Quantification de la taille d&rsquo;effet associ\u00e9e \u00e0 la statistique F<\/h3>\n<p>La seule obtention d&rsquo;une significativit\u00e9 statistique ($p < 0.05$) demeure insuffisante pour renseigner l'amplitude r\u00e9elle d'un effet empirique. Il est indispensable d'adjoindre au test d'hypoth\u00e8se une estimation non param\u00e9trique de la taille d'effet standardis\u00e9e.<\/p>\n<p>La m\u00e9trique la plus fr\u00e9quemment rapport\u00e9e est l&rsquo;\u00eata-carr\u00e9 (<span class=\"arabpsy-math-inline\" data-latex=\"\\eta^2\">$\\eta^2$<\/span>), qui mesure la proportion de la variance totale expliqu\u00e9e par l&rsquo;effet d&rsquo;int\u00e9r\u00eat :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"\\eta^2 = \\frac{SS_{Inter}}{SS_{Total}}\">$$\\eta^2 = \\frac{SS_{Inter}}{SS_{Total}}$$<\/span><\/p>\n<p>N\u00e9anmoins, l&rsquo;\u00eata-carr\u00e9 pr\u00e9sente un biais positif syst\u00e9matique dans les petits \u00e9chantillons. Pour obtenir une estimation non biais\u00e9e de la variance populationnelle expliqu\u00e9e, l&rsquo;om\u00e9ga-carr\u00e9 (<span class=\"arabpsy-math-inline\" data-latex=\"\\omega^2\">$\\omega^2$<\/span>) doit \u00eatre privil\u00e9gi\u00e9 :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"\\omega^2 = \\frac{SS_{Inter} - (k - 1)MS_{Intra}}{SS_{Total} + MS_{Intra}}\">$$\\omega^2 = \\frac{SS_{Inter} &#8211; (k &#8211; 1)MS_{Intra}}{SS_{Total} + MS_{Intra}}$$<\/span><\/p>\n<p>Selon les conventions \u00e9tablies par Jacob Cohen en sciences comportementales, un <span class=\"arabpsy-math-inline\" data-latex=\"\\eta^2\">$\\eta^2$<\/span> ou <span class=\"arabpsy-math-inline\" data-latex=\"\\omega^2\">$\\omega^2$<\/span> d&rsquo;environ $0.01$ correspond \u00e0 un effet de faible amplitude, $0.06$ d\u00e9limite un effet moyen, et $0.14$ ou plus caract\u00e9rise un effet d&rsquo;ampleur majeure.<\/p>\n<h2>12. R\u00e9daction acad\u00e9mique et bonnes pratiques de publication<\/h2>\n<p>La diffusion des r\u00e9sultats au sein de revues scientifiques avec comit\u00e9 de lecture exige une conformit\u00e9 sans faille aux standards de r\u00e9daction statistique et aux principes d&rsquo;int\u00e9grit\u00e9 scientifique.<\/p>\n<h3>12.1 Normalisation de la pr\u00e9sentation des r\u00e9sultats selon les normes APA<\/h3>\n<p>Les recommandations du manuel de style de l&rsquo;APA (7e \u00e9dition) d\u00e9finissent une nomenclature typographique unifi\u00e9e pour la communication des tests d&rsquo;hypoth\u00e8se inf\u00e9rentiels. La mention d&rsquo;un r\u00e9sultat issu d&rsquo;une distribution F ob\u00e9it \u00e0 la structure suivante :<\/p>\n<p><span class=\"arabpsy-math-display\" data-latex=\"F(\\nu_{num}, \\nu_{den}) = \\text{valeur}, \\quad p = \\text{valeur}, \\quad \\text{taille d&#039;effet}\">$$F(\\nu_{num}, \\nu_{den}) = \\text{valeur}, \\quad p = \\text{valeur}, \\quad \\text{taille d&rsquo;effet}$$<\/span><\/p>\n<p>Pour illustrer cette codification \u00e0 partir de notre \u00e9tude sur le stress psychosocial :<\/p>\n<p><em>\u00ab Une analyse pr\u00e9liminaire de l&rsquo;homog\u00e9n\u00e9it\u00e9 des variances a r\u00e9v\u00e9l\u00e9 une h\u00e9t\u00e9rosc\u00e9dasticit\u00e9 statistiquement significative entre les deux conditions, <span class=\"arabpsy-math-inline\" data-latex=\"F(27, 29) = 27.86\">$F(27, 29) = 27.86$<\/span>, $p < .001<span class=\"arabpsy-math-inline\" data-latex=\". Le groupe soumis au stress pr\u00e9sente une variabilit\u00e9 des temps de r\u00e9action consid\u00e9rablement plus \u00e9lev\u00e9e (\">$. Le groupe soumis au stress pr\u00e9sente une variabilit\u00e9 des temps de r\u00e9action consid\u00e9rablement plus \u00e9lev\u00e9e ($<\/span>M = 512.43text{ ms}<span class=\"arabpsy-math-inline\" data-latex=\",\">$,$<\/span>SD = 64.93<span class=\"arabpsy-math-inline\" data-latex=\") que le groupe contr\u00f4le (\">$) que le groupe contr\u00f4le ($<\/span>M = 469.13text{ ms}<span class=\"arabpsy-math-inline\" data-latex=\",\">$,$<\/span>SD = 12.30$). En cons\u00e9quence, la comparaison subs\u00e9quente des moyennes a \u00e9t\u00e9 r\u00e9alis\u00e9e au moyen d&rsquo;un test t de Welch pour \u00e9chantillons ind\u00e9pendants. \u00bb<\/em><\/p>\n<p>Il convient de veiller aux r\u00e8gles typographiques courantes :<\/p>\n<ul>\n<li>Les lettres latines d\u00e9signant des grandeurs statistiques (<span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"p\">$p$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"t\">$t$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"M\">$M$<\/span>, <span class=\"arabpsy-math-inline\" data-latex=\"SD\">$SD$<\/span>) s&rsquo;\u00e9crivent obligatoirement en italique.<\/li>\n<li>La p-valeur ne doit jamais \u00eatre pr\u00e9c\u00e9d\u00e9e d&rsquo;un z\u00e9ro si elle ne peut exc\u00e9der l&rsquo;unit\u00e9 (\u00e9crire <span class=\"arabpsy-math-inline\" data-latex=\"p = .003\">$p = .003$<\/span> et non <span class=\"arabpsy-math-inline\" data-latex=\"p = 0.003\">$p = 0.003$<\/span>). Si la valeur calcul\u00e9e est inf\u00e9rieure \u00e0 $0.001$, la notation conventionnelle est $p < .001$.<\/li>\n<li>Les degr\u00e9s de libert\u00e9 associ\u00e9s sont obligatoirement sp\u00e9cifi\u00e9s entre parenth\u00e8ses imm\u00e9diatement apr\u00e8s la lettre <span class=\"arabpsy-math-inline\" data-latex=\"F\">$F$<\/span>, s\u00e9par\u00e9s par une virgule.<\/li>\n<\/ul>\n<h3>12.2 \u00c9cueils m\u00e9thodologiques courants et d\u00e9rives interpr\u00e9tatives<\/h3>\n<p>L&rsquo;application du test F expose le praticien \u00e0 plusieurs erreurs conceptuelles r\u00e9currentes :<\/p>\n<p>Le premier pi\u00e8ge concerne la fausse sym\u00e9trie de d\u00e9cision : l&rsquo;absence de rejet de l&rsquo;hypoth\u00e8se nulle (<span class=\"arabpsy-math-inline\" data-latex=\"p &gt; .05\">$p > .05$<\/span>) ne constitue en aucun cas une preuve d&rsquo;homosc\u00e9dasticit\u00e9 parfaite. Elle indique simplement que les donn\u00e9es actuelles ne permettent pas de r\u00e9cuser l&rsquo;hypoth\u00e8se d&rsquo;\u00e9galit\u00e9 avec une force probante suffisante, souvent en raison d&rsquo;un manque de puissance li\u00e9 \u00e0 un effectif restreint.<\/p>\n<p>Le second \u00e9cueil r\u00e9side dans l&rsquo;automatisation aveugle de tests pr\u00e9alables syst\u00e9matiques. R\u00e9aliser syst\u00e9matiquement un test formel d&rsquo;homosc\u00e9dasticit\u00e9 pour d\u00e9cider d&rsquo;appliquer ou non une correction de Welch engendre une proc\u00e9dure d\u00e9cisionnelle en deux \u00e9tapes dont le comportement stochastique global gonfle artificiellement l&rsquo;erreur de premier type sur l&rsquo;ensemble de l&rsquo;\u00e9tude. De nombreux m\u00e9thodologistes pr\u00e9conisent d&rsquo;utiliser d&#8217;embl\u00e9e la correction de Welch par d\u00e9faut d\u00e8s lors que des doutes th\u00e9oriques p\u00e8sent sur l&rsquo;\u00e9galit\u00e9 des variances, sans recourir \u00e0 un pr\u00e9-test rigide.<\/p>\n<p>Enfin, dans les tr\u00e8s grands \u00e9chantillons (comportant des milliers d&rsquo;observations), le test F devient si puissant qu&rsquo;il rejettera <span class=\"arabpsy-math-inline\" data-latex=\"H_0\">$H_0$<\/span> pour des disparit\u00e9s infinit\u00e9simales et totalement d\u00e9nu\u00e9es de pertinence th\u00e9orique ou clinique. Le discernement entre significativit\u00e9 statistique et importance pratique demeure primordial.<\/p>\n<h3>12.3 Documentation du code Python et standards de science ouverte<\/h3>\n<p>Dans le cadre du mouvement international pour la <a rel=\"noopener noreferrer\" href=\"https:\/\/www.cos.io\">science ouverte<\/a> (Open Science), la simple publication des moyennes et valeurs p ne suffit plus. Les chercheurs sont encourag\u00e9s \u00e0 archiver l&rsquo;ensemble des donn\u00e9es brutes d\u00e9personnalis\u00e9es ainsi que les scripts d&rsquo;analyse sur des plateformes publiques p\u00e9rennes telles que le Centre pour la science ouverte (<a rel=\"noopener noreferrer\" href=\"https:\/\/osf.io\">Open Science Framework<\/a> &#8211; OSF) ou GitHub \/ Zenodo.<\/p>\n<p>Pour assurer la p\u00e9rennit\u00e9 algorithmique des calculs pr\u00e9sent\u00e9s :<\/p>\n<ul>\n<li>Figer rigoureusement les versions des packages utilis\u00e9s au moyen d&rsquo;un fichier <code>requirements.txt<\/code> standardis\u00e9 ou d&rsquo;un gestionnaire d&rsquo;environnement comme Poetry ou Conda.<\/li>\n<li>Documenter les scripts \u00e0 l&rsquo;aide de cha\u00eenes d&rsquo;information (docstrings) explicites conformes au format PEP 257.<\/li>\n<li>Fournir un carnet interactif (Jupyter Notebook) reproductible de bout en bout, int\u00e9grant les tests de normalit\u00e9, les graphiques d&rsquo;inspection visuelle et l&rsquo;ensemble des diagnostics statistiques.<\/li>\n<\/ul>\n<h2>R\u00e9f\u00e9rences<\/h2>\n<ul>\n<li>Brown, M. B., &amp; Forsythe, A. B. (1974). Robust tests for the equality of variances. <em>Journal of the American Statistical Association<\/em>, 69(346), 364-367. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1080\/01621459.1974.10482955\">https:\/\/doi.org\/10.1080\/01621459.1974.10482955<\/a><\/li>\n<li>Cohen, J. (1988). <em>Statistical power analysis for the behavioral sciences<\/em> (2nd ed.). Lawrence Erlbaum Associates.<\/li>\n<li>Fisher, R. A. (1925). <em>Statistical methods for research workers<\/em>. Oliver and Boyd.<\/li>\n<li>Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., &#8230; &amp; Oliphant, T. E. (2020). Array programming with NumPy. <em>Nature<\/em>, 585(7825), 357-362. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1038\/s41586-020-2649-2\">https:\/\/doi.org\/10.1038\/s41586-020-2649-2<\/a><\/li>\n<li>Levene, H. (1960). Robust tests for equality of variances. In I. Olkin, S. G. Ghurye, W. Hoeffding, W. G. Madow, &amp; H. B. Mann (Eds.), <em>Contributions to probability and statistics: Essays in honor of Harold Hotelling<\/em> (pp. 278-292). Stanford University Press.<\/li>\n<li>Snedecor, G. W., &amp; Cochran, W. G. (1989). <em>Statistical methods<\/em> (8th ed.). Iowa State University Press.<\/li>\n<li>Virtanen, P., Gommers, R., Oliphant, T. E., Haberland, M., Reddy, T., Cournapeau, D., &#8230; &amp; SciPy 1.0 Contributors. (2020). SciPy 1.0: Fundamental algorithms for scientific computing in Python. <em>Nature Methods<\/em>, 17(3), 261-272. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.1038\/s41592-019-0686-2\">https:\/\/doi.org\/10.1038\/s41592-019-0686-2<\/a><\/li>\n<li>Waskom, M. L. (2021). Seaborn: statistical data visualization. <em>Journal of Open Source Software<\/em>, 6(60), 3021. <a rel=\"noopener noreferrer\" href=\"https:\/\/doi.org\/10.21105\/joss.03021\">https:\/\/doi.org\/10.21105\/joss.03021<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Guide m\u00e9thodologique et acad\u00e9mique pour ex\u00e9cuter, interpr\u00e9ter et visualiser un test F d&rsquo;\u00e9galit\u00e9 des variances avec Python (NumPy, SciPy) en psychom\u00e9trie.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","categories":[2465,1835],"tags":[2227,2461,2468,4352,2972],"class_list":["post-4537","psych_stat","type-psych_stat","status-publish","hentry","category-programmation-python","category-statistiques-en-psychologie","tag-analyse-de-variance","tag-homoscedasticite","tag-python","tag-scipy","tag-test-f"],"_links":{"self":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/4537","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=4537"}],"version-history":[{"count":0,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=\/wp\/v2\/psych_stat\/4537\/revisions"}],"wp:attachment":[{"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4537"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/french.arabpsychology.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}