Graphing Indiana’s COVID-19 situation

Like many of you, COVID-19 has weighed heavily on me in 2020. Part of the weight is the uncertainty of it all. While we seem to have a reasonable knowledge now of how to minimize spread and avoid fatality (not that we necessarily are doing these things. Wear your damn masks, people), that was not the case in the beginning. And while I’m not a virologist or an epidemiologist, I find having a sense of the numbers helps my unease. So early on, I started keeping track of some basic stats for Indiana COVID-19 deaths in a Google spreadsheet. You can take a look at it now. Below, I explain some of the history and some observations.

Initial work

At first, I tracked the deaths by day of report. This led to a noticeable pattern. Deaths dropped Sunday and Monday, since the previous day was a weekend. I assume hospitals were slower to report to the local health departments who were in turn slower to report to the states. To address this I also had a plot that ignored weekends. For both of these, I had a seven-day moving average to smooth out individual bumps in the data. This made it easier to spot trends.

After a while, though, I realized that the deaths reported on any given day could represent deaths that occurred on many days. Realizing this, I cleared out the old data and went through each day on the Indiana COVID-19 dashboard. The state makes it easy to see when past days have new deaths added, so it’s easy to keep that up to date. I plotted the daily deaths on linear and log scales with 7-day moving averages. Those first two graphs have basically remain unchanged since.

Indiana COVID-19 daily deaths through 18 September 2020.

It’s also worth noting that the state’s dashboard has improved dramatically since the early days. This includes a moving average for all of the reported metrics.

Spotting trends

Even without relying on day-of-report for tracking deaths, there seemed to be a rough periodicity to the daily death counts. I won’t try to come up with an explanation. But it was clear that comparing day-to-day didn’t necessarily give an accurate picture. So I started tracking week-over-week and week-over-two-week death counts. This, I figured, gives a better picture of the trend. If the differences are consistently negative, that means we’re heading in the right direction. If the differences are consistently positive, that’s a bad sign.

Indiana COVID-19 death comparisons to previous weeks and two weeks ago through 18 September 2020.

After a while, I decided to start tracking cases in the same way. The state’s dashboard makes this more difficult. The graphs don’t indicate when dates have changed, although in daily checks I’ve routinely observed changes of 5-10 cases as far back as 2-3 weeks. The state does make data available via downloadable spreadsheet, so I’ve started using that instead. It’s just less convenient (especially on a weekend when I am sometimes doing it from my phone).

Model verification

Most recently (as in the last two days), I’ve started tracking the Institute for Health Metrics and Evaluation’s (IHME) forecasts. I’d checked their website pretty regularly in the beginning, but now that we’ve reached a sort of terribleness equilibrium, I haven’t. But given the model trends that are suggesting a really terrible Christmas for a lot of people, I thought it would be worth paying attention to.

George E.P. Box said “all models are wrong, but some are useful”. You don’t earn a meteorology degree without learning this lesson. So in order to see how useful the models are, I’m comparing their forecast to the actual deaths.

This is where it gets pretty squishy. To de-noise the data a little bit, I’m comparing the models to a three-day average. I picked that because that’s what IHME says they use to smooth the observed data on their website. But their smoothed numbers don’t quite match mine, so I don’t really know.

At any rate, IHME seems to update about once every week or so. That graph would get messy pretty quickly. My plan is to keep the four most recent model runs and the first run in prior months just to get a feel on how much the model forecasts are improving. I haven’t gone back to add historical model runs beyond the few I’ve currently added. I may end up doing that at some point, but probably not. I’m not particularly interested in whether or not a model from April correctly predicted December. I care if last week’s forecast looks like it has a good handle on things.

Observations

Indiana’s daily death rate has been remarkably consistent over time. With the exception of early August when we saw a bump, we’ve averaged around 9 deaths per day since late June. This is better than the quick increases we saw in April, when the increases were twice what the totals are now. But considering that early IHME model runs had the rate going to zero in May (if I recall correctly), 10 a day is pretty disheartening.

Hospitals and local officials are a little slow to report deaths. It’s not uncommon for a day’s count to double from the initial report in the days following. It’s gotten to the point where I generally don’t enter a day’s deaths until the next day in order to not skew the end of the graph.

The week-over-week differences in new cases are surprisingly volatile. As recently as a few days ago, there’s a swing from +359 on 14 September to -91 on 15 September in the one week comparisons. The two week comparison went from -376 on 9 September to +445 on 10 September. Just looking at the graph, the volatility has seemingly worsened over time.

The future

I try to update the spreadsheet every day. Generally in the early afternoon, as the state dashboard updates at noon. At the moment, I don’t have any plans to make significant changes to what I track or how I graph it. If I do, I’ll post here. I have briefly considered writing some tooling to graph, parse, and plot all of the input data, but the spreadsheet works well enough for now. I have plenty of other things to occupy my time.

Other writing: June 2020

What have I been writing when I haven’t been writing here?

Stuff I wrote

Fedora

Opensource.com

Stuff I curated

Fedora

Other writing: March 2020

What have I been writing when I haven’t been writing here?

Stuff I wrote

Fedora

Stuff I curated

FedORA

Other writing: December 2019

Stuff I wrote

Red Hat/Fedora

Opensource.com

Stuff I curated

Red Hat/Fedora

SysAdvent

Other writing: June 2019

What have I been writing when I haven’t been writing here?

Stuff I wrote

Red Hat/Fedora

Lafayette Eats

Stuff I curated

Red Hat/Fedora

Opensource.com

Other writing: January 2019

What was I writing when I wasn’t writing here?

Stuff I wrote

Fedora/Red Hat

