1. 学ぶ
  2. /
  3. コース
  4. /
  5. R による欠損データの補完処理

Connected

演習

収束の検出

前の演習で変数のループ処理がうまくできましたね。では、何回繰り返せば十分なのでしょうか?補完された値が新しい繰り返しで変化しなくなったら、処理を止めることができます。

ここでは、コードを拡張して、繰り返しごとに補完済み変数の差分を計算できるようにしましょう。そのために、以下のように定義された平均絶対パーセント変化(Mean Absolute Percentage Change)関数を使います。

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

mapc() は、b が a からどれだけ変化したかを1つの数値で返します。この関数を使って、繰り返しをまたいで補完済み変数がどれくらい変化するかを確認します。その結果をもとに、必要な繰り返し回数を決めましょう。

ブールマスク missing_air_temp と missing_humidity、およびホットデック法で初期化された tao_imp データはあらかじめ用意されています。

指示1 / 3

undefined XP
    1
    2
    3
  • air_temp と humidity それぞれの差分を格納するための空のベクトル diff_air_temp と diff_humidity を作成してください。
  • 前の繰り返し(または初期化)の結果である tao_imp を変数 prev_iter に代入してください。