Calculadora de supervivencia para tablas de vida
La calculadora de supervivencia para tablas de vida convierte el número observado de integrantes vivos de una cohorte en cada clase de edad consecutiva en valores normalizados de supervivencia.
Ejecutar — gratis
Introduzca el recuento inicial y los supervivientes registrados en edades posteriores; la calculadora dividirá cada cifra entre el tamaño inicial de la cohorte. El resultado incluye edad, número de supervivientes, supervivencia como proporción y como porcentaje, lo que facilita comparar cohortes de distinto tamaño inicial sin alterar las observaciones originales.
Prepare los recuentos de supervivientes por orden de edad
Comience con una cohorte cuyos integrantes se sigan a lo largo de clases de edad sucesivas. Introduzca primero el número de individuos vivos en la primera clase y añada después el recuento correspondiente a cada clase posterior en orden cronológico. El valor inicial debe ser mayor que cero, pues actúa como denominador en todos los cálculos de supervivencia. Los recuentos deben ser números enteros no negativos y solo pueden mantenerse o disminuir a medida que avanza la edad. Una tabla de vida de cohorte sigue al mismo grupo original; por tanto, un aumento suele indicar que se incorporaron observaciones de otra cohorte, que alguna clase se introdujo fuera de orden o que los datos no representan supervivientes. Los valores repetidos son válidos e indican que no se registraron muertes durante ese intervalo. También se admite un cero final. Use la edad inicial para identificar la primera observación y el intervalo de edad para describir clases equidistantes, ya sean anuales, quinquenales o semestrales. Mantenga una sola unidad de edad y documéntela, porque el resultado conserva edades numéricas sin suponer si son días, meses o años.
Comprenda cómo se calcula la supervivencia
Para cada clase de edad x, la supervivencia específica por edad se calcula como l_x = n_x / n_0, donde n_x es el número de integrantes vivos a esa edad y n_0 es el tamaño inicial de la cohorte. Por ello, la primera fila siempre presenta una supervivencia de 1, equivalente al 100 por ciento. Cada resultado posterior se encuentra entre cero y uno, ya que una cohorte cerrada no puede incorporar integrantes. Por ejemplo, si quedan 760 individuos de los 1,000 iniciales, la supervivencia es 0.76 y el porcentaje mostrado es 76. Se trata de una proporción respecto de la cohorte original, no de la probabilidad condicional de sobrevivir únicamente al intervalo anterior. Esta diferencia es importante: la supervivencia del intervalo dividiría el recuento de una clase entre el de la clase inmediatamente precedente, mientras que esta calculadora siempre emplea el recuento inicial como denominador. Los valores solo se redondean para eliminar ruido de coma flotante. El resultado conserva los recuentos originales junto a los valores normalizados para que usted pueda verificar el denominador, distinguir muestras pequeñas de grandes y reproducir cada operación.
Interprete y compare la tabla de vida resultante
Lea la tabla de arriba abajo para observar qué proporción de la cohorte original permanece en cada edad. Un descenso gradual indica que las pérdidas se distribuyen entre muchas clases, mientras que un escalón pronunciado señala un intervalo antes del cual desapareció una parte importante de la cohorte. Un tramo plano significa que el número registrado de supervivientes no cambió. Como la supervivencia está normalizada respecto del tamaño inicial, se pueden comparar cohortes que comenzaron con cantidades distintas en una misma escala proporcional. La comparación será más sólida si coinciden el origen de edades, los intervalos, los criterios de inclusión y los métodos de observación. El cálculo no corrige migraciones, observaciones perdidas, censura, error de muestreo ni incorporaciones posteriores al inicio. Tampoco estima riesgos de mortalidad o esperanza de vida; para ello hacen falta otros supuestos y, con frecuencia, datos de muertes o tiempo-persona dentro de cada intervalo. Considere la tabla una transformación transparente de los recuentos aportados, no un modelo inferencial. Antes de publicar, investigue aumentos inesperados, confirme los ceros, conserve el tamaño de cohorte e indique la unidad de edad.
Qué puede hacer con ella
Construir una curva ecológica de supervivencia
Normalice los recuentos de organismos marcados que siguen vivos en edades sucesivas antes de representar supervivencia frente a edad.
Comparar cohortes experimentales
Sitúe cohortes de tratamiento y control con tamaños iniciales distintos en una escala proporcional común de supervivencia.
Comprobar una tabla de vida demográfica
Recalcule los valores l_x a partir de recuentos publicados y mantenga cada cifra junto a su proporción para una comparación auditable.
Preguntas frecuentes
¿Cuánto cuesta la calculadora?
Puede ejecutarla gratuitamente en el navegador. Cada solicitud mediante API cuesta $0.002.
¿Qué es la supervivencia específica por edad?
Es la proporción de la cohorte inicial que continúa viva a una edad determinada; se calcula dividiendo el recuento de esa edad entre el recuento inicial.
¿Por qué no pueden aumentar los recuentos?
Una tabla de cohorte sigue a un único grupo inicial. Si no entran nuevos individuos, el número de supervivientes puede mantenerse o disminuir, pero no aumentar.
¿Puedo usar intervalos de edad superiores a un año?
Sí. Defina age_interval con cualquier valor finito positivo e interprételo siempre en la misma unidad, como días, meses o años.
¿La supervivencia equivale a sobrevivir durante un intervalo?
No. La supervivencia utiliza como denominador la cohorte inicial. La supervivencia condicional del intervalo emplea el recuento al inicio de ese intervalo.
¿El último recuento puede ser cero?
Sí. El cero produce una supervivencia de 0 e indica que ningún integrante de la cohorte inicial sigue vivo en esa clase de edad.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/bio/life-table-survivorship \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"survivors":[1000,920,760,410,0]}'const res = await fetch("https://api.kit.forhosting.com/bio/life-table-survivorship", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"survivors": [
1000,
920,
760,
410,
0
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/bio/life-table-survivorship",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"survivors": [
1000,
920,
760,
410,
0
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/bio/life-table-survivorship", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"survivors":[1000,920,760,410,0]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"survivors":[1000,920,760,410,0]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/bio/life-table-survivorship", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"survivors": [
1000,
920,
760,
410,
0
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.life_table_survivorship",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_items | 1000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |