Ir al contenido
σestadistica.ar

Script

Estandarización

Las tasas ajustadas por edad, con los intervalos que corresponden, la descomposición de la brecha en estructura y riesgo, y la cuenta de cuánto de todo eso depende del estándar que uno eligió.

Descargar

Proyecto en R y Python · ZIP · 142 KB

En R alcanza con lo que ya trae; en Python hace falta SciPy.

La tasa cruda ordena al revés

La jurisdicción con la tasa de mortalidad más alta de la Argentina es la que tiene la segunda más baja. No es un error de nadie: es la misma cifra contestando dos preguntas distintas.

JurisdicciónCrudaAjustadaPuesto80 y más
Ciudad de Buenos Aires1.076,4496,41 → 234,8 %
Chaco879,9844,16 → 11,7 %
Misiones742,5752,114 → 21,5 %
Catamarca744,1625,412 → 132,1 %
Tierra del Fuego409,8496,224 → 241,0 %

Por 100.000, con el estándar de la OMS. La última columna es la explicación entera: el 4,8 % de la población porteña tiene 80 años o más, contra el 1,0 % de Tierra del Fuego. Una población más vieja tiene más muertes aunque se muera menos a cada edad.

La última fila es el mismo argumento por el otro lado, y es el que más impresiona: la Ciudad de Buenos Aires y Tierra del Fuego tienen tasas crudas que difieren en 2,6 veces y tasas ajustadas que difieren en un 0,03 % —496,4 contra 496,2, con un intervalo que contiene al uno—. Toda esa brecha era edad.

Cuánto de la brecha es estructura y cuánto es riesgo

La descomposición de Kitagawa parte la diferencia entre dos tasas crudas en dos sumandos que suman exactamente la diferencia: uno por las edades distintas y otro por lo que pasa a cada edad.

ParBrecha crudaEstructuraRiesgoParte estructura
Ciudad de Buenos Aires contra Chaco+196,5+681,4−484,9346,8 %
Ciudad de Buenos Aires contra Tierra del Fuego+666,5+657,6+8,998,7 %
Catamarca contra Santiago del Estero+67,0+69,5−2,5103,7 %

Entre la Ciudad de Buenos Aires y Chaco la estructura explica el 346,8 % de la brecha cruda y el riesgo tira para el otro lado. Por eso la cruda y la ajustada se dan vuelta. La identidad es exacta, no una aproximación, así que el residuo de la resta sirve de control: el proyecto lo escribe y tiene que dar cero.

El estándar cambia el nivel, y a veces el orden

Se dice mucho que el estándar cambia el nivel de una tasa ajustada pero no el orden entre poblaciones. Lo primero es cierto y lo segundo no.

El nivel cambia muchísimo: la tasa de la Ciudad de Buenos Aires es 496,4 con el estándar de la OMS y 1.162,2 con el europeo, 2,34 veces, con los mismos datos y el mismo método. Una tasa ajustada sin el nombre de su estándar al lado no quiere decir nada, y dos tasas ajustadas con estándares distintos no se comparan.

El orden también cambia, aunque menos: se dan vuelta 32 pares de jurisdicciones según con qué estándar se los mire. En 29 de esos 32 los intervalos se pisan con los dos estándares, así que el estándar decide un orden que no estaba decidido y no se pierde nada. Los otros 3 son el caso incómodo, y el proyecto los deja marcados: con uno de los estándares los intervalos no se pisan —la diferencia parecía establecida— y con el otro se da vuelta.

Los intervalos no son los de siempre

Una tasa ajustada no es una proporción y su intervalo no sale de la normal. Es una suma ponderada de conteos de Poisson, que no es un Poisson. El proyecto usa el método de Fay-Feuer, que aproxima esa suma por una gamma con los mismos dos primeros momentos: es el que usan los registros de cáncer y el programa SEER. Con pocos casos el intervalo sale asimétrico, que es lo correcto; la aproximación normal daría límites inferiores negativos.

Para la razón estandarizada va el intervalo exacto de Poisson por la chi cuadrado, y para la razón entre dos tasas ajustadas, uno en escala logarítmica.

Las dos estandarizaciones

La directa pone las tasas propias sobre una estructura ajena y necesita que cada grupo de edad tenga casos suficientes. La indirecta pone las tasas de una referencia sobre la estructura propia y solo necesita el total de casos observados: sirve donde la directa se rompe —poblaciones chicas, causas poco frecuentes, casos por edad no publicados—.

