Purpose

I want to see how much vaccination effects the COVID outbreaks around the US.

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.metrics import r2_score
df = pd.read_csv('data/covid_vax_2021_06_04.csv')
df.head()
state Cases Daily Avg. cases per 100k 14-day change Hospitalized Daily Avg. Per 100,000 14-day change.1 Deaths Daily Avg. Per 100,000.1 Fully Vaccinated
0 Vermont › 8 1 –81% 5 <1 –57% 0.0 — 57
1 South Dakota › 20 2 –51% 40 5 –34% 2.3 0.26 43
2 Nebraska › 45 2 –42% 81 4 –25% 1.0 0.05 42
3 California › 932 2 –29% 1359 3 –18% 26.1 0.07 44
4 New Hampshire › 32 2 –71% 36 3 –40% 0.7 0.05 50
def plot_vax(df, degree):
    coeffs = np.polyfit(df['Fully  Vaccinated'], df['cases per 100k'], degree)
    p = np.poly1d(coeffs)
    r2 = r2_score(df['cases per 100k'], p(df['Fully  Vaccinated']))

    plt.scatter(df['Fully  Vaccinated'], df['cases per 100k'], color='red')
    plt.plot(range(25,60), p(range(25,60)))
    plt.xlabel('Percent Fully Vaccinated')
    plt.ylabel('Cases per 100k people')
    plt.title(f'US State Cases vs Vaccinations. \n r-squared: {r2.round(3)}')
plot_vax(df, 1)
plot_vax(df, 2)

This one is clearly overfitting

plot_vax(df, 8)