- En cálculos con valores de entrada variables, como cambio de trabajo, viabilidad de un negocio o inversión, para decidir ayuda más el rango de resultados posibles que un solo número
- Unsure Calculator permite ingresar rangos como
4~6 para calcular con valores inciertos, y 10~15 significa que se tiene 95% de confianza en que el valor real estará dentro de ese intervalo
- El resultado no es un solo número, sino un rango, una distribución de probabilidad y percentiles; en el ejemplo de mudarse al extranjero por trabajo, muestra que el saldo mensual podría quedar entre
-$60~+$220
- Para mantener simples las entradas, se omitieron notaciones como tipos de distribución, niveles de confianza y covarianza, y los cálculos internos usan Monte Carlo, por lo que es lento y los mensajes de error no son amigables
- No es una herramienta para expertos en estadística, sino para cálculos rápidos al reverso de una servilleta sobre ideas de negocio, ahorro de tiempo, riesgo de pandemia o ROI de marketing; para análisis complejos se necesitan herramientas especializadas
Poner números inciertos en los cálculos
- Unsure Calculator es una versión inicial de una calculadora de incertidumbre para manejar números que no son seguros
- Simplifica la estadística al problema de “quiero inferir cosas con números aunque esos números no sean seguros”
- Incluso en cálculos cotidianos hay muchos valores de entrada inciertos, así que a veces se necesita calcular con incertidumbre sin ser experto en estadística
Cómo funciona la notación de rangos
- Soporta no solo números normales como
4, 3.14, 43942, sino también entradas por rango como 4~6, 3.1~3.2, 40000~45000
~ es la tilde entre dos valores extremos, y también está incluida en el teclado de la calculadora
- La notación por rango significa “no sé el valor exacto, pero tengo 95% de confianza en que el valor real estará dentro de este rango”
10~15 se puede leer como “de 10 a 15”
- Sería posible añadir notaciones para otras distribuciones de probabilidad, otros niveles de confianza, truncamiento o covarianza, pero se excluyeron porque harían más difícil entenderla
- La idea es que quien ya esté familiarizado con esos conceptos probablemente debería usar una herramienta más sofisticada
- El objetivo es que una base amplia de usuarios pueda aprovechar fácilmente el poder de los cálculos estadísticos
La trampa de calcular con un solo número
- Cuando uno se topa con valores inciertos, es fácil descartarlos pensando “como ninguno es seguro, no importa mucho”
- Si eliges un número plausible y calculas con él, resulta tentadora la simplicidad de una sola respuesta, pero en realidad puede haber varios resultados posibles
- Unsure Calculator incorpora múltiples resultados posibles en el cálculo para mostrar al mismo tiempo el riesgo y el margen de oportunidad
Ejemplo de cálculo financiero al mudarse al extranjero por trabajo
- El punto de partida fue una situación en 2015: calcular el impacto financiero familiar de una oportunidad laboral en otro país
- El salario solo se conoce después de pasar por casi todo el proceso de contratación
- El costo de vida local variaba mucho entre lo que decían amistades y lo que se encontraba en internet
- Tampoco era fácil fijar la tasa de impuestos con un solo porcentaje simple
- Al principio se calculó con valores únicos que parecían conservadores
1500 * 0.6 - 650 - 150 - 30 - 20 = 50
- Ese cálculo solo muestra un resultado: que sobran
+$50 al mes
- Si se vuelven a hacer las cuentas usando rangos, el resultado cambia
1400~1700 * 0.55~0.65 - 600~700 - 100~200 - 30 - 20 = -60~220
- Si se tiene 95% de confianza en que el valor real de cada partida cae dentro de su rango, entonces también puede considerarse que el saldo mensual real estará entre
-$60 y +$220
- Esto es más útil que el valor único
+$50 porque también deja ver la posibilidad de perder dinero
- Los percentiles dan información más concreta para tomar decisiones
- Si el percentil 10 es
-$8, hay un 10% de probabilidad de que el saldo mensual sea -$8 o menos
- A la inversa, el 90% de los resultados está por encima de
-$8
- También se puede considerar el 5% de riesgo de perder
-$33 o más al mes
- La decisión de aceptar ese riesgo depende de la familia y de la situación
- La tolerancia al riesgo puede ser distinta si no se tienen hijos ni hipoteca, frente a si sí se tienen
- Si no existe un plan de respaldo, una probabilidad de pérdida del 10% puede verse con más cautela
Ejemplo con la ecuación de Drake
- Aunque apunta a cálculos prácticos, también usa como ejemplo la ecuación de Drake (Drake equation) para estimar la cantidad de civilizaciones extraterrestres
- Esta ecuación es una fórmula astrofísica para estimar cuántas civilizaciones capaces de comunicarse podría haber en la galaxia
- Los valores originales de Frank Drake en 1961 multiplicaban los siguientes factores
- Cada año se forma 1 estrella en la galaxia
- De ellas, 1/5 tiene alrededor de 3 planetas
- El 100% de esos planetas desarrolla vida
- El 100% de esa vida llega a ser inteligente
- El 10% de ellas puede comunicarse
- El estado de comunicación dura 1 millón de años
- Al multiplicar esos valores, el resultado es
60,000, lo que implica que en cualquier momento debería haber 60 mil civilizaciones intentando comunicarse en la galaxia
- Desde 1961, las estimaciones de cada parámetro han variado enormemente entre astrofísicos
- Un ejemplo con estimaciones más recientes ingresadas como rangos es el siguiente
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
- El resultado de Unsure Calculator muestra que la cantidad esperable de civilizaciones podría estar entre
0 y 450
- La probabilidad está sesgada hacia el lado bajo, y el histograma también aparece más extendido hacia abajo
- En el histograma pueden aparecer negativos como
-5
- Esa es una limitación de una herramienta que prioriza la simplicidad
- Sin conocimiento adicional, la calculadora no puede saber que la cantidad de civilizaciones no puede ser negativa
Posibles casos de uso
- Se puede calcular la viabilidad de una idea de negocio
- Cuando el tamaño del mercado, la cuota de mercado, el ingreso mensual por persona y los costos operativos son inciertos
50000~80000 x 0.10~0.20 x 5~10 - 20000~50000
- Se pueden estimar ingresos futuros
- Cuando el ingreso mensual, la duración del contrato y la tasa impositiva son inciertos
1000~1500 x 10~12 x (30~50 / 100)
- Se puede calcular el tiempo que ahorra una tecnología como el lavavajillas
- Cuando son inciertos los usos por semana, el tiempo ahorrado por uso, la vida útil y el costo de instalación
(3~5 * 5~10 * 51 * 7~15) / 60 - 10~15
- Se puede estimar el rendimiento total de una cuenta de inversión
- Cuando son inciertos la tasa de interés y el plazo de inversión
5000 x (-2~5 / 100) x 5~10
- Se puede calcular de forma aproximada la probabilidad de morir en una pandemia
- Cuando son inciertos el porcentaje de infección y la tasa de letalidad
(10~30 / 100) * (0.1~1.0 / 100) * 100
- Se puede estimar la altura de un edificio alto
- Cuando son inciertos la distancia a la base del edificio y el ángulo al mirar la cima
100 x tan(70 ~ 80)
- Se puede estimar el ROI de una campaña de marketing
- Cuando son inciertos las visualizaciones, la tasa de clics, la tasa de conversión y el gasto
1000000 x (2~3 / 100) x (3~5 / 100) x (10~15)
Funciones compatibles
- Aunque el teclado solo tiene
+, -, x y /, incluso en esta etapa inicial soporta más cálculos
- Algunos ejemplos de funciones y operaciones son los siguientes
2~3 ^ 4: elevar a la cuarta potencia un valor entre 2 y 3
sqrt(10~12): raíz cuadrada de un valor entre 10 y 12
sin(90~95): seno de un valor entre 90 y 95 grados
Limitaciones y forma de compartir
- Al ser un proyecto de una sola persona, hay que esperar que se rompa
- El parser de fórmulas es frágil y los mensajes de error no ayudan mucho
- Los cálculos son bastante lentos
- Para mantener la flexibilidad, usa el método de Monte Carlo
- Para cada cálculo ingresado ejecuta alrededor de 250 mil evaluaciones basadas en AST
- La UI es muy simple y no se ve bien
- La única forma de compartir una fórmula es construir la URL directamente
range siempre sigue una distribución normal
- El número bajo está 2 desviaciones estándar por debajo de la media
- El número alto está 2 desviaciones estándar por encima de la media
- No soporta métodos más complejos desde la perspectiva de la distribución de probabilidad de entrada
- No es una herramienta para expertos en estadística
- Para cálculos rápidos al reverso de una servilleta, se puede usar Unsure Calculator
- Para trabajos más complejos se necesitan herramientas estadísticas gratuitas o de pago, un entorno completo de programación o especialistas en estadística
Proyecto y actualizaciones
- Si quieres ayudar a mejorar la herramienta o conseguir una versión de línea de comandos, puedes usar github.com/filiph/unsure
- Según la actualización de 2025, esta notación y herramienta se han usado durante 5 años y se convirtieron en una parte esencial del flujo de trabajo al iniciar proyectos nuevos
- Una versión más reciente de la app, en formato de notebook, puede verse aquí
- Es menos amigable para principiantes, pero más útil para usuarios avanzados
- Si te interesa el proyecto, puedes seguir a Filip Hracek o suscribirte a la lista de correo
1 comentarios
Opiniones de Hacker News
Me gusta esta herramienta. Pero, siguiendo la tradición de HN de obsesionarse con una palabra del texto y hablar de algo casi —pero en la práctica totalmente— tangencial, en este tipo de cálculos hay al menos tres puntos donde te puedes pegar un tiro en el pie
La herramienta y la implementación están buenas, pero he visto a mucha gente perder un dedo cuando agarra estadísticas por primera vez
Más del 90% de las personas ni siquiera llegan a un intervalo de confianza del 70%. Puedes probarlo tú mismo: https://blog.codinghorror.com/how-good-an-estimator-are-you/
A los stakeholders les gustó mucho especificar las duraciones de las tareas como t_i ~ PERT(min, mode, max). Se parece a cómo piensan y además puede manejar distribuciones asimétricas comunes en la realidad
Como referencia, PERT no es más que una distribución beta reparametrizada de forma amigable e intuitiva para el usuario: https://rpubs.com/Kraj86186/985700
El resultado de $50 estaba bien, y si le agregas un rango de más/menos, en general puedes sentir que estás cerca del punto de equilibrio. En cambio, decir “hay un 95% de probabilidad de que el saldo real esté entre -$60 y +$220” crea la ilusión de haber obtenido información más concreta, cuando en cada paso solo se añadió más composición de incertidumbre
Si no sabes si cada elemento realmente es 95%, ni cuáles son los mínimos y máximos reales, entonces solo estás agregando más suposiciones que podrían estar equivocadas. Por eso tampoco me gusta mucho la ecuación de Drake. Cada paso acumula estimaciones muy burdas, y me pregunto si de verdad produce un número útil
En cualquier caso, si llegas al punto de querer considerar este tipo de cosas, deberías hacer estadística bayesiana de verdad
Tampoco sé de dónde sale eso de que “la distribución normal necesita algún factor de restricción que fuerce los valores”. Lo que se necesita son errores no correlacionados; eso no es una “restricción” ni “retroalimentación negativa”
He creado herramientas parecidas
fermi para línea de comandos: https://git.nunosempere.com/NunoSempere/fermi
Calculadora de distribuciones para Android: https://f-droid.org/en/packages/com.nunosempere.distribution...
También podría interesarte https://www.squiggle-language.com/, una versión más compleja. O también <https://git.nunosempere.com/personal/squiggle.c>, una versión en C más rápida pero mucho más verbosa
a~b:^)Genial. Si te gustó el texto, el paper “Dissolving the Fermi Paradox” también podría resultarte interesante. Profundiza más en multiplicar funciones de densidad de probabilidad reales, en lugar de las estimaciones puntuales habituales.
Un resultado un tanto sorprendente es que quizá simplemente estemos solos.
https://arxiv.org/abs/1806.02404
Creé una herramienta parecida; es para la línea de comandos[1] y la motivación es similar, aunque es un poco más ambiciosa[2].
Me encanta que más gente piense de esta forma. La capacidad de razonar sobre las fuentes de variación no es algo en lo que todos reciban entrenamiento o que todos desarrollen, pero se está volviendo cada vez más importante[3].
[1]: https://git.sr.ht/~kqr/precel
[2]: https://entropicthoughts.com/precel-like-excel-for-uncertain...
[3]: https://entropicthoughts.com/statistical-literacy
El histograma en arte ASCII, o más exactamente en arte ANSI, está muy bueno. Es un buen hack para resolver algo rápido.
Yo probablemente habría perdido 5 veces más tiempo probando varias bibliotecas de gráficos y luego me habría rendido.
[1] https://github.com/stefanhengl/histogram
https://www.getguesstimate.com/ es una versión de esto hecha como hoja de cálculo.
¿Hay alguna forma de multiplicar que no sea multiplicación escalar? Por ejemplo, si quiero decir “la suma de tirar un dado tres veces”, dejando de lado que no es una distribución normal, quisiera que
1~6 * 3 = 1~6 + 1~6 + 1~6 = 6~15.Pero en realidad
1~6 * 3 = 3~18. Eso hace que cálculos como “¿cuánto tardaré en completar 1000 tareas que toman entre 10 y 100 cada una?” sean realmente difíciles.Sería bueno poder convertir la salida nuevamente en un intervalo o en una distribución gaussiana.
Nota: si te preguntas por qué hay un número negativo (-5) en el histograma, es una desventaja inevitable de la simplicidad de Unsure Calculator. Sin conocimiento adicional, la calculadora no puede saber que los valores negativos son imposibles.
La ecuación de Drake, o las ecuaciones que multiplican probabilidades, también pueden verse en el espacio logarítmico. Hay incertidumbre en la escala de cada probabilidad, y la probabilidad final es el resultado de multiplicar los exponenciales de las log-probabilidades. Así no aparece este problema de números negativos.
100 / 4~6da17~25como salida.Al principio suena como un juguete, pero sorprendentemente parece útil. Si saliera como una app para usar junto a la calculadora habitual, sin duda la instalaría.
No se me ocurre exactamente cuándo la habría necesitado, pero si la asignara a un atajo del teclado, parece bastante probable que empezara a encontrar ocasiones para usarla.
Como también tiene funciones trigonométricas, parece buena para hacer ingeniería inversa de piezas complejas a partir de mediciones simples. Por ejemplo, volumen de formas, ángulos de bordes o áreas de sección transversal.
Sería bueno que soportara distribuciones multimodales, pero no es imprescindible. Las funciones trigonométricas inversas también serían interesantes, aunque complejas y no imprescindibles.
En cualquier caso, esta herramienta es más cómoda que abrir Python cada vez que quiero estimar un rango de respuestas.
Solicitud de función: sería bueno que permitiera especificar la distribución de probabilidad. Por ejemplo, que
~sea una distribución normal y_una distribución uniforme.G(50, 1), una distribución exponencial negativa con λ=3 seríaN(3), una distribución uniforme entre 0 y 1 seríaU(0, 1), y una distribución entera uniforme de 1 a 6 seríaUI(1, 6).Parece mucho más flexible y también más fácil de recordar.