Healthcare Fraud Detection With Python
Tags: Technology, Healthcare, Data Science, Programming, Python

What Is the Purpose of EDA?

The purpose of this EDA step is to provide support for later more in-depth analysis. In a recent post, we discussed the concept of agile data science, not so much as a strict process but as a framework. This is one of those steps where, when you are doing the analysis, you can bring up points that are interesting using charts and metrics that might help move your business case along.

Note: In this example, we have already joined all the data sets together for easy use. You can find the code for that here.

For example, in our questions above we are looking to support the idea that it is worth looking into fraudulent providers.

So let’s look at how they play out. We are running this all in SaturnCloud.io because it is easy to spin up a VM and run this analysis as well as to share it.

In this first part, we look at age. It’s usually a great place to start because it is a natural place you might see some patterns in the data.

So we can use the histogram function in Pandas to analyze this.

However, once we look at it, it seems to break down at a pretty even distribution. This means there is a pretty similar sample across both sets of data.

The next question we wanted to answer was focused on spending. First, we wanted to look at spending in general. Initially, when analyzing the gross amount, nothing sticks out, as seen in the charts below.

Total Monthly Spending for Fraud Claims vs. Total Monthly Spending for Non-Fraud Claims

Overall, the months seem to line up, except that the total amounts month over month seem to be much higher on the fraud side. So we wanted to look into this.

A better way we can look at this is this. First, let’s look at the average claim cost per month.

Per Claim Costs for Fraud Claims vs. Per Claim Costs for Non-Fraud Claims

We can see here that there is a drastic difference in the average cost per claim. In the case of providers that are likely to commit fraud, they often charge two times what the non-fraud providers charge. (It would require more analysis into what the claims were to support this).

Another great metric used in healthcare is PMPM. This stands for Per Member Per Month. This is a great metric to see how much a patient is costing per month.

So instead of looking at the average claim costs, we will look at the average patient cost per month. Technically, we should be looking at this by calculating whether or not a patient has valid coverage for the month.

However, due to the data set, we don’t really have that specific data. So, for now, we are using the proxy of the patient’s ID. It’s not perfect, but it is what we will use for now as seen in the code below.

Per Patient Per Month Costs for Fraud Claims vs. Per Patient Per Month Costs for Non-Fraud Claims

Looking at this, you will notice that an insurance provider that is likely to have fraudulent claims also charges two times per patient more than the non-fraudulent providers.

Now, why is it important that we have done this exploratory analysis before diving into model development?

The reason is that this provides a solid business case to sell to your stakeholders for why you would like to invest further in this project.

You already have a business reason that would intrigue any business partner. Based on the monthly spend charts, your provider could be saving upwards of $750,000 USD a month, or several million dollars a year, if you were able to crack down on this insurance fraud.

In addition, you are already seeing some tendencies of fraudulent providers.

But you can’t stop analyzing the data just yet.