*! version 1.0 21jul2026

Titulo

atip_score -- Score de atipicos en dos ejes: evidencia (N reglas) y magnitud (|z|)

Sintaxis

atip_score varname,
group(varlist)
[opciones]

Requerida
group(varlist) variable(s) que definen el grupo de referencia

Opcionales (identicas a atip_reglas)
rules(string) subconjunto de reglas a aplicar

sdthresh3(#) umbral SD_MEAN_3

sdthresh2(#) umbral SD_MEAN_2

zthresh(#) umbral ZSCORE

zsymmetric ZSCORE de dos colas

mahalthresh(#) umbral MHLBS

Especificas de atip_score
genscore(name) nombre de la variable de magnitud; por defecto MAGNITUD_LOCAL

gennreglas(name) nombre de la variable de evidencia; por defecto N_REGLAS

classic usa media/DE en vez de mediana/MAD (se pasa a atip_reglas). Por defecto (sin esta opcion) se usa la referencia robusta -- ver atip_reglas, seccion Robustez

Descripcion

atip_score generaliza atip_reglas (lo llama
internamente): en vez de colapsar las 5 reglas en un solo flag
binario, calcula dos ejes continuos por separado:

N_REGLAS -- cuantas de las 5 reglas dispararon (0 a 5). Es el
eje de "evidencia", analogo al -log10(p) que usa mmd_volcano
para el test MMD, pero sin inventar un p-valor formal que estas
reglas heuristicas no tienen realmente.

MAGNITUD_LOCAL -- |z| = |(x-media)/DE|, el eje de "que tan
lejos" esta el valor, comparable entre variables y grupos distintos.

Mantener estos dos ejes separados (en vez de combinarlos en un solo
score) es deliberado: permite despues distinguir visualmente, con
atip_volcano, un caso "grande pero con poca evidencia" (podria
ser variabilidad real) de un caso "grande y con mucha evidencia"
(prioridad real de revision) -- una distincion que se pierde si se
combinan en un unico numero de entrada.

Diseño basado en Waal, Pannekoek & Scholtus (2011), Handbook of
Statistical Data Editing and Imputation -- score de edicion
selectiva (score local x score global), adaptado aqui como ejes
visuales en lugar de un producto escalar.

Opciones

Las opciones de reglas (rules(), sdthresh3(),
sdthresh2(), zthresh(), zsymmetric,
mahalthresh()) son identicas a atip_reglas y se pasan
directamente a esa llamada interna.

genscore(name) nombre de la variable de magnitud
local generada. Por defecto MAGNITUD_LOCAL.

gennreglas(name) nombre de la variable de conteo
de reglas generada. Por defecto N_REGLAS.

Resultados almacenados

Escalares

r(n_evidencia_fuerte) numero de observaciones con N_REGLAS>=3

Ejemplos

Uso basico sobre auto.dta (price por foreign)

. sysuse auto, clear

. atip_score price, group(foreign)

. tab N_REGLAS

. list make foreign price MAGNITUD_LOCAL N_REGLAS if N_REGLAS>=3, sep(0)

Con nlsw88.dta (wage por union) -- confirmado con datos reales, n=1878: 67 casos (3.6%) con N_REGLAS>=3 y |z|>=2

. sysuse nlsw88, clear

. drop if missing(wage, union)

. atip_score wage, group(union)

. tab N_REGLAS

Encadenado con atip_volcano para visualizar

. atip_volcano MAGNITUD_LOCAL, nreglas(N_REGLAS) nthresh(3) magthresh(2) id(idcode)

Con classic -- solo si tiene una razon especifica para no querer la referencia robusta

. atip_score wage, group(union) classic

. * ver seccion "Robustez ante contaminacion" en help atip_reglas

Autor / notas de desarrollo

Andres Talavera Cuya

Direccion Nacional de Censos y Encuestas -- INEI Peru

Email: atalaveracuya@gmail.com

Comandos relacionados: atip_reglas (base) y atip_volcano
(visualizacion) -- instalar los tres juntos, atip_score llama a
atip_reglas internamente.

Licencia

Este modulo se distribuye bajo los terminos de la GPL v3
(https://www.gnu.org/licenses/gpl-3.0.txt).