Saltar para o conteúdo

Use Case

Detección de errores en reclamaciones de seguros

Paulo Maia · 5 de mayo de 2020

Los códigos de seguros los utilizan los planes de salud para tomar decisiones sobre cuánto deben cobrar los médicos y otros proveedores de servicios sanitarios. Actualmente se utilizan varios sistemas de codificación [1]:

  • Current Procedural Terminology (CPT), códigos utilizados por los médicos para describir los servicios que prestan.
  • Healthcare Common Procedure Coding System (HCPCS), utilizado por Medicare. Se subdivide en códigos de nivel I (equivalentes a los códigos CPT) y códigos de nivel II. Los últimos se utilizan para identificar productos, suministros y servicios no incluidos en los códigos CPT (por ejemplo, prótesis y servicios de ambulancia).
  • International Classification of Diseases (ICD), desarrollado por la Organización Mundial de la Salud (OMS), con el objetivo de identificar la condición de salud o diagnóstico del paciente. Estos códigos se combinan típicamente con códigos CPT para asegurar que la condición de salud del paciente y los servicios recibidos coincidan (es decir, para hacer coincidir la facturación y la documentación del diagnóstico).

Después de un procedimiento dado, los profesionales sanitarios enumeran el código del procedimiento en un formulario de reclamación de seguros para que el hospital sea reembolsado total o parcialmente por dicho procedimiento.

Sin embargo, es natural que no todas las reclamaciones enviadas correspondan a los procedimientos reales realizados, debido a fraude o errores de envío, por ejemplo.

He aquí un ejemplo (adaptado de [1]): si te caes y te tuerces el tobillo, y acudes a urgencias como consecuencia, es posible que termines haciéndote una radiografía del tobillo. Si por error, los profesionales sanitarios etiquetan mal la radiografía de tobillo como radiografía de codo, pero aun así te dan el diagnóstico de tobillo esguince, el procedimiento y el diagnóstico no son consistentes, y la reclamación de seguros podría terminar siendo rechazada.

¿Cuáles son algunos de los problemas resultantes de este proceso que pueden tener consecuencias económicas, desde varios puntos de vista de los actores afectados negativamente?

¿Qué pierde cada uno?

  • Paciente

    • La codificación incorrecta de los servicios recibidos (diagnóstico o procedimientos) puede llevar a que el paciente sea etiquetado con una condición que no tiene.
    • Aumento de gastos, incurriendo en costos adicionales para el paciente, la compañía de seguros o ambos.
    • El paciente que presenta condiciones preexistentes (que pueden ser mal diagnosticadas) puede potencialmente llevar a obstáculos para obtener cobertura de salud.
    • A menudo el paciente no tiene acceso a sus registros médicos, lo que lleva a una falta de visibilidad de estos problemas.
  • Hospital

    • Los profesionales sanitarios podrían ser pagados en exceso o en defecto por un procedimiento.
    • Las aseguradoras incluso pueden rechazar la reclamación y no pagar nada, lo que resulta en aumentos de precios también para el hospital.
    • Los hospitales pueden olvidar incluir algunos gastos, perdiendo la oportunidad de ser reembolsados por procedimientos que realizaron o materiales que utilizaron.
    • Las demoras en las correcciones pueden dar lugar a costos administrativos adicionales y retrasos en los pagos.
  • Compañía de seguros

    • Además de errores de codificación, los hospitales podrían intentar enviar elementos adicionales asociados a un procedimiento que realmente no utilizaron, para recibir más financiación (fraude).
    • Las demoras en las correcciones pueden dar lugar a costos administrativos adicionales y retrasos en los pagos.

Entonces, ¿cómo podemos usar la IA para ayudar en esta área?

Modelización de detección de anomalías en reclamaciones de seguros

Te mostraremos cómo resolverlo utilizando múltiples técnicas, incluyendo versiones supervisadas, no supervisadas y débilmente supervisadas. Para saber más, inscríbete en nuestro curso en línea donde discutimos en profundidad todos estos conceptos.

El curso The Machine Learning Spectrum

¿Qué hacer?

Podemos identificar problemas en los envíos de reclamaciones de seguros a cierto nivel de granularidad:

  • Un grupo de códigos de reclamación no tiene sentido.
  • Un grupo de códigos de reclamación no tiene sentido porque el profesional sanitario hizo clic en el código adyacente en la interfaz o utilizó el código en la categoría equivocada (ya que los códigos tienen una cierta jerarquía, por ejemplo, anestesia local y general).

Este caso de uso de detección de errores en reclamaciones de seguros puede aplicarse tanto a hospitales como a compañías de seguros, ya que existe interés en entender qué reclamaciones no son correctas. Básicamente, las opciones posibles son identificar una reclamación como incorrecta, corregir un error en los códigos de reclamación y/o intentar explicar por qué o dónde ocurrió.

Ahora comenzaremos a usar letras para referirnos a los códigos de reclamación, como una simplificación. La siguiente figura representa las posibles entradas y salidas de un modelo de reclamación de seguros.

