開始使用免費開始

偵測收斂

上一題你已經很棒地在各個變數上反覆迭代!但到底需要做多少次迭代呢?當新一輪迭代後插補的數值不再改變時,就可以停止了。

你現在要擴充程式碼,計算連續兩次迭代之間插補變數的差異。為此,你會使用「平均絕對百分比變化」函式,已為你定義如下:

mapc <- function(a, b) {
  mean(abs(b - a) / a, na.rm = TRUE)
}

mapc() 會輸出單一數值,用來表示 ba 的差異程度。你將用它來檢查每次迭代中插補變數改變了多少。根據這些結果,你就能決定需要多少次迭代!

布林遮罩 missing_air_tempmissing_humidity 已經為你準備好,另外也提供了以 hotdeck 初始化的 tao_imp 資料。

本練習屬於課程

在 R 中以插補處理遺漏值

檢視課程

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

diff_air_temp <- ___
diff_humidity <- ___

for (i in 1:5) {
  # Assign the outcome of the previous iteration (or initialization) to prev_iter
  prev_iter <- ___
  # Impute air_temp and humidity at originally missing locations
  tao_imp$air_temp[missing_air_temp] <- NA
  tao_imp <- impute_lm(tao_imp, air_temp ~ year + latitude + sea_surface_temp + humidity)
  tao_imp$humidity[missing_humidity] <- NA
  tao_imp <- impute_lm(tao_imp, humidity ~ year + latitude + sea_surface_temp + air_temp)

  
  
}
編輯並執行程式碼