Skip to contents

Ejecuta la cadena formal: condición por medida, proporción de medidas que cumplen cada regla y media aritmética simple, no ponderada, de las reglas del perfil. Los resultados por regla se conservan en reglas; el resumen de perfiles no sustituye esa distribución.

Usage

evaluar(medicion, perfil)

Arguments

medicion

Primer argumento. Data frame producido por medir(); puede reunir varias corridas si conserva sus id_medicion —con rbind(), que se niega a unir mediciones de modelos distintos: para eso está historico_calidad()—. Cada id_medida se cuenta una vez: una medida repetida, o una con resultado NA sin estar suprimida, se rechaza nombrándola. No es el perfil descriptivo que devuelve perfilar().

perfil

Segundo argumento. Objeto creado por perfil_evaluacion(), que reúne las reglas que se aplican a la medición. Es un perfil de evaluación, distinto del objeto perfil creado por perfilar().

Value

Objeto evaluacion_calidad con tres data frames filtrables: medidas, reglas y perfiles. Si alguna regla declara un desenlace, contiene además desenlaces, un plan que identifica las medidas incumplidas, el valor medido, el motivo y la regla que lo produjo. Cuando una métrica no pudo medirse, conserva cobertura_metricas y deja en NA el resumen afectado, en lugar de tratar la ausencia como éxito. Y cuando una regla declara una métrica que la medición no trae —ninguna medida de ella—, el veredicto cubre menos de lo que la regla dice: eso se avisa al evaluar y queda en el atributo cobertura_reglas, con la corrida, la métrica, el motivo y cómo resolverlo: se mira corrida por corrida, así que una corrida evaluada junto a otras avisa lo mismo que evaluada sola. Si ninguna de las métricas declaradas por una regla tiene medidas, evaluar() se niega y nombra las solicitadas y las disponibles. Conserva además, en atributos, la configuración del modelo, la aplicabilidad y el perfil de evaluación que produjo el resultado.

Examples

nucleo <- metricas_nucleo()
especifica <- especializar(nucleo$NoNulo)
instancia <- instanciar(especifica, "personas", "edad")
medidas <- medir(modelo(instancia), data.frame(edad = c(20, NA, 35)))
regla <- regla_evaluacion("Al menos 90%", function(x) x > 0.9)
evaluar(medidas, perfil_evaluacion("Avanzado", regla))
#> 
#> ── Evaluación de calidad ───────────────────────────────────────────────────────
#> 
#> ── Evaluaciones de medidas ──
#> 
#>                                                         id_medida
#>  medicion-20261002T092355.545400-7626-NoNulo@personas.edad-000001
#>  medicion-20261002T092355.545400-7626-NoNulo@personas.edad-000002
#>  medicion-20261002T092355.545400-7626-NoNulo@personas.edad-000003
#>                           id_medicion               fecha   perfil        regla
#>  medicion-20261002T092355.545400-7626 2026-10-02 09:23:55 Avanzado Al menos 90%
#>  medicion-20261002T092355.545400-7626 2026-10-02 09:23:55 Avanzado Al menos 90%
#>  medicion-20261002T092355.545400-7626 2026-10-02 09:23:55 Avanzado Al menos 90%
#>   metrica_instanciada orientacion resultado
#>  NoNulo@personas.edad conformidad      TRUE
#>  NoNulo@personas.edad conformidad     FALSE
#>  NoNulo@personas.edad conformidad      TRUE
#> ── Evaluaciones de reglas ──
#> 
#>                           id_medicion               fecha   perfil        regla
#>  medicion-20261002T092355.545400-7626 2026-10-02 09:23:55 Avanzado Al menos 90%
#>  n_medidas resultado
#>          3 0.6666667
#> ── Perfiles de madurez ──
#> 
#>                           id_medicion               fecha   perfil n_reglas
#>  medicion-20261002T092355.545400-7626 2026-10-02 09:23:55 Avanzado        1
#>  resultado
#>  0.6666667