Probabilité marginale
Pour le tableau conjoint 0,1 ; 0,2 ; 0,3 ; 0,4, la marginale par lignes vaut 0,3 et 0,7, et la marginale par colonnes 0,4 et 0,6. Collez le tableau, choisissez lignes ou colonnes : le total général est vérifié d'abord. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Tout se passe dans votre navigateur : gratuit, sans envoi de vos données.
Un tableau de probabilité conjointe énumère chaque combinaison de deux variables discrètes et la probabilité de chaque paire. La probabilité marginale d’une variable est ce qui reste après avoir sommé l’autre : pour la variable de ligne vous additionnez le long de chaque ligne, et pour celle de colonne vous additionnez vers le bas de chaque colonne. Ce calculateur de probabilité marginale accepte une matrice conjointe rectangulaire de cellules non négatives, vérifie que le total général vaut un, puis renvoie le vecteur marginal choisi avec les métadonnées de forme et la formule du manuel.
Ce que signifie la probabilité marginale et ce que contient la réponse
En probabilité élémentaire, un tableau conjoint pour les variables discrètes X et Y stocke P(X égal à i et Y égal à j) dans la cellule (i, j). La loi des probabilités totales indique que la marginale de X s’obtient en sommant sur chaque niveau de Y : P(X égal à i) égale la somme sur j de la cellule conjointe de cette ligne. Symétriquement, la marginale de Y est la somme sur i de chaque colonne.
Ces deux opérations constituent tout le noyau mathématique de ce calculateur. Vous envoyez une matrice rectangulaire de nombres finis non négatifs et un indicateur de variable row ou column. Le moteur mesure d’abord le total général de chaque cellule.
Ce n’est que lorsque ce total vaut un dans une tolérance flottante serrée qu’il calcule la marge demandée. La réponse renvoie le tableau conjoint nettoyé, indique le nombre de lignes et de colonnes, rappelle la variable choisie, renvoie le tableau marginal dans l’ordre des indices, rapporte le total vérifié et inclut une courte chaîne de formule telle que P(X égal à i) égale la somme sur j de P(X égal à i, Y égal à j).
Les contrôles classiques de cours incluent le tableau deux par deux avec les cellules zéro virgule un, zéro virgule deux, zéro virgule trois et zéro virgule quatre : la marginale des lignes est zéro virgule trois et zéro virgule sept, et celle des colonnes est zéro virgule quatre et zéro virgule six. Rien n’est inventé au-delà de la somme : pas de test d’indépendance, pas de probabilité conditionnelle, pas de densité continue.
Où la probabilité marginale apparaît dans le travail réel
Les équipes d’enquête et d’études de marché replient des grilles de réponses multi-voies en marges unidimensionnelles pour les rapports sans recalculer à la main les sommes de lignes et de colonnes dans chaque tableur. Les pipelines de caractéristiques d’apprentissage automatique qui partent d’histogrammes conjoints estimés ont besoin de contrôles marginaux déterministes avant les diagnostics d’indépendance ou d’information mutuelle. Les ingénieurs qualité et fiabilité transforment des tableaux conjoints de modes de défaillance en taux marginaux par composant lorsqu’ils communiquent le risque à des non-statisticiens.
Gardez des tableaux petits, figez la marginale arrondie dans les tests, et vous obtenez des réponses reproductibles pour les devoirs, les plugins LMS et les workers de bord sans installer une bibliothèque statistique complète. Si vous avez ensuite besoin de probabilité conditionnelle à partir d’une cellule conjointe, de règles du complémentaire ou de lois binomiales, traitez-les comme des intentions de recherche et des pages d’atterrissage distinctes plutôt que de surcharger cette page de calculateur marginal.
Cas d’usage
Exercices de cours sur tableaux de contingence
Les élèves collent une matrice de probabilité conjointe et choisissent ligne ou colonne pour vérifier que la distribution marginale suit la règle de sommation du manuel.
Marges pour enquêtes et études de marché
Repliez une conjointe de réponses à deux voies en probabilités unidimensionnelles par catégorie pour présentations et tableaux de bord sans erreurs de copier-coller dans le tableur.
Questions fréquentes
Comment calcule-t-on une marginale à partir d’un tableau conjoint ?
Pour la variable de ligne, sommez chaque ligne sur les colonnes : P(X=i) = Σ_j P(X=i, Y=j). Pour la variable de colonne, sommez chaque colonne vers le bas des lignes : P(Y=j) = Σ_i P(X=i, Y=j).
Que se passe-t-il si les cellules conjointes ne totalisent pas 1 ?
Ce calculateur ne renormalise pas ; le total du tableau doit valoir un avant qu’une marginale soit renvoyée.
Combien cela coûte-t-il ?
L’outil du navigateur est gratuit et s’exécute en local.
Faut-il choisir la marginale par lignes ou par colonnes ?
Choisissez les lignes pour la loi de la variable placée sur le côté : chaque ligne est additionnée. Choisissez les colonnes pour la variable du haut : chaque colonne est additionnée. Vous obtenez une probabilité par modalité.
Quelle taille de tableau le calculateur accepte-t-il ?
Jusqu'à 64 lignes sur 64 colonnes. Toutes les lignes doivent avoir le même nombre de cases et chaque case doit être un nombre fini et non négatif ; une case négative est refusée même si le total fait 1.
Outils associés
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/marginal-probability \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"table":[[0.1,0.2],[0.3,0.4]],"variable":"row"}'const res = await fetch("https://api.kit.forhosting.com/stat/marginal-probability", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"table": [
[
0.1,
0.2
],
[
0.3,
0.4
]
],
"variable": "row"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/marginal-probability",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"table": [
[
0.1,
0.2
],
[
0.3,
0.4
]
],
"variable": "row"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/marginal-probability", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"table":[[0.1,0.2],[0.3,0.4]],"variable":"row"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"table":[[0.1,0.2],[0.3,0.4]],"variable":"row"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/marginal-probability", 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
{
"table": [
[
0.1,
0.2
],
[
0.3,
0.4
]
],
"variable": "row"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.marginal_probability",
"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. |
Notes techniques
Les tableaux qui ne totalisent pas un sont rejetés avec invalid_input au lieu d’être renormalisés en silence, afin que les exercices et les pipelines de production ne divergent jamais sur des conjointes mal formées. Les appels API réussis sont facturés au tarif de base publié de $0.002 par élément ; les échecs de validation ne sont pas facturés.
Contrat d’entrée, alias, validation et comportement d’erreur
Chaque ligne doit être un tableau non vide de nombres finis non négatifs, toutes les lignes doivent partager la même longueur, et les dimensions sont plafonnées à soixante-quatre par soixante-quatre pour alléger le navigateur et les workers de bord. Après l’analyse, le moteur somme chaque cellule. Si la différence absolue par rapport à un dépasse un petit epsilon, l’appel échoue avec un message indiquant que le total du tableau conjoint doit valoir un et que la marginale est indéfinie lorsque la conjointe ne totalise pas un. Ce contrôle strict est volontaire : une renormalisation silencieuse masquerait des erreurs de transcription, des erreurs d’échelle en pour cent comme l’envoi d’entiers qui totalisent cent, et des tableaux de contingence incomplets. Les cellules négatives échouent même si le total vaut un. Envoyez en POST un corps JSON avec deux idées obligatoires : le tableau conjoint et la variable vers laquelle marginaliser. Le champ table accepte les alias joint, matrix, joint_table et p ; n’en fournissez qu’un seul afin que deux matrices conflictuelles ne passent pas. Les chaînes numériques sont acceptées par cellule ; les chaînes vides, les objets, NaN et Infinity échouent avec invalid_input en nommant la ligne et la colonne. Le champ variable accepte row ou column, avec les alias de cours x et zéro pour la marge de ligne et y, un et col pour celle de colonne ; margin, axis, var et which sont des synonymes du nom de champ lui-même. En cas de succès le corps inclut table, rows, cols, variable, marginal, total et formula. Le prix des appels API réussis est la base publiée de $0.002 par élément ; les échecs de validation ne consomment pas le solde prépayé et renvoient le même code invalid_input que le reste du catalogue KIT utilise pour les erreurs côté client.
Où la probabilité marginale apparaît dans le travail réel
Les unités de probabilité du secondaire et de l’université assignent sans cesse des exercices de tableaux de contingence, des tableaux de fréquences à double entrée convertis en conjointes et des problèmes du type « trouvez la marginale de X » ; un oracle de confiance qui renvoie du JSON propre accélère la notation, la préparation de démonstrations et la conception de leçons interactives. Les auteurs de programmes qui construisent des widgets de navigateur veulent la même forme JSON gratuite sur la page et payante via l’API afin que les fiches hors ligne et les auto-correcteurs en ligne restent alignés. Comme cette capacité est un moteur parse pur, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle et sans réseau sortant, et l’échec de validation ne consomme pas le solde.
Cas d'intégration
Fixtures de notation et contrôles ML de conjointes
Générez des marginales attendues déterministes pour auto-correcteurs, tests unitaires et pipelines d’histogrammes qui doivent sommer un axe d’un tableau conjoint.
Questions techniques
Puis-je utiliser matrix ou joint comme nom de champ ?
Oui. Les alias table, joint, matrix, joint_table et p acceptent le même tableau rectangulaire de lignes. N’en fournissez qu’un seul.
Quelles valeurs sont autorisées pour variable ?
Utilisez row (alias x, 0) pour la marginale des lignes ou column (alias y, 1, col) pour celle des colonnes. Les alias du nom de champ incluent margin, axis, var et which.