Background: the Dutch government publishes certain Covid-related metrics via a dashboard (https://coronadashboard.government.nl/) and I have a few questions about the underlying data science.

It's shown either as-is or as ratio per 100K inhabitants. Since population of the country hasn't changed significantly within 1 year, they both just reflect the number of positive cases:

OBJECTION: if people get themselves tested more (eg going abroad on holiday during July/August, and are required by the destination countries to get tested), even if the same proportion of tests are positive, then because we have more tests, we'll have more positives, so by measuring # positives and not adjusting to # tests, we're subject to various biases towards # tested.

This one is the ratio # positives / # tests. Surprisingly, the trends are very similar, which seems to invalidate (at least partially) the objection formulated earlier:

Q1: Is there an explanation why the trends in [# positives] and [# positives / # tested] align so well?

My hypothesis: if you've been in contact with a positive case, it makes you more likely to be positive, and if you know you were in contact, it makes you more likely to get yourself tested, hence why the trends of # positives and # positives / # tested follow each other. Are there other explanations?


I downloaded the source data and compared both metrics:

import pandas as pd
import plotly.express as px

# Loading the source data
df_src = pd.read_csv('./COVID-19_uitgevoerde_testen.csv',sep=';')
# Keeping only coluns we're interested in and renaming
df = df_src[['Date_of_statistics','Tested_with_result','Tested_positive']]
df = df.rename(columns = {'Date_of_statistics': 'date', 'Tested_with_result': 'tested', 'Tested_positive': 'positive'})
# Grouping by test
df = df.groupby(['date']).sum().reset_index()
# Rolling 7-day mean
df['tested'] = df['tested'].rolling(7).mean()
df['positive'] = df['positive'].rolling(7).mean()
# Removing first 6 days for which we have no data due to 7-day rolling
df = df.iloc[6:]
# Calculating percentage of tests which came back positive
df['positive_rate'] = df['positive']/df['tested']
# Normalizing # positives and % positives as their peak so we can compare them
df['% positives (normalized)'] = df['positive_rate'] / df['positive_rate'].max() * 100
df['# positives (normalized)'] = df['positive'] / df['positive'].max() * 100
# Visualizing both # positives and % positive on the same chart
compare = df[['date','% positives (normalized)','# positives (normalized)']].melt(id_vars=['date'],var_name='metric')
fig = px.line(compare, x="date", y="value", color='metric')

Here is what I get:

enter image description here

As we can see the trends follow each other closely, the correlation coefficient on that dataset is actually 0.88 which confirms what we're seeing

Q2: Despite the very strong correlation, [# positives / # tested] seems a more robust metric than [# positives] as it removes biases towards # tested, so is there any reason why we would want to report on [# positives] at all?


We're interested in the true total number of new infections, but since you can't test everyone all the time we'll have to make do with a proxy for this number.

Both of these metrics depend on the (true) total number of infections and incentives to get tested in some way. In order to figure out which metric is a more accurate proxy for true total number of infections we have to know which groups are how likely to get tested, and how large they are.

Now let's split people into groups depending on what reason they might have to get tested, how likely they are to get tested.

  • Symptoms:
    • With covid --> depends on spread of covid, not on other incentives
    • Without covid --> depends on allergies, flu, cold, etc.
  • Contact with infected person:
    • With covid --> depends on spread of covid, not on other incentives
    • Without covid --> also depends on spread of covid (with some delay)
  • No contact or symptoms:
    • With covid --> depends on spread of covid and other incentives
    • Without covid --> depends on other incentives

Of all of those covid-positive groups, only number of positive tests from people without symptoms or contact also depends on other incentives people have to get tested (vacations, etc.). And keep in mind that a portion of these people are pre-symptomatic and will develop symptoms a few days, so they would have moved to the 'symptoms' group. For those people, their positive test result effectively just came a few days early.

So the question boils down to which of the covid-positive groups is larger: those with symptoms and/or contact, or those without contact and who remain without symptoms?

Given that most infected people seem to experience at least some symptoms, and that (when not over capacity) contact tracing accounts for nearly half of the cases (source, page 28). The with symptoms and/or contact group appears to be the largest by far, so total number of positive tests would be a more accurate proxy for the total number of infections.

That's not to say that we shouldn't keep an eye out for a sudden spike in infections from the no contact/symptoms group and possibly correct for that.

  • Thanks Swier. By total number of infections do you mean the TRUE number of infections (ie the total should we be able to measure it fully, which we never can for various reasons). – Max Jul 26 at 12:03
  • @Max yes, exactly! – Swier Jul 26 at 13:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.