Opensource.com

Lafayette Eats

Stuff I curated

Fedora/Red Hat

My 2018 in review

What a year, huh? I said this in my 2017 review post, and it feels even more fitting this year. Once again I changed jobs — this time of my own choice — only to find out a few months later that my employer was about to be acquired again. But these changes, and some changes I’ve made in my personal life, means I start 2019 in a much better place than I started 2018. Hopefully this means good things for the rest of the year. It’s always nice to start on an upward trajectory.

So what about 2018? I had set a goal of writing 100 articles across Blog Fiasco, Opensource.com, and other non-work sites. I ended up with 97, which is close enough, I guess. 100 articles seems like a reasonable goal, so I’ll keep that for 2019. Now that I’m writing for Lafayette Eats, that will help give me more and varied posts, which should make this sustainable.

Article publication pace for 2016, 2017, and 2018. 2018 was fairly steady on pace for 125 until August when it dropped to around 80.

Blog Fiasco

This blog still exists, so there’s that. 80 of my posts in 2018 were on this blog. Page views for Blog Fiasco went up by 26% over 2017, which puts 2018 slightly below 2016. The unique visitors went up by a similar amount, and the comment count was up 38%.

Top articles in 2018

These are the top Blog Fiasco articles in 2018, along with their 2017 rank.

  1. Solved: ports on ThinkPad Thunderbolt dock doesn’t work with Fedora (published in 2018)
  2. Date-based conditional formatting in Google Sheets (published in 2018)
  3. Using the ASUS ZenBook for Fedora (22)
  4. Solving the CUPS “hpcups failed” error (1)
  5. Installing Lubuntu on a Dell Mini 9 (published in 2018)
  6. Hints for using HTCondor’s credd and condor_store_cred (4)
  7. Reading is a basic tool in the living of a good life (7)
  8. Book review: Forge Your Future with Open Source (published in 2018)
  9. I will (pending approval) have a new employer (again) (published in 2018)
  10. HP laptop keyboard won’t type on Linux (8)

After several years at the top of the heap, my “hpcups failed” post fell to number 4. Not bad for an article I published in 2010. But this year’s 7th-most-read article was published in 2008, which goes to show the value of using a quote as the post title. I don’t think it’s a particularly good post, but it gets a lot of search traffic. I’m encouraged to see that half of this list are 2018 articles, compared to only three in 2017.

Top articles published in 2018

These are the top Blog Fiasco articles that published in 2018.

  1. Solved: ports on ThinkPad Thunderbolt dock doesn’t work with Fedora
  2. Date-based conditional formatting in Google Sheets
  3. Installing Lubuntu on a Dell Mini 9
  4. Book review: Forge Your Future with Open Source
  5. I will (pending approval) have a new employer (again)
  6. Linus’s awakening
  7. It looks like you’re writing a resignation letter, would you like help with that?
  8. We can’t replace Facebook with personal websites
  9. “You’ve been hacked” corrects behavior
  10. It’s hattening!

Other writing: December 2018

What have I been writing when I haven’t been writing here?

Stuff I wrote

Opensource.com

Lafayette Eats

  • 6th Street Dive — In an area of town without a lot of restaurant options, this is a good one.
  • Core Life Eatery — It turns out that vegetables and fast food can get along.

Red Hat/Fedora

Stuff I curated

Opensource.com

Red Hat/Fedora

Other writing: November 2018

What have I been writing when I haven’t been writing here?

Stuff I wrote

Red Hat/Fedora

Lafayette Eats

  • Amer’s Grill — A local Mediterannean restaurant gets subjected to my discerning palate.

Opensource.com

Stuff I curated

Red Hat/Fedora

Opensource.com

I (will, pending approval) have a new employer (again)

Note: this is an entirely personal post and does not represent Red Hat or the Fedora Project in any way.

This is not a repeat from August 2017: my employer is about to be acquired. The news that IBM is spending $34 billion to acquire Red Hat came as a surprise to just about everyone. As you might expect, the reaction among my colleagues is widely varied. I’m still trying to come to terms with my own emotions about this.

Red Hat is not just an employer to me. I’ve been applying for various jobs at Red Hat over the last eight years or so. When I got hired earlier this year, I felt like I had finally obtained a significant professional goal. I’ve long admired the company and the people I know that worked there. I saw Red Hat as a place that I could be happy for a very long time.

But I don’t have a crystal ball. So sometime in the second half of next year, I’ll be an IBM employee. Leadership at IBM and Red Hat have said the right things, and the stated plan is that Red Hat will continue to operate as an independent subsidiary. I have no reason to doubt that, but the specifics of the reality are still unknown. It’s a little bit scary.

It makes sense that we don’t have any specifics yet. The plans can’t really be formed until the folks who would work on them can be told. So almost everyone is just coming up to speed, and the next few months will start bringing some clarity. And even more has to wait until the deal actually closes.

My first reaction was “oh no, my health insurance is going to change again.” After having roughly five insurance plans in the last five years, the idea of updating my information with all of my providers yet again is — while not particularly difficult — kind of annoying. My second reaction was “couldn’t they have waited a few years so I could accumulate more stock?”

So what does this all mean? I really don’t know. Ben Thompson is not optimistic. John “maddog” Hall is taking a positive approach. But most importantly, my friend and patronus Robyn Bergeron is reassuring:

So for now, I’ll go about my day-to-day work. Fedora 29 released on Tuesday. We’re hard at work on Fedora 30. In a few months, I’ll know more about what the future holds. In the meantime, I’m proud to be a Red Hatter and a member of the Fedora and Opensource.com communities. Here we go!