Calculateur du rapport des cotes pour tableau 2x2
Ce calculateur compare les cotes d’un résultat entre deux groupes à partir des quatre effectifs d’un tableau 2x2.
Lancer gratuitement
Saisissez dans a et b les effectifs avec et sans résultat du groupe 1, puis dans c et d ceux du groupe 2. Le résultat présente le rapport des cotes, les cotes de chaque groupe et les produits croisés, afin que vous puissiez facilement vérifier et réutiliser le calcul.
Disposez correctement les quatre effectifs
Un rapport des cotes part d’un tableau 2x2, où la position de chaque effectif est déterminante. Placez dans la cellule a les personnes ou éléments du groupe 1 qui présentent le résultat, puis dans b ceux du même groupe qui ne le présentent pas. Placez dans c l’effectif avec résultat du groupe 2 et dans d l’effectif sans résultat. En bref, la première ligne contient a et b, tandis que la seconde contient c et d. Conservez exactement la même définition du résultat dans les deux groupes : en modifier le sens entre les lignes invalide la comparaison. Les effectifs doivent être des entiers non négatifs, car les cellules représentent des fréquences, et non des pourcentages, des taux ou des cotes déjà calculées. Avant le calcul, vérifiez que chaque observation appartient à une seule cellule et que les quatre cellules couvrent la population représentée. Des libellés explicites, comme exposé et non exposé, traitement et contrôle, ou cas et non-cas, évitent une inversion accidentelle. Permuter les lignes produit le rapport réciproque ; choisissez donc le groupe 1 avant de saisir les données.
Comprenez le calcul et son résultat
La cote du groupe 1 est a divisé par b, et celle du groupe 2 est c divisé par d. Le rapport compare ces quantités : (a / b) / (c / d). L’algèbre ramène cette expression à la formule des produits croisés (a × d) / (b × c), utilisée ici. Un résultat de 1 signifie que les cotes observées sont égales dans les deux groupes. Une valeur supérieure à 1 indique une cote plus élevée dans le groupe 1 ; une valeur comprise entre 0 et 1 indique une cote plus faible. Par exemple, un rapport de 2 décrit une cote deux fois plus grande, et non une probabilité deux fois plus grande. Cote et probabilité sont liées sans être interchangeables, surtout lorsque le résultat est fréquent. Le numérateur et le dénominateur renvoyés exposent les produits croisés pour faciliter l’audit. Les cotes séparées aident aussi à déterminer si un rapport inattendu vient de l’orientation du tableau ou des effectifs. Interprétez la valeur avec le plan d’étude, la taille de l’échantillon, l’incertitude et le contexte scientifique.
Traitez les cellules nulles avec discernement
La formule directe a pour dénominateur b × c. Si b ou c vaut zéro, le dénominateur est nul et la capacité renvoie une erreur de saisie plutôt qu’une valeur infinie ou ambiguë. Ce choix est volontaire : une estimation infinie isolée est difficile à exploiter avec cohérence et peut masquer des données trop rares. Certaines méthodes appliquent une correction de continuité, souvent en ajoutant une petite constante à chaque cellule, mais cette correction modifie l’estimateur et doit être choisie explicitement au lieu d’être imposée silencieusement. Une valeur nulle pour a ou d reste admise si b et c sont positifs ; le numérateur et le rapport valent alors zéro. Même sans cellule nulle, une estimation ponctuelle n’indique pas sa précision. Pour un rapport ou une inférence, accompagnez-la d’un intervalle de confiance et d’un test adapté. Une association ne prouve pas non plus la causalité : confusion, sélection, mesure et échantillonnage peuvent influencer le tableau. L’API facture $0.002 par requête ; la même arithmétique déterministe s’exécute dans le navigateur sans transmettre les effectifs ailleurs.
Cas d’usage
Comparer traitement et contrôle
Résumez les cotes relatives à partir des effectifs avec et sans événement de deux groupes d’étude.
Analyser une étude cas-témoins
Comparez les cotes d’exposition après avoir disposé les effectifs selon une orientation cohérente.
Vérifier un tableau croisé publié
Recalculez le rapport et examinez son numérateur, son dénominateur et les cotes par groupe.
Questions fréquentes
Quelle est la formule du rapport des cotes ?
Avec a pour résultat et b pour absence de résultat dans le groupe 1, puis c et d dans le groupe 2, la formule est (a × d) / (b × c).
Que signifie un rapport des cotes égal à 1 ?
Il indique que les cotes observées du résultat sont identiques dans le groupe 1 et le groupe 2.
Pourquoi un dénominateur nul provoque-t-il une erreur ?
Si b ou c vaut zéro, le dénominateur croisé b × c est nul ; le rapport direct n’est pas fini et l’estimateur demandé ne peut pas être renvoyé.
Le calculateur applique-t-il une correction de continuité ?
Non. Il utilise exactement les quatre effectifs saisis et n’ajoute pas silencieusement de constante aux cellules nulles ou rares.
Le rapport des cotes est-il un risque relatif ?
Non. Le premier compare des cotes, le second des probabilités ; ils peuvent beaucoup différer lorsque le résultat est fréquent.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002. Le calculateur du navigateur fonctionne gratuitement en local.
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/odds-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":30,"b":70,"c":20,"d":80}'const res = await fetch("https://api.kit.forhosting.com/stat/odds-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 30,
"b": 70,
"c": 20,
"d": 80
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/odds-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 30,
"b": 70,
"c": 20,
"d": 80
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/odds-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":30,"b":70,"c":20,"d":80}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":30,"b":70,"c":20,"d":80}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/odds-ratio", 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
{
"a": 30,
"b": 70,
"c": 20,
"d": 80
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.odds_ratio",
"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. |