Con respecto al tercer caso, podemos tener cosas adicionales en la reclamación enviada por el hospital. Una compañía de seguros querrá tener el mínimo de cosas posible, por lo que el modelo debe eliminar los códigos que sean innecesarios.

Para el cuarto caso, una reclamación enviada por un hospital puede carecer de códigos para algunos procedimientos (es decir, por error o por falta de conocimiento sobre un código específico). Un modelo aplicado en un hospital debería ser capaz de añadir reclamaciones adicionales cuando falten.

¿Cuáles son las restricciones?

Un modelo utilizado para detectar errores en reclamaciones de seguros debe ser invariante al orden en el que el profesional sanitario coloca los códigos (por ejemplo, A-B-C o C-A-B). Podemos añadir esta invariancia de diferentes formas:

  • Ampliando los datos de entrada con barajado aleatorio.
  • Ordenando tanto las entradas como las salidas en orden alfabético/numérico.
  • Utilizando una representación invariante a la posición. Por ejemplo, como las secuencias de reclamaciones pueden considerarse como texto, podríamos usar Bag-of-Words para contar la presencia de reclamaciones independientemente de su orden.

¿Cómo podemos hacerlo?

Hay varios enfoques que podemos tomar en este problema, dependiendo de la cantidad de etiquetas y datos disponibles. Daremos algunos ejemplos de cómo podemos abordarlo de forma supervisada y no supervisada, con un enfoque más detallado en un enfoque no supervisado.

Datos disponibles

  • Código de reclamación
  • Fecha de la reclamación
  • Posiblemente: Resultado (utilizado como etiqueta)

Etiquetas asumidas

  • Positivo: Reclamación incorrecta. La compañía de seguros reportó problemas con la reclamación de un cierto hospital, y el hospital se echó atrás y estuvo de acuerdo con el error.
  • Negativo: Casos en los que la compañía de seguros detectó que la reclamación no tenía errores, no quiso gastar tiempo y dinero en procesos legales para esa reclamación específica o no detectó un error que existía. Como tal, las etiquetas negativas son una mezcla de positivos y negativos.
  • Ninguno: Reclamaciones restantes que aún no han sido evaluadas.

Se pueden utilizar dos mecanismos de aprendizaje principales:

Enfoques supervisados

Si tenemos etiquetas tanto positivas como negativas, este es un problema clásico de aprendizaje supervisado planteado como clasificación binaria. Podemos entonces extraer manualmente características de los códigos, como la co-ocurrencia de pares de códigos, o utilizar algún modelo profundo (por ejemplo, RNN) para intentar inferir la relación entre códigos desde la entrada.

Sin embargo, como las etiquetas negativas también pueden contener el objetivo positivo, podemos pensar en este problema como débilmente supervisado y usar Positive Unlabeled learning (PU Learning), en el que la clase que no es positiva se considera que tiene ejemplos tanto negativos como positivos (conjunto mixto). Dentro del aprendizaje PU, hay varios algoritmos que se pueden utilizar, algunos de los cuales se describen o se mencionan en la literatura [2].

Enfoques no supervisados

Si no hay etiquetas disponibles en absoluto, entonces necesitamos seguir un enfoque no supervisado. Describiremos algunos ejemplos a continuación:

Embeddings de código

Podemos entrenar un modelo word2vec que, dados dos códigos, estime el código adyacente más probable. Nótese que estamos añadiendo invariancia de posición.

De esta manera, podemos entrenar embeddings de código (similares a embeddings de palabras) que aprendan las relaciones entre diferentes códigos. Luego, verificamos si un código dado tiene el embedding con la menor distancia a sus vecinos. Si no es así, lo reemplazamos por el código que sí la tiene.

Esto es más propenso a errores ya que podemos tener códigos para operaciones comunes con distancia de embedding similar.

Modelo generativo

Usando un modelo generativo, podemos ajustar nuestras reclamaciones a un modelo, aprendiendo una función de densidad. Las reclamaciones más comunes estarán cerca en un cierto espacio de probabilidad. Ejemplos de modelos que hacen esto son autoencoders variacionales o modelos de mezcla gaussiana. Luego seremos capaces de conocer la probabilidad de que cada reclamación sea un valor atípico.

Inspirado en Seq2Seq: reconstrucción de secuencias correctas

Con un autoencoder con ruido, estamos intentando reconstruir una cierta secuencia de reclamaciones. Añadimos ruido y el modelo intenta saber qué está mal e intenta corregirlo. Luego podemos calcular un error de reconstrucción, que nos dice que deberíamos tener más elementos de una cierta reclamación y menos elementos de otra. Entonces tenemos una explicación informativa para saber qué está mal en la reclamación.

Inspirado en Seq2Seq: probabilidad de que una secuencia sea incorrecta

Alternativamente, podemos tener un modelo único que nos diga la probabilidad de que cada elemento sea incorrecto (y por lo tanto, conocemos la probabilidad de que toda la reclamación sea incorrecta).

Para hacer esto, añadimos aleatoriamente ruido de etiqueta agregando, eliminando e intercambiando reclamaciones. Luego tenemos un autoencoder que tiene una capa sigmoid que reconstruye la probabilidad de que cada reclamación sea incorrecta.

