Calculateur de moyenne winsorisée
La moyenne winsorisée résume des données numériques tout en réduisant l’influence des observations anormalement faibles ou élevées.
Lancer gratuitement
Indiquez un tableau et une fraction limite pour chaque extrémité. Le calculateur trie les observations, détermine les bornes inférieure et supérieure selon leur rang, remplace les valeurs qui les dépassent, puis calcule la moyenne de l’échantillon ajusté. Il renvoie aussi les bornes, l’effectif de chaque extrémité et les valeurs winsorisées afin de garantir un résultat transparent et reproductible.
Choisissez une fraction adaptée à votre analyse
La fraction limite indique la part de l’échantillon considérée comme chacune des deux extrémités. Une fraction de 0.10 signifie que les dix pour cent les plus faibles et les dix pour cent les plus élevés peuvent être bornés. Les observations étant discrètes, le calculateur multiplie la taille de l’échantillon par la fraction et retient la partie entière pour obtenir l’effectif de chaque extrémité. Avec 23 observations et une fraction de 0.10, deux observations sont bornées de chaque côté. Une fraction nulle ne modifie aucune valeur et restitue donc la moyenne arithmétique ordinaire. Des fractions plus élevées rendent progressivement le résumé moins sensible aux extrêmes, mais éliminent aussi davantage d’informations sur la variation réelle. Dans la mesure du possible, choisissez la fraction avant de consulter le résultat souhaité et consignez ce choix avec la sortie. Pour un travail formel, appliquez la fraction prévue par votre méthode, votre protocole ou les usages de votre domaine. En l’absence de convention, comparez plusieurs fractions raisonnables et indiquez si la conclusion de fond change, plutôt que de retenir le réglage produisant le nombre le plus avantageux.
Comprenez précisément comment le bornage transforme l’échantillon
Les observations sont classées de la plus petite à la plus grande. Si l’effectif de chaque extrémité vaut k, la valeur à la position ordonnée k devient la borne inférieure, tandis que celle située à k positions de l’extrémité haute devient la borne supérieure. Toute observation inférieure à la borne basse est remplacée par celle-ci, et toute observation supérieure à la borne haute est remplacée par la borne haute. Les valeurs comprises entre les deux restent inchangées. La moyenne est ensuite calculée sur les observations ajustées. Ce procédé diffère d’une moyenne tronquée : la troncature retire des observations et réduit l’effectif de la moyenne, alors que la winsorisation conserve la taille initiale de l’échantillon et substitue des valeurs frontières aux extrêmes. La réponse présente le tableau trié et ajusté sous le nom winsorized_values, ainsi que lower_limit, upper_limit et tail_count, afin que vous puissiez contrôler chaque substitution. Lorsque la fraction vaut exactement la moitié, les deux bornes de rang se croiseraient pour un échantillon pair. Le calculateur définit ce cas comme la médiane de l’échantillon et ramène toutes les observations à cette valeur ; pour un effectif pair, cette médiane est la moyenne des deux valeurs centrales.
Interprétez le résultat sans masquer des extrêmes significatifs
Une moyenne winsorisée est utile lorsque les observations extrêmes sont assez plausibles pour que leur suppression soit difficile à justifier, mais assez influentes pour fausser une moyenne ordinaire. Elle ne répare pas automatiquement des données incorrectes. Examinez d’abord les erreurs d’unité, doublons, pannes de capteur, mesures impossibles et fautes de saisie ; corrigez ou excluez les erreurs confirmées selon une règle de nettoyage documentée. Appliquez ensuite la winsorisation à l’échantillon analytique restant lorsqu’une estimation robuste de la position répond à la question étudiée. Conservez toujours dans vos notes la moyenne ordinaire, la taille de l’échantillon, la fraction et les bornes. Un écart important entre les moyennes ordinaire et winsorisée constitue une information diagnostique : il montre que les extrémités influencent sensiblement le résultat et mérite une explication. Gardez également à l’esprit que la winsorisation modifie la distribution empirique et peut affecter les estimations de variance, les intervalles de confiance et les modèles ultérieurs. Pour des statistiques inférentielles, utilisez une méthode dont les erreurs types tiennent explicitement compte de la winsorisation, au lieu de traiter les valeurs ajustées comme des mesures brutes intactes. Le calculateur fournit un résumé déterministe, sans prétendre qu’une fraction donnée soit scientifiquement appropriée.
Cas d’usage
Résumer des mesures opérationnelles
Réduisez l’influence de valeurs extrêmes occasionnelles de latence, de durée ou de capteurs tout en conservant l’effectif initial.
Tester la sensibilité aux valeurs aberrantes
Comparez la moyenne ordinaire à la moyenne winsorisée pour savoir si quelques valeurs aux extrémités déterminent le résultat principal.
Reproduire une règle de rapport robuste
Appliquez systématiquement une fraction documentée et conservez les bornes et valeurs ajustées comme piste d’audit.
Questions fréquentes
Quel est le coût du calcul ?
Le calculateur s’exécute gratuitement dans le navigateur sur cette page. Les requêtes API utilisent le tarif de base publié de $0.002.
La moyenne winsorisée équivaut-elle à une moyenne tronquée ?
Non. Une moyenne tronquée retire des observations aux deux extrémités. La moyenne winsorisée conserve le même effectif, mais remplace les valeurs extrêmes par les bornes retenues les plus proches.
Comment l’effectif des observations bornées est-il déterminé ?
Pour chaque extrémité, le calculateur retient la partie entière de la taille de l’échantillon multipliée par la fraction limite. Le champ tail_count indique cet effectif.
Que se passe-t-il si la fraction limite vaut zéro ?
Aucune observation n’est bornée ; le résultat correspond donc à la moyenne arithmétique ordinaire.
La fraction limite peut-elle valoir la moitié ?
Oui. Lorsqu’elle vaut exactement la moitié, toutes les valeurs sont ramenées à la médiane de l’échantillon. Pour un effectif pair, la médiane est le milieu des deux valeurs centrales.
Le calculateur accepte-t-il les valeurs manquantes ou non numériques ?
Non. Le tableau values doit contenir au moins un nombre fini et tous ses éléments doivent être numériques. Nettoyez ou imputez explicitement les valeurs manquantes avant le calcul.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/stat/winsorized-mean \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"values":[1,2,3,4,100],"limit_fraction":0.2}'const res = await fetch("https://api.kit.forhosting.com/stat/winsorized-mean", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"values": [
1,
2,
3,
4,
100
],
"limit_fraction": 0.2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/winsorized-mean",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"values": [
1,
2,
3,
4,
100
],
"limit_fraction": 0.2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/winsorized-mean", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"values":[1,2,3,4,100],"limit_fraction":0.2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"values":[1,2,3,4,100],"limit_fraction":0.2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/winsorized-mean", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"values": [
1,
2,
3,
4,
100
],
"limit_fraction": 0.2
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.winsorized_mean",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |