置換の練習
NBA選手は米国成人男性より重いのでしょうか?ここでは、NBA選手と米国成人男性の平均体重差(kg)の95%信頼区間を計算します。用意された2つのリストを使いましょう。
平均の差を検定するには置換(パーミュテーション)が有効です。ここでもこのリサンプリング手法を使います!
nba_weights = [96.7, 101.1, 97.9, 98.1, 98.1, 100.3, 101.0, 98.0, 97.4, 100.5, 100.3, 100.2, 100.6]
us_adult_weights = [75.1, 100.1, 95.2, 81.0, 72.0, 63.5, 80.0, 97.1, 94.3, 80.3, 93.5, 85.8, 95.1]
上の各リストには、いずれも13個の体重が含まれています。
すでに random、numpy は np、seaborn は sns、matplotlib.pyplot は plt としてインポート済みです。
この演習はコースの一部です
Pythonで学ぶモンテカルロ・シミュレーション
演習の手順
nba_weightsとus_adult_weightsの値をすべて含むリストとしてall_weightsを定義します。np.random.permutation()を使ってall_weightsに置換を行います。- 並べ替え後の最初の13サンプルを
perm_nba、残りの13サンプルをperm_adultに代入します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Define all_weights
all_weights = ____
simu_diff = []
for i in range(1000):
# Perform the permutation on all_weights
perm_sample = ____
# Assign the permutated samples to perm_nba and perm_adult
perm_nba, perm_adult = ____, ____
perm_diff = np.mean(perm_nba) - np.mean(perm_adult)
simu_diff.append(perm_diff)
mean_diff = np.mean(nba_weights) - np.mean(us_adult_weights)
upper = np.quantile(simu_diff, 0.975)
lower = np.quantile(simu_diff, 0.025)
print(mean_diff, lower, upper)