El proyecto calcula las dos y las deja al lado. Con estos datos el orden que dan no es el mismo, y el aviso lo dice: son dos preguntas distintas y no tienen por qué coincidir.

Los datos son reales

No hay nada simulado. Son las 394.940 defunciones de 2022 con residencia y edad conocidas —de la DEIS— sobre las 45.618.787 personas censadas en viviendas particulares por el Censo 2022, abiertas por 24 jurisdicciones y 16 grupos de edad.

La ficha datos/FUENTES.md dice de qué archivo salió cada columna, qué se descartó y por qué, y deja escritas las dos limitaciones que tiene: el numerador cubre a toda la población y el denominador solo a la de viviendas particulares, y el primer grupo de edad es «0 a 9» porque el archivo de defunciones no permite partirlo. Adentro de ese grupo la mortalidad infantil convive con la más baja de toda la vida, y eso no lo arregla ninguna estandarización.

Correrlo con otros datos

Alcanza con dos archivos. Los datos son una tabla larga —una fila por población y grupo, con casos y expuestos— y los nombres de las columnas se declaran en parametros.csv, así que no hace falta renombrar nada. El otro archivo trae los estándares, uno por columna, y el orden de sus filas es el orden de los grupos de edad en todo el proyecto: es la única manera de que «0 a 9» salga antes que «10 a 14» sin suponer nada sobre cómo están escritas las etiquetas.

Qué deja

ArchivoQué trae
tasas.csvCruda y ajustada con intervalos, el cambio porcentual y el puesto en los dos ordenamientos
por-edad.csvEl detalle: tasa específica, peso estándar y aporte de cada grupo
indirecta.csvObservados, esperados, la razón con su intervalo y la tasa indirecta
por-estandar.csvLa misma tasa con cada estándar disponible, con su puesto
sensibilidad.csvLos pares que se dan vuelta según el estándar, y si sus intervalos se pisan
niveles.csvCuánto se mueve el nivel de cada población entre estándares
comparaciones.csvPor par: la brecha cruda partida en dos y la razón entre ajustadas
descomposicion.csvLa descomposición de Kitagawa, grupo por grupo
avisos.csvCada cosa que hay que mirar antes de publicar un número
resumen.csvLas veintitrés cifras del informe, en dos columnas
estandarizacion.mdEl informe redactado

Lo que no hace

No ajusta por varias variables a la vez. Es edad porque es el caso normal, pero cualquier columna categórica sirve; dos juntas, no.

No calcula esperanza de vida ni construye tablas de mortalidad, y no hace series de tiempo.

No suaviza las tasas específicas. Con poblaciones muy chicas eso ayuda y es un método bayesiano que merece su propio proyecto; acá la recomendación es usar la indirecta, que no necesita estimar una tasa por grupo.

No corrige el subregistro. Si al registro de defunciones le faltan casos, la tasa ajustada va a estar igual de baja que la cruda.

Para una tabla sola y sin instalar nada está la calculadora del sitio, que hace la directa y la indirecta con los mismos métodos.

Cómo está verificado

Las cuentas se recalculan con numpy y con un Fay-Feuer escrito aparte, y además se comparan contra src/lib/estandarizacion.ts—la biblioteca que usa la calculadora del sitio— invocada desde Node: tres implementaciones que tienen que coincidir. Encima van las identidades que no pueden fallar: estandarizar una población con su propia estructura devuelve exactamente su tasa cruda; con la referencia igual al total, los casos esperados suman los observados; los dos efectos de Kitagawa suman exactamente la diferencia de tasas crudas; y la razón de una población contra sí misma vale uno. Se comprueba también que qchisq de R y scipy.stats.chi2.ppf coincidan sobre todo el rango de grados de libertad que Fay-Feuer produce —que con estos datos llega al millón—, porque de eso depende que los dos idiomas escriban lo mismo. Corre además cuatro variantes: otro estándar, otra escala y otra confianza, una referencia nombrada y un estándar que es la estructura de una de las poblaciones. Son 11.736 comprobaciones, los veintitrés sabotajes se detectan —diez de ellos rotos en R y en Python al mismo tiempo, para que lo único que pueda verlos sea el recálculo— y R y Python escriben los once archivos idénticos byte a byte en las cinco configuraciones.