Tenemos un mayor grado de confianza en el modelo (y podemos medir su incertidumbre) y podemos decidir mejor qué reclamaciones deberíamos analizar manualmente, ya que tenemos probabilidades. Por otro lado, sabemos que una cierta secuencia tiene una alta probabilidad de ser incorrecta, pero no sabemos si debe ser agregada o eliminada.

Para resolver este problema, podríamos añadir una red con tres tareas adicionales: probabilidad de que el código de reclamación sea incorrecto porque necesita ser editado, eliminado o agregado.

Modelo mixto generativo y reconstructivo

También podemos tener un modelo generativo que comparta pesos con un autoencoder con ruido (u otro modelo reconstructivo). De esta manera, un modelo generativo nos dice qué reclamación es incorrecta, y el modelo reconstructivo nos dice por qué es incorrecta (es decir, qué parte de la secuencia es incorrecta), devolviendo también la secuencia corregida.

¿Qué hacer con los resultados del modelo?

Entonces, ¿cómo podemos actuar con nuestro modelo? Supongamos que somos una compañía de seguros con estas dos herramientas:

  • Probabilidad de que la reclamación sea incorrecta.
  • Sugerencias de qué es lo que está mal.

Si queremos seleccionar N casos para evaluar manualmente, ¿cómo podríamos optimizar esto para determinar qué reclamaciones son las más rentables? La compañía de seguros tiene ciertos costos asociados a este procedimiento, y un ejemplo de reclamación con los códigos AAGKM, que debería ser AAGKD. Cada código es un procedimiento o artículo con un cierto costo.

CódigoCosto
A5
B50
K1000
M200
G300
D100

AAGKM = 5*2 + 300 + 1000 + 200 = 1510€

AAGKD = 5*2 + 300 + 1000 + 100 = 1500 €

Los casos positivos son casos de fraude, que queremos evaluar manualmente.

Si aplicamos este modelo en una compañía de seguros, queremos maximizar tanto los Verdaderos Positivos (TP) como los Verdaderos Negativos (TN). Al maximizar los Verdaderos Negativos, ahorramos tiempo de análisis, y al maximizar los Verdaderos Positivos, estamos reduciendo el número de casos que la compañía de seguros no debería estar pagando, pero realmente está.

Por otro lado, si aplicamos esto en un hospital, queremos minimizar los FP (casos marcados como fraude pero que no lo son, costando horas de trabajo para evaluar manualmente) y los FN (casos marcados como negativos pero que son realmente fraude, costando dinero debido a errores).

¿Cómo podemos optimizar esto para una compañía de seguros?

Hay un cierto costo asociado con corregir algo en una reclamación y una diferencia de precio entre la reclamación reconstruida y la reclamación original.

Para cada reclamación X, podemos calcular una puntuación y elegir las muestras con las N puntuaciones más altas como las reclamaciones a evaluar manualmente.

Esta puntuación debe constar de dos términos. En el primer término, que contiene el valor esperado en caso de que se detecte fraude, multiplicamos la probabilidad de fraude por el dinero ahorrado por la compañía de seguros cuando se detecta fraude. Aquí, la entrada de dinero depende del costo de la reclamación corregida restado del precio de la reclamación original y de la tarifa de horas de trabajo requerida para corregir esa reclamación manualmente.

En el segundo término, multiplicamos la probabilidad de no fraude por la tarifa de horas de trabajo requerida para analizar esa muestra, porque incluso si no hay fraude, hay un costo asociado con analizar esa reclamación manualmente.

Score(X) = P(Fraude) x ( PrecioReclamacionCorregida(X) - Precio(X) - TarifaHoras(Corregido(X) - X) ) - (1-P(Fraude)) x TarifaHoras(Corregido(X) - X)

que es igual a:

Score(X) = Prob(Fraude) x ( PrecioReclamacionCorregida(X) - Precio(X) ) - HorasDeTrabajoTotales

Entonces, para el ejemplo anterior, si el modelo corrige la secuencia AAGKM a AAGKD, tenemos una confianza del 90% de que es anómala, y asumiendo un precio fijo de 5€ por análisis de reclamación:

Score(AAGKM) = 0.9 x (1510 - 1500 - 5) = 4.5

Conclusión

En este artículo, presentamos el problema de detectar automáticamente errores y anomalías en reclamaciones de seguros, un caso de uso que puede afectar a varios actores: pacientes, hospitales y compañías de seguros.

Este enfoque se puede realizar de forma supervisada o no supervisada, dependiendo de los datos disponibles. Incluso sin etiquetas disponibles, es posible crear un modelo interpretable y accionable para optimizar el proceso de revisión manual de reclamaciones.

¡Cuéntanos si tienes más ideas para resolver este problema!

Referencias

  1. https://www.verywellhealth.com/learn-about-insurance-codes-to-avoid-billing-errors-1738628
  2. Sansone, E., De Natale, F. G., & Zhou, Z. H. (2018). Efficient training for positive unlabeled learning. IEEE transactions on pattern analysis and machine intelligence, 41(11), 2584-2598.