Devuelve las tres métricas base que pueden medirse con el contrato de
referencial(). CorrectitudSemFuerte verifica que la identificación exista;
CorrectitudSemDebil comprueba el par identificación–valor; RatioCobertura
mide qué proporción del universo completo de claves aparece en la entidad.
Los ratios de correctitud se obtienen mediante agregar() con "ratio".
Las tres métricas aceptan normalizar, proximidad, metodo, p, umbral,
max_pares y nucleos. normalizar = NULL hereda el perfil declarado por
referencial(). La normalización sólo cambia la representación usada para
emparejar: no modifica los datos. La proximidad es evidencia para los
valores ausentes y nunca cambia su veredicto; si el paquete opcional
stringdist no está
instalado, se declara que no se calculó. Se calcula una sola vez por valor
fallido distinto y la evidencia se reparte a las filas repetidas. El alcance
conserva por separado n_fallos (filas),
n_valores_fallidos_distintos, n_valores_fallidos_comparados y los pares
comparados; así el límite no depende del orden ni de la frecuencia de las
filas.
Value
Lista con tres objetos metrica_generica —CorrectitudSemFuerte,
CorrectitudSemDebil y RatioCobertura—, listos para instanciar contra un
referencial.
Son definiciones: no miden hasta que se las instancia.
Details
Los números se emparejan por su valor. El mismo número guardado como entero
en una tabla y como doble en la otra coincide —100000L y 1e5—, y dos
dobles distintos no coinciden aunque se escriban igual con 15 cifras
—0.1 + 0.2 y 0.3—. Lo mismo vale para metricas_nucleo() cuando compara
filas por sus atributos, como en EntidadDuplicada.
Los valores ausentes no generan medidas de correctitud: corresponden a la
dimensión Completitud. La cobertura ignora claves ausentes en el objetivo y
no permite que duplicados inflen el resultado. Sobre un referencial sin
claves, RatioCobertura no se mide: la cobertura de un universo vacío no es
una proporción, y la métrica queda sin_valores con ese motivo, igual que
cuando la entidad no tiene filas.
Examples
ref <- referencial(
data.frame(id = 1:3, nombre = c("Ana", "Bruno", "Carla")),
"id", "nombre", completo = TRUE, alcance = "padr\u00f3n de ejemplo"
)
m <- metricas_referencial()
fuerte <- instanciar(especializar(m$CorrectitudSemFuerte),
"personas", "id", referencial = ref)
medir(modelo(fuerte), data.frame(id = c(1, 4)))
#> id_medida
#> 1 medicion-20261002T092400.137112-7626-CorrectitudSemFuerte@personas.id-000001
#> 2 medicion-20261002T092400.137112-7626-CorrectitudSemFuerte@personas.id-000002
#> id_medicion fecha metrica
#> 1 medicion-20261002T092400.137112-7626 2026-10-02 09:24:00 CorrectitudSemFuerte
#> 2 medicion-20261002T092400.137112-7626 2026-10-02 09:24:00 CorrectitudSemFuerte
#> metrica_especifica metrica_instanciada dimension
#> 1 CorrectitudSemFuerte CorrectitudSemFuerte@personas.id Exactitud
#> 2 CorrectitudSemFuerte CorrectitudSemFuerte@personas.id Exactitud
#> factor orientacion granularidad tipo_resultado entidad
#> 1 Correctitud semántica conformidad instanciaAtributo booleano personas
#> 2 Correctitud semántica conformidad instanciaAtributo booleano personas
#> atributo fila objeto_medible resultado agregacion
#> 1 id 1 personas[1,id] 1 <NA>
#> 2 id 2 personas[2,id] 0 <NA>
