把補值與建模包成一個函式
只要你在補值後的資料上做任何分析或建模,就應該把補值帶來的不確定性納入考量。只對資料集進行一次補值後就直接跑模型,等於忽略了補值只是對遺漏值的估計,而且這個估計本身有不確定性。這類模型得到的標準誤往往偏小。解方是多重補值,而其中一種實作方式就是自助抽樣(bootstrapping)。
在接下來的練習中,你會使用熟悉的 biopics 資料。目標是透過自助抽樣的多重補值加上線性迴歸,檢視在手邊的資料下,女性主角的傳記電影是否比男性主角的票房更低。
先從撰寫一個函式開始:它會建立一個自助抽樣樣本、對其進行補值,並且擬合線性迴歸模型。
本練習屬於課程
在 R 中以插補處理遺漏值
練習說明
- 依
indices指定的列索引重新抽樣data的列,切片後指定給data_boot。 - 以 5 個鄰居對自助抽樣的
data_boot進行 kNN 補值,並將結果指定給data_imp。 - 在
data_imp上擬合一個線性迴歸模型,用sub_sex、sub_type與year解釋earnings。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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)
}