- Bei Berechnungen mit schwankenden Eingabewerten wie Jobwechsel, Geschäftspotenzial oder Investitionen hilft für Entscheidungen oft eine Spanne möglicher Ergebnisse mehr als eine einzelne Zahl
- Unsure Calculator berechnet mit unsicheren Werten, die als Bereich wie
4~6 eingegeben werden, und 10~15 bedeutet, dass man mit 95% Sicherheit davon ausgeht, dass der tatsächliche Wert darin liegt
- Das Ergebnis ist keine einzelne Zahl, sondern erscheint als Bereich, Wahrscheinlichkeitsverteilung und Perzentile; im Beispiel eines Umzugs für einen Job ins Ausland kann der monatliche Saldo zwischen
-$60~+$220 liegen
- Um die Eingabe einfach zu halten, wurden Angaben wie Verteilungsart, Konfidenzniveau oder Kovarianz weggelassen; intern basiert die Berechnung auf der Monte-Carlo-Methode, ist deshalb langsam und liefert wenig hilfreiche Fehlermeldungen
- Das Tool ist nicht für Statistikexpert:innen gedacht, sondern für Überschlagsrechnungen auf der Serviettenrückseite zu Themen wie Geschäftsideen, Zeitersparnis, Pandemierisiko oder Marketing-ROI; für komplexe Analysen braucht es spezialisierte Werkzeuge
Unsichere Zahlen in Berechnungen einsetzen
- Unsure Calculator ist eine frühe Version eines Unsicherheitsrechners für Zahlen, die nicht feststehen
- Er vereinfacht Statistik auf das Problem: „Ich möchte mit Zahlen schlussfolgern, auch wenn diese Zahlen nicht sicher sind“
- Auch in alltäglichen Rechnungen gibt es viele unsichere Eingabewerte, deshalb kann man Berechnungen mit Unsicherheit brauchen, ohne Statistikexpert:in zu sein
Schreibweise für Bereiche
- Unterstützt werden nicht nur normale Zahlen wie
4, 3.14, 43942, sondern auch Bereichseingaben wie 4~6, 3.1~3.2, 40000~45000
~ ist das Tilde-Zeichen zwischen zwei Extremwerten und ist auch auf dem Tastenfeld des Rechners enthalten
- Die Bereichsschreibweise bedeutet: „Ich kenne den exakten Wert nicht, bin aber mit 95% Sicherheit überzeugt, dass der tatsächliche Wert in diesem Bereich liegt“
10~15 kann einfach als „10 bis 15“ gelesen werden
- Andere Wahrscheinlichkeitsverteilungen, andere Konfidenzniveaus, Trunkierung oder Kovarianz wären ebenfalls darstellbar, wurden aber weggelassen, weil es sonst schwerer verständlich würde
- Dabei gilt die Annahme, dass Nutzer:innen, die mit solchen Konzepten vertraut sind, eher zu präziseren Tools greifen sollten
- Das Ziel ist, einer breiten Nutzerschaft die Stärke statistischer Berechnungen leicht zugänglich zu machen
Die Falle einer Rechnung mit nur einer Zahl
- Trifft man auf unsichere Werte, ist es leicht zu sagen: „Beides ist nicht sicher, also spielt es keine große Rolle“
- Wenn man eine plausible Zahl auswählt und damit rechnet, wirkt die Einfachheit einer einzelnen Antwort verlockend, obwohl es in Wirklichkeit mehrere mögliche Ergebnisse geben kann
- Unsure Calculator bezieht viele mögliche Ergebnisse in die Rechnung ein und zeigt so zugleich Risiken und Spielräume
Beispiel: Finanzrechnung bei einem Jobwechsel ins Ausland
- Ausgangspunkt war 2015 die Situation, die finanziellen Auswirkungen einer Jobchance im Ausland für eine Familie abzuschätzen
- Das Gehalt erfährt man oft erst, wenn der Bewerbungsprozess schon weit fortgeschritten ist
- Die lokalen Lebenshaltungskosten, die von Freund:innen und aus dem Internet genannt wurden, gingen stark auseinander
- Auch der Steuersatz lässt sich nicht einfach als einzelner Prozentwert festlegen
- Zunächst wurde mit einzelnen, konservativ wirkenden Werten gerechnet
1500 * 0.6 - 650 - 150 - 30 - 20 = 50
- Diese Rechnung zeigt nur ein einziges Ergebnis: Jeden Monat bleiben
+$50 übrig
- Setzt man stattdessen Bereiche ein und rechnet neu, sieht das Ergebnis anders aus
1400~1700 * 0.55~0.65 - 600~700 - 100~200 - 30 - 20 = -60~220
- Wenn man mit 95% Sicherheit annimmt, dass die tatsächlichen Werte aller Posten in den jeweiligen Bereichen liegen, kann auch der tatsächliche monatliche Saldo zwischen
-$60 und +$220 liegen
- Das ist nützlicher als der Einzelwert
+$50, weil auch die Möglichkeit sichtbar wird, Geld zu verlieren
- Perzentile liefern noch konkretere Informationen für Entscheidungen
- Wenn das 10. Perzentil
-$8 ist, liegt die Wahrscheinlichkeit bei 10%, dass der monatliche Saldo -$8 oder darunter beträgt
- Umgekehrt liegen 90% der Ergebnisse über
-$8
- Ebenso lässt sich ein 5%-Risiko berücksichtigen, monatlich
-$33 oder mehr zu verlieren
- Ob man dieses Risiko akzeptiert, hängt von Familie und Situation ab
- Ohne Kinder und Hypothek kann die Risikobereitschaft anders sein als mit Kindern und Immobilienkredit
- Ohne Backup-Plan wird man eine 10%ige Verlustwahrscheinlichkeit womöglich vorsichtiger bewerten
Beispiel: Drake-Gleichung
- Obwohl das Ziel praktische Berechnungen sind, dient auch die Drake equation zur Abschätzung der Zahl außerirdischer Zivilisationen als Beispiel
- Diese Gleichung ist eine astrophysikalische Formel zur Schätzung der Zahl kommunikationsfähiger Zivilisationen in einer Galaxie
- Die ursprünglichen Werte von Frank Drake aus dem Jahr 1961 wurden über folgende Faktoren miteinander multipliziert
- In der Galaxie entsteht pro Jahr 1 Stern
- Davon hat 1/5 ungefähr 3 Planeten
- 100% dieser Planeten entwickeln Leben
- 100% dieses Lebens wird intelligent
- Davon sind 10% kommunikationsfähig
- Der Zustand der Kommunikationsfähigkeit hält 1 Million Jahre an
- Multipliziert man diese Werte, ergibt sich
60,000, also das Resultat, dass es zu jedem Zeitpunkt 60.000 Zivilisationen in der Galaxie geben müsste, die zu kommunizieren versuchen
- Seit 1961 haben sich die Schätzungen für die einzelnen Parameter unter Astrophysiker:innen stark auseinanderentwickelt
- Ein Beispiel mit neueren Schätzungen als Bereiche sieht so aus
1.5~3 x 0.9~1.0 x 0.1~0.4 x 0.1~1.0 x 0.1~1.0 x 0.1~0.2 x 304~10000
- Das Ergebnis von Unsure Calculator zeigt, dass die zu erwartende Zahl der Zivilisationen zwischen
0 und 450 liegen kann
- Die Wahrscheinlichkeit ist zu kleineren Werten hin verzerrt, und auch das Histogramm ist nach unten hin breiter
- Im Histogramm können negative Werte wie
-5 auftauchen
- Das ist eine Grenze des Tools, das zugunsten der Einfachheit gestaltet wurde
- Ohne zusätzliches Wissen kann der Rechner die Einschränkung nicht erkennen, dass die Zahl der Zivilisationen nicht negativ sein kann
Mögliche Einsatzfälle
- Man kann die Tragfähigkeit einer Geschäftsidee berechnen
- Wenn Marktgröße, Marktanteil, Monatsumsatz pro Person und Betriebskosten alle unsicher sind
50000~80000 x 0.10~0.20 x 5~10 - 20000~50000
- Man kann künftige Einnahmen schätzen
- Wenn Monatseinnahmen, Vertragsdauer und Steuersatz unsicher sind
1000~1500 x 10~12 x (30~50 / 100)
- Man kann berechnen, wie viel Zeit Technik wie eine Spülmaschine spart
- Wenn Nutzung pro Woche, Zeitersparnis pro Nutzung, Lebensdauer und Installationskosten unsicher sind
(3~5 * 5~10 * 51 * 7~15) / 60 - 10~15
- Man kann den Gesamtertrag eines Investmentkontos schätzen
- Wenn Zinssatz und Anlagedauer unsicher sind
5000 x (-2~5 / 100) x 5~10
- Man kann grob die Todeswahrscheinlichkeit in einer Pandemie berechnen
- Wenn Infektionsrate und Fallsterblichkeit unsicher sind
(10~30 / 100) * (0.1~1.0 / 100) * 100
- Man kann die Höhe eines Hochhauses schätzen
- Wenn die Entfernung bis zum Fuß des Gebäudes und der Blickwinkel zur Spitze unsicher sind
100 x tan(70 ~ 80)
- Man kann den ROI einer Marketingkampagne schätzen
- Wenn Aufrufe, Klickrate, Conversion-Rate und Ausgaben unsicher sind
1000000 x (2~3 / 100) x (3~5 / 100) x (10~15)
Unterstützte Funktionen
- Auf dem Tastenfeld gibt es nur
+, -, x, /, aber schon in dieser frühen Phase werden mehr Berechnungen unterstützt
- Beispiele für Funktionen und Operationen sind
2~3 ^ 4: einen Wert zwischen 2 und 3 hoch 4
sqrt(10~12): die Quadratwurzel eines Werts zwischen 10 und 12
sin(90~95): der Sinus eines Werts zwischen 90 und 95 Grad
Grenzen und Teilen von Formeln
- Da es ein Ein-Personen-Projekt ist, sollte man mit Bruchstellen rechnen
- Der Formel-Parser ist fragil und Fehlermeldungen helfen kaum weiter
- Die Berechnung ist ziemlich langsam
- Um flexibel zu bleiben, wird die Monte-Carlo-Methode verwendet
- Für jede eingegebene Berechnung werden ungefähr 250.000 AST-basierte Auswertungen ausgeführt
- Die UI ist sehr schlicht und nicht besonders ansehnlich
- Der einzige Weg, Formeln zu teilen, ist das direkte Erzeugen einer URL
range ist immer normalverteilt
- Die kleine Zahl liegt 2 Standardabweichungen unter dem Mittelwert
- Die große Zahl liegt 2 Standardabweichungen über dem Mittelwert
- Komplexere Ansätze aus Sicht der Eingabe-Wahrscheinlichkeitsverteilung werden nicht unterstützt
- Das Tool ist nicht für Statistikexpert:innen gedacht
- Für Überschlagsrechnungen auf der Serviettenrückseite kann man Unsure Calculator verwenden
- Für komplexere Aufgaben braucht es kostenlose oder kostenpflichtige Statistiktools, eine vollständige Programmierumgebung oder Statistikexpert:innen
Projekt und Updates
- Wer bei der Verbesserung des Tools mithelfen oder eine Kommandozeilenversion bekommen möchte, kann github.com/filiph/unsure nutzen
- Stand des Updates von 2025 werden diese Notation und das Tool seit 5 Jahren verwendet und sind zu einem unverzichtbaren Teil des Workflows beim Start neuer Projekte geworden
- Eine neuere App-Version im Notebook-Stil gibt es hier
- Sie ist weniger anfängerfreundlich, hilft Power-Usern aber stärker
- Wer am Projekt interessiert ist, kann Filip Hracek folgen oder die Mailingliste abonnieren
1 Kommentare
Hacker-News-Kommentare
Mir gefällt dieses Tool. Allerdings, ganz in HN-Tradition, wenn ich mich an einem einzelnen Wort im Beitrag festbeiße und eine fast – aber praktisch vollständig – nebensächliche Bemerkung dazu mache: Bei solchen Berechnungen gibt es mindestens drei Stellen, an denen man sich selbst ins Bein schießt.
Das Tool und die Implementierung sind gut, aber ich habe schon oft gesehen, wie Leute, die zum ersten Mal Statistik in die Hand nehmen, dabei einen Finger verlieren.
Mehr als 90 % der Leute erreichen nicht einmal ein 70-%-Konfidenzintervall. Man kann es selbst testen: https://blog.codinghorror.com/how-good-an-estimator-are-you/
Den Stakeholdern gefiel der Ansatz sehr, Aufgabenzeiten als t_i ~ PERT(min, mode, max) anzugeben. Das entsprach ihrer Denkweise und konnte außerdem die in der Realität häufigen asymmetrischen Verteilungen abbilden.
Zur Einordnung: PERT ist lediglich eine benutzerfreundliche und intuitive Reparametrisierung der Betaverteilung: https://rpubs.com/Kraj86186/985700
Das Ergebnis von 50 $ war gut, und wenn man eine Plus/Minus-Spanne daran hängt, bekommt man im Großen und Ganzen das Gefühl, dass man ungefähr am Break-even liegt. Dagegen erzeugt die Formulierung „mit 95 % Wahrscheinlichkeit liegt der tatsächliche Kontostand zwischen -60 $ und +220 $“ den Eindruck, man habe spezifischere Information gewonnen, obwohl man in jedem Schritt nur eine Zusammensetzung von Unsicherheit hinzugefügt hat.
Wenn man nicht weiß, ob jeder Posten wirklich 95 % abdeckt oder was die echten Mindest- und Höchstwerte sind, fügt man nur weitere möglicherweise falsche Schätzungen hinzu. Deshalb mag ich auch die Drake-Gleichung nicht besonders. Jeder Schritt ist eine Anhäufung grober Schätzungen, und ich frage mich, ob dabei wirklich eine nützliche Zahl herauskommt.
Wenn man an dem Punkt ist, solche Dinge berücksichtigen zu wollen, sollte man ohnehin echte Bayes-Statistik betreiben.
Auch die Aussage „Normalverteilungen brauchen irgendeinen einschränkenden Faktor, der Werte erzwingt“ – keine Ahnung, woher das kommt. Was man braucht, sind unkorrelierte Fehler, nicht „Einschränkungen“ oder „negative Rückkopplung“.
Ich habe einmal ein ähnliches Tool gebaut.
fermi für die Kommandozeile: https://git.nunosempere.com/NunoSempere/fermi
Verteilungsrechner für Android: https://f-droid.org/en/packages/com.nunosempere.distribution...
Vielleicht ist auch die komplexere Version https://www.squiggle-language.com/ interessant. Oder die schnellere, aber deutlich ausführlichere C-Version unter <https://git.nunosempere.com/personal/squiggle.c>.
a~bunterstützen würde :^)Cool. Wenn dir der Artikel gefallen hat, könnte auch das Paper „Dissolving the Fermi Paradox“ interessant sein. Es geht ausführlicher darauf ein, statt der üblichen Punktschätzungen tatsächlich Wahrscheinlichkeitsdichtefunktionen zu multiplizieren.
Etwas überraschend kommt dabei heraus, dass wir vielleicht einfach allein sind.
https://arxiv.org/abs/1806.02404
Ich habe ein ähnliches Tool gebaut, allerdings für die Kommandozeile[1] und mit ähnlicher Motivation, aber etwas ambitionierter[2].
Ich finde es großartig, dass mehr Leute auf diese Weise denken. Die Fähigkeit, über Quellen von Varianz nachzudenken, ist nicht etwas, worin alle geschult werden oder was alle entwickeln, wird aber immer wichtiger[3].
[1]: https://git.sr.ht/~kqr/precel
[2]: https://entropicthoughts.com/precel-like-excel-for-uncertain...
[3]: https://entropicthoughts.com/statistical-literacy
Die ASCII-Art-Histogramme, genauer gesagt ANSI-Art-Histogramme, sind klasse. Ein guter Hack, um schnell etwas hinzubekommen.
Ich hätte wahrscheinlich fünfmal so viel Zeit damit verbracht, diverse Chart-Bibliotheken auszuprobieren, und dann aufgegeben.
[1] https://github.com/stefanhengl/histogram
https://www.getguesstimate.com/ ist im Grunde eine Spreadsheet-Version davon.
Gibt es eine Möglichkeit, eine Multiplikation zu machen, die keine skalare Multiplikation ist? Wenn ich zum Beispiel „Summe aus drei Würfen eines Würfels“ ausdrücken will, dann möchte ich — abgesehen davon, dass es keine Normalverteilung ist — dass
1~6 * 3 = 1~6 + 1~6 + 1~6 = 6~15ergibt.Tatsächlich wird daraus aber
1~6 * 3 = 3~18. Damit werden Berechnungen wie „Wie lange dauert es, 1000 Aufgaben abzuschließen, die jeweils 10~100 dauern?“ wirklich schwierig.Es wäre schön, wenn man die Ausgabe wieder in ein Intervall oder eine Gauß-Verteilung umwandeln könnte.
Hinweis: Falls du dich fragst, warum im Histogramm negative Werte (-5) auftauchen: Das ist ein unvermeidlicher Nachteil, der aus der Einfachheit des Unsure Calculator folgt. Ohne zusätzliches Wissen kann der Rechner nicht wissen, dass negative Werte unmöglich sind.
Die Drake-Gleichung oder Gleichungen, die Wahrscheinlichkeiten multiplizieren, kann man auch im Log-Raum betrachten. Es gibt Unsicherheit auf der Skala jeder Wahrscheinlichkeit, und die endgültige Wahrscheinlichkeit ist das Produkt der Exponentialwerte der Log-Wahrscheinlichkeiten. Dann tritt dieses Problem mit negativen Werten nicht auf.
100 / 4~6liefert als Ausgabe17~25.Zuerst klingt es wie ein Spielzeug, aber es wirkt überraschend nützlich. Wenn es als App herauskäme, die man neben dem normalen Taschenrechner verwenden kann, würde ich sie definitiv installieren.
Mir fällt gerade nicht genau ein, wann ich sie gebraucht hätte, aber wenn man sie auf einen Tastatur-Shortcut legt, ist die Chance ziemlich hoch, dass man anfängt, Einsatzfälle dafür zu finden.
Da auch trigonometrische Funktionen vorhanden sind, dürfte es sich auch gut eignen, um komplexe Bauteile anhand einfacher Messwerte zu reverse-engineeren. Zum Beispiel Formvolumen, Kantenwinkel oder Querschnittsflächen.
Unterstützung für multimodale Verteilungen wäre schön, ist aber nicht zwingend. Arkusfunktionen wären ebenfalls interessant, aber komplex und nicht zwingend nötig.
Jedenfalls ist dieses Tool bequemer, als jedes Mal Python zu öffnen, wenn man den Bereich einer Antwort abschätzen will.
Feature-Wunsch: Es wäre schön, wenn man Wahrscheinlichkeitsverteilungen angeben könnte. Zum Beispiel
~für Normalverteilung,_für Gleichverteilung und so weiter.G(50, 1)für eine Gauß-Verteilung mit µ=50 und σ=1,N(3)für eine negative Exponentialverteilung mit λ=3,U(0, 1)für eine Gleichverteilung zwischen 0 und 1 oderUI(1, 6)für eine diskrete Gleichverteilung der ganzen Zahlen von 1 bis 6.Das wirkt deutlich flexibler und leichter zu merken.