補完とモデリングを関数にまとめる
補完済みデータに対して分析やモデリングを行う際は、補完に伴う不確実性を考慮する必要があります。1回だけ補完したデータセットでモデルを実行すると、補完が不確実な推定値であるという事実が無視されてしまいます。このようなモデルから得られる標準誤差は、実際よりも小さくなりがちです。この問題を解決するのが多重補完であり、その実装方法の一つがブートストラップです。
以降の演習では、おなじみの biopics データを使って作業します。目標は、ブートストラップによる多重補完と線形回帰を用いて、手元のデータをもとに「女性を主人公とした伝記映画は、男性を主人公とした映画に比べて収益が低いか」を検証することです。
まず、ブートストラップサンプルを作成し、補完を行い、線形回帰モデルをあてはめる関数を作成しましょう。
この演習はコースの一部です
R による欠損データの補完処理
演習の手順
indicesで指定された行をdataから再サンプリングし、結果をdata_bootに代入してください。- ブートストラップサンプル
data_bootに対して、5近傍を使ったkNN補完を適用し、結果をdata_impに代入してください。 data_impを使って、earningsをsub_sex、sub_type、yearで説明する線形回帰モデルをあてはめてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
calc_gender_coef <- function(data, indices) {
# Get bootstrap sample
data_boot <- data[___, ]
# Impute with kNN imputation
data_imp <- ___
# Fit linear regression
linear_model <- ___
# Extract and return gender coefficient
gender_coefficient <- coef(linear_model)[2]
return(gender_coefficient)
}