始める無料で始める

NHANES データのクリーニング

データのクリーニング中、16歳未満の人は誰も治療を受けていないことが分かりました。ここでは、医師から食事中の脂肪やカロリーを減らすよう助言されたかどうかを示す変数を、目的のある栄養カウンセリング、つまり私たちの「治療」とみなしていました。そこで、データセットには16歳より大きい患者のみを残しましょう。

また、ggplot2 のデフォルト設定では、従属変数が欠損している観測値(この場合は体重)が削除されることにも気づいたかもしれません。欠損した体重への対処法の一つである「欠損補完」は、simputation パッケージで実装できます。欠損補完は、欠損値を平均や中央値といった要約統計量で置き換える、あるいはモデルで予測した値を用いて置き換える手法です。

ここでは impute_median() を使います。これは、データセットと、補完する変数または群ごとに補完するための式を引数に取ります。例えば、impute_median(ToothGrowth, len ~ dose) は、dose ごとの len の中央値で、変数 len の欠損値を補完します。つまり、用量 2.0 を投与されたモルモットで len が欠損している場合、dose が 2.0 のモルモットにおける len の中央値で補完されます。

この演習はコースの一部です

Rで学ぶ実験計画法

コースを見る

演習の手順

  • filter() を使って、16歳を含めず、16歳より大きい人だけを残して nhanes_filter を作成します。年齢は ridageyr 変数に保存されています。
  • simputation を読み込みます。impute_median() を使い、nhanes_filter 内の bmxwt の欠損を、riagendr でグループ化して補完します。
  • nhanes_final$mcq365d について、値が 9 の観測値は 2 に置き換えるようにリコードします。count() を使って、リコードが正しく行われたことを確認します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Filter to keep only those 16+
nhanes_filter <- ___ %>% filter(___)

# Load simputation & impute bmxwt by riagendr
___
nhanes_final <- impute_median(___, ___)

# Recode mcq365d with recode() & examine with count()
nhanes_final$mcq365d <- recode(nhanes_final$mcq365d, 
                               `1` = 1,
                               `2` = 2,
                               `9` = ___)
___ %>% ___
コードを編集して実行