Zweistufiger Wahrscheinlichkeitsbaum
Ein zweistufiger Wahrscheinlichkeitsbaum macht aus einer Folge unsicherer Ereignisse eine vollständige Ergebnisliste.
Im Browser ausführen – kostenlos
Geben Sie zuerst die Wahrscheinlichkeiten der ersten Stufe und anschließend für jeden Anfangsausgang die bedingten Wahrscheinlichkeiten der zweiten Stufe ein. Der Rechner multipliziert die Werte entlang jedes Pfades, ermittelt so sämtliche Blattwahrscheinlichkeiten und prüft zuvor die Baumstruktur. Ergibt die erste Verzweigung oder eine der bedingten Verzweigungen nicht eins, wird die Anfrage mit einem verständlichen Hinweis abgelehnt, anstatt eine irreführende Verteilung auszugeben.
Erfassen Sie die erste Stufe und ihre bedingten Zweige
Listen Sie zunächst alle einander ausschließenden Ergebnisse auf, die in der ersten Stufe eintreten können. Vergeben Sie für jedes Ergebnis eine eindeutige Bezeichnung und eine Wahrscheinlichkeit zwischen null und eins. Diese Wahrscheinlichkeiten müssen zusammen eins ergeben, da sie sämtliche Möglichkeiten für den Beginn des Vorgangs abbilden. Fügen Sie danach die Ergebnisse der zweiten Stufe als bedingte Zeilen hinzu. Jede Zeile nennt ihren übergeordneten Anfangszweig, bezeichnet das nachfolgende Ergebnis und enthält dessen Wahrscheinlichkeit unter der Voraussetzung des Anfangsergebnisses. Die übergeordnete Bezeichnung muss exakt einer Bezeichnung aus der ersten Stufe entsprechen. Bezeichnungen der zweiten Stufe müssen lediglich innerhalb ihres jeweiligen Anfangszweigs eindeutig sein. Ein Begriff wie „Erfolg“ darf deshalb unter mehreren Anfangszweigen vorkommen. Für jeden Anfangszweig ist mindestens eine Folgezeile erforderlich. Die bedingten Wahrscheinlichkeiten unter jedem einzelnen Anfangszweig müssen ebenfalls eins ergeben. Durch dieses Zeilenformat lassen sich auch umfangreiche Bäume bequem eingeben, prüfen, speichern oder aus einer anderen Anwendung erzeugen, ohne Beziehungen in manuell verschachteltem JSON zu verbergen.
So wird jede Blattwahrscheinlichkeit berechnet
Jede ausgegebene Zeile steht für einen vollständigen Pfad von der Wurzel über die erste bis zur zweiten Stufe. Seine Wahrscheinlichkeit ergibt sich aus der Wahrscheinlichkeit der ersten Stufe multipliziert mit der zugehörigen bedingten Wahrscheinlichkeit. Beträgt beispielsweise die Regenwahrscheinlichkeit 0.30 und die Wahrscheinlichkeit einer Verspätung bei Regen 0.40, hat der Pfad Regen und anschließend Verspätung die Wahrscheinlichkeit 0.12. Diese Multiplikation entspricht der üblichen Produktregel für ein gemeinsames Ereignis, das mithilfe einer bedingten Wahrscheinlichkeit beschrieben wird. Das Ergebnis zeigt beide Faktoren neben dem berechneten Pfadwert. Dadurch bleibt die Rechnung transparent und eignet sich zur Kontrolle, für den Unterricht, für Tabellen oder zur weiteren Verarbeitung. Zusätzlich werden die Anzahl der Blätter und die Summe aller Pfadwahrscheinlichkeiten ausgegeben. Bei einem gültigen vollständigen Baum beträgt die Gesamtsumme eins, abgesehen von winzigen Effekten der Gleitkommadarstellung. Der Rechner unterstellt keine Unabhängigkeit der Stufen; getrennte bedingte Zweigmengen bilden gerade diese Abhängigkeit ab.
Erkennen Sie unvollständige Bäume vor der Verwendung
Ein Wahrscheinlichkeitsbaum kann plausibel aussehen und trotzdem ein Ergebnis auslassen oder sich überschneidende Ergebnisse doppelt zählen. Deshalb prüft der Rechner die Wahrscheinlichkeitsmasse an jeder Verzweigung. Er lehnt eine erste Stufe ab, deren Wahrscheinlichkeiten nicht eins ergeben, und kontrolliert außerdem die bedingte Menge unter jedem Anfangszweig separat. Ebenso abgelehnt werden fehlende Folgezweige, unbekannte übergeordnete Bezeichnungen, doppelte Anfangsbezeichnungen, wiederholte Folgebezeichnungen innerhalb desselben Zweigs, nicht numerische oder nicht endliche Werte sowie Wahrscheinlichkeiten außerhalb des Bereichs von null bis eins. Eine geringe numerische Toleranz berücksichtigt normale Effekte der Gleitkommadarstellung, lässt aber keine inhaltlich unvollständige Verteilung zu. Verwenden Sie die Ausgabe für Blattwahrscheinlichkeiten und nicht für Simulationsergebnisse: Die Berechnung ist für die eingegebenen Zahlen exakt und arbeitet ohne Zufallsstichproben. Derselbe deterministische Löser verarbeitet jede Anfrage, sodass identische gültige Eingaben identische Ausgaben liefern. Die API-Automatisierung kostet $0.002 pro Anfrage.
Anwendungsfälle
Diagnoseergebnisse abbilden
Verknüpfen Sie die Anfangswahrscheinlichkeit eines Zustands mit bedingten positiven und negativen Ergebnissen, um alle Pfade aufzulisten.
Betriebliche Szenarien planen
Berechnen Sie Endwahrscheinlichkeiten für Lieferung, Nachfrage, Personal oder Wetter, wenn die zweite Stufe von der ersten abhängt.
Wahrscheinlichkeitsaufgaben prüfen
Kontrollieren Sie die Multiplikation entlang der Zweige und entdecken Sie unvollständige Mengen vor dem Lösungsvergleich.
Häufige Fragen
Was ist die Wahrscheinlichkeit eines Blattpfades?
Sie ist die gemeinsame Wahrscheinlichkeit, zunächst einem Anfangszweig und danach einem seiner bedingten Folgezweige zu folgen.
Warum muss jede Zweigmenge eins ergeben?
Jede Menge soll alle einander ausschließenden Ergebnisse an dieser Verzweigung abdecken. Eine andere Summe weist auf fehlende, überlappende oder falsche Wahrscheinlichkeiten hin.
Wie wird die Wahrscheinlichkeit eines Pfades berechnet?
Der Rechner multipliziert die Anfangswahrscheinlichkeit mit der auf dieses Anfangsergebnis bedingten Folgewahrscheinlichkeit.
Darf dieselbe Folgebezeichnung unter verschiedenen Zweigen stehen?
Ja. Sie muss innerhalb eines Anfangszweigs eindeutig sein, darf aber unter mehreren Anfangszweigen sinnvoll verwendet werden.
Simuliert dieser Rechner Zufallsversuche?
Nein. Er berechnet deterministisch exakte Produkte aus Ihren Wahrscheinlichkeiten und verwendet weder Stichproben noch Simulationsschätzungen.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Es fällt kein zusätzlicher Preis je Zweig an.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/stat/probability-tree-two-stage \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"first_stage":[{"label":"Rain","probability":0.3},{"label":"Dry","probability":0.7}],"conditional_second_stage":[{"first_stage":"Rain","label":"Late","probability":0.4},{"first_stage":"Rain","label":"On time","probability":0.6},{"first_stage":"Dry","label":"Late","probability":0.1},{"first_stage":"Dry","label":"On time","probability":0.9}]}'const res = await fetch("https://api.kit.forhosting.com/stat/probability-tree-two-stage", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"first_stage": [
{
"label": "Rain",
"probability": 0.3
},
{
"label": "Dry",
"probability": 0.7
}
],
"conditional_second_stage": [
{
"first_stage": "Rain",
"label": "Late",
"probability": 0.4
},
{
"first_stage": "Rain",
"label": "On time",
"probability": 0.6
},
{
"first_stage": "Dry",
"label": "Late",
"probability": 0.1
},
{
"first_stage": "Dry",
"label": "On time",
"probability": 0.9
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/probability-tree-two-stage",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"first_stage": [
{
"label": "Rain",
"probability": 0.3
},
{
"label": "Dry",
"probability": 0.7
}
],
"conditional_second_stage": [
{
"first_stage": "Rain",
"label": "Late",
"probability": 0.4
},
{
"first_stage": "Rain",
"label": "On time",
"probability": 0.6
},
{
"first_stage": "Dry",
"label": "Late",
"probability": 0.1
},
{
"first_stage": "Dry",
"label": "On time",
"probability": 0.9
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/probability-tree-two-stage", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"first_stage":[{"label":"Rain","probability":0.3},{"label":"Dry","probability":0.7}],"conditional_second_stage":[{"first_stage":"Rain","label":"Late","probability":0.4},{"first_stage":"Rain","label":"On time","probability":0.6},{"first_stage":"Dry","label":"Late","probability":0.1},{"first_stage":"Dry","label":"On time","probability":0.9}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"first_stage":[{"label":"Rain","probability":0.3},{"label":"Dry","probability":0.7}],"conditional_second_stage":[{"first_stage":"Rain","label":"Late","probability":0.4},{"first_stage":"Rain","label":"On time","probability":0.6},{"first_stage":"Dry","label":"Late","probability":0.1},{"first_stage":"Dry","label":"On time","probability":0.9}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/probability-tree-two-stage", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"first_stage": [
{
"label": "Rain",
"probability": 0.3
},
{
"label": "Dry",
"probability": 0.7
}
],
"conditional_second_stage": [
{
"first_stage": "Rain",
"label": "Late",
"probability": 0.4
},
{
"first_stage": "Rain",
"label": "On time",
"probability": 0.6
},
{
"first_stage": "Dry",
"label": "Late",
"probability": 0.1
},
{
"first_stage": "Dry",
"label": "On time",
"probability": 0.9
}
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.probability_tree_two_stage",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_first_stage_branches | 100 |
max_conditional_branches | 1000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |