De bootstrap visualiseren

Je datavisualisaties verbeteren in Python

Nick Strayer

Instructor

Eenvoudige betrouwbaarheidsband met onderste en bovenste grenzen met pijlen gemarkeerd

Je datavisualisaties verbeteren in Python

Een klokcurve

Je datavisualisaties verbeteren in Python

Grote populatie met zwarte en witte stippen met een kleinere steekproef eruit genomen

Je datavisualisaties verbeteren in Python

Kleine steekproef van zwarte en witte stippen wordt meerdere keren hersteekproefd om nieuwe datasets van gelijke grootte te maken

Je datavisualisaties verbeteren in Python

Verzamelingen zwarte en witte stippen wijzen naar een reeks schattingen die overeenkomen met hun verhouding zwart-wit

Je datavisualisaties verbeteren in Python
denver_may = pollution.query("city == 'Denver' & month == 8")

# Perform bootstrapped mean on a vector
def bootstrap(data, n_boots): 
    return [np.mean(np.random.choice(data,len(data))) 
            for _ in range(n_boots) ]

# Generate 1,000 bootstrap samples
boot_means = bootstrap(denver_may.NO2, 1000)


# Get lower and upper 95% interval bounds lower, upper = np.percentile(boot_means, [2.5, 97.5]) # Shaded background of interval plt.axvspan(lower, upper, color='grey', alpha=0.2)
# Plot histogram of samples sns.histplot(boot_means, bins = 100)
Je datavisualisaties verbeteren in Python

Fijnmazig histogram met een lichtgrijze strook op de x-as

Je datavisualisaties verbeteren in Python
# Maak een DataFrame met bootstrap-data
denver_may_boot = pd.concat([
    denver_may.sample(n=len(denver_may), replace=True).assign(sample=i) 
    for i in range(100)])

# Plot regressies per sample
sns.lmplot('CO', 'O3', data=denver_may_boot, scatter=False,

# Laat seaborn voor elke resample een regressielijn tekenen hue='sample',
# Lijnen oranje en transparant maken line_kws = {'color': 'coral', 'alpha': 0.2},
# Geen betrouwbaarheidsintervallen ci=None, legend = False)
Je datavisualisaties verbeteren in Python

Een reeks vergelijkbare dalende lijnen

Je datavisualisaties verbeteren in Python
aug_pol = pollution.query("month == 8")

# DataFrame voor bootstrap-samples
city_boots = pd.DataFrame()

for city in ['Denver', 'Long Beach', 'Houston', 'Indianapolis']:
    # Filter NO2 van de stad
    city_NO2 = aug_pol[aug_pol.city == city].NO2
    # 100 bootstrap-samples van NO2 van de stad en in DataFrame zetten
    cur_boot = pd.DataFrame({ 'NO2_avg': bootstrap(city_NO2, 100), 
                              'city': city })
    # Toevoegen aan andere boots
    city_boots = pd.concat([city_boots,cur_boot])

# Visualiseer bootstrap-samples met beeswarm-plot
sns.swarmplot(y="city", x="NO2_avg", data=city_boots, 

# Alle kleuren gelijk zetten color='coral')
Je datavisualisaties verbeteren in Python

Vier beeswarm-plots waarbij één groep duidelijk verder rechts op de x-as ligt dan de andere

Je datavisualisaties verbeteren in Python

Let's get (re)sampling

Je datavisualisaties verbeteren in Python

Preparing Video For Download...