Pythonでデータ可視化を磨く
Nick Strayer
Instructor





denver_may = pollution.query("city == 'Denver' & month == 8") # ベクトルのブートストラップ平均を計算 def bootstrap(data, n_boots): return [np.mean(np.random.choice(data,len(data))) for _ in range(n_boots) ] # ブートストラップ標本を1,000回生成 boot_means = bootstrap(denver_may.NO2, 1000)# 95%区間の下限・上限を取得 lower, upper = np.percentile(boot_means, [2.5, 97.5]) # 区間の背景を淡い灰色で塗る plt.axvspan(lower, upper, color='grey', alpha=0.2)# 標本のヒストグラムを描画 sns.histplot(boot_means, bins = 100)

# ブートストラップしたデータのDataFrameを作成 denver_may_boot = pd.concat([ denver_may.sample(n=len(denver_may), replace=True).assign(sample=i) for i in range(100)]) # 各標本の回帰を描画 sns.lmplot('CO', 'O3', data=denver_may_boot, scatter=False,# 各再標本ごとに回帰直線を描くよう指定 hue='sample',# 線をオレンジ・半透明に設定 line_kws = {'color': 'coral', 'alpha': 0.2},# 信頼区間なし ci=None, legend = False)

aug_pol = pollution.query("month == 8") # ブートストラップ標本の入れ物DataFrame city_boots = pd.DataFrame() for city in ['Denver', 'Long Beach', 'Houston', 'Indianapolis']: # 都市ごとのNO2に絞り込み city_NO2 = aug_pol[aug_pol.city == city].NO2 # 各都市のNO2を100回ブートストラップしDataFrame化 cur_boot = pd.DataFrame({ 'NO2_avg': bootstrap(city_NO2, 100), 'city': city }) # 他の都市の結果に追加 city_boots = pd.concat([city_boots,cur_boot]) # ビースウォームでブートストラップ標本を可視化 sns.swarmplot(y="city", x="NO2_avg", data=city_boots,# すべて同じ色に設定 color='coral')

Pythonでデータ可視化を磨く