Fraud Detection in Healthcare. Identifying Suspicious Healthcare... | by Nishant Mohan | Towards Data Science

Did you know that in the US, billions are expended in frauds, waste and abuse of prescription drugs.
Also, did you know that only 20% of the healthcare providers cause 80% of the costs!?
How do I know this, you ask?
TLDR: How to identify suspicious and possibly fraudulent healthcare providers? Check out my Tableau Viz and this quick video I made explaining the viz.
I’ve worked with a major health insurance provider of the US in the past. Having extensively explored top secret patient claims data (It’s protected by strict laws!) across multiple projects, one thing I realized was that the opioid crisis is real. Even if we keep opioids aside, the sheer volume of fraudulent claims is huge. However, it should be mentioned that what we generally call fraud, is in fact, Fraud, Waste and Abuse (FWA). While Frauds are performed willfully and with malicious intent (duh!), Waste and Abuse do not require intent and knowledge of wrongdoing. Waste is overutilisation of resources, and Abuse refers to provider practices that are inconsistent with sound fiscal, business, or medical practices.
Anyway, when the aim is to identify such healthcare providers, we are faced with a problem: There’s just too many of them!
It’s like finding a needle in a haystack. More precisely, it’s like finding a faulty needle in a pool of needles. Enter Graph Analysis to the rescue. Using Tableau dashboards, I will show how we can filter the providers and identify suspicious ones. This way, we reduce the size of the search pool, so that finding a faulty needle becomes easy. ;)
But where’s the data? The actual patient claim data is protected (called PHI, Protected Health Information) and is not available to the public. But we can make do with a publicly available healthcare data which is aggregated at the provider level, so that it does not identify patients. Centers for Medicare and Medicaid Services provide such data in a Prescriber Summary Table. This data contains aggregated details of the prescription each provider gives, such as opioids, antibiotics, branded drugs, generic ones, and also about the demographics of the providers.
I identified some features I think are important when it comes to judging the fraudulent behaviour of prescribers.
I applied k-means clustering and used KElbowVisualizer to identify optimum number of clusters as below.
from yellowbrick.cluster import KElbowVisualizervisualizer = KElbowVisualizer(KMeans(init='k-means++'), k=(3,11))visualizer.fit(X)        # Fit the data to the visualizervisualizer.show()
Complete code can be seen in this colab notebook. Using elbow method, I decided that 5 is the optimum number of clusters
I tag each prescriber with their cluster number in the dataframe.
Check out this Tableau viz that I made. It has three views that tell a story and aid in pinpointing some specific suspicious prescribers.
Here’s what the three views show:
An overview of overall healthcare provider/prescriber scenario in the US; the charts also act as filters for other charts, so we can see the sickness level of patients of California going to see a dentist in the bottom right bar chart using the two charts above.
The second screen explains visually the difference among the clusters; viewer has the option to alter the metrics using a drop-down list of features giving top 3 specialties of each cluster. It can be seen evidently that cluster 4 is indeed suspicious as it has highest costs across categories.
Finally, we dive deeper into the cluster 4 to identify outlier providers. We can also select any other cluster for pinpointing at confounding providers. The scatter plot on the right side provides details of the provider on hovering over a circle. The providers/prescribers towards the far right are the ones who incur high costs. When their patient risk score is low, I consider them to be suspicious.
In summary, view 1 of the dashboard aims at educating an analyst or viewer of the data and overall healthcare situation in the US. After becoming familiar with the data, in the second view, I wish to visually communicate the differences between the formed clusters and the features used. As such, View 2 can be considered explanatory. The end objective of identifying one or more confounding or outlier prescriber is achieved in View 3. As can be seen in the last chart of the third view, we have an easy way of pinpointing the prescribers who are potentially fraudulent.
Here’s a 2-minute video I made explaining the viz:
The strength of the presented visualization lies in successfully achieving the main task of identifying suspected prescribers. In the process, the analyst or viewer also gets to appreciate the complexity of data in the field of healthcare, such as costs and patient risk scores. However, the robustness of this method cannot be guaranteed as such.
A domain expert is still needed to tell if a prescriber identified as suspicious using the viz is a false positive.
For instance, it is possible that a prescriber, thus identified through the visualization, is one that caters only to high cost-incurring patients/cases only. Such a prescriber will be incorrectly identified through the proposed visualization. At the same time, it can be argued that given other features, an analyst or viewer who is adept in the healthcare field would be able to judge if the prescriber is, in fact, a confounder.
Connect with me on LinkedIn
Check out some of my interesting projects on GitHub