始める無料で始める

欠損データを保持する

ある状況では、入力が欠損しているという事実自体が重要な情報になることがあります。粗い分類(coarse classification)を使うと、NA を「missing」という独立したカテゴリにまとめて保持できます。

粗い分類を使うと、データを簡素化し、モデルの解釈性を高められます。粗い分類では、値の範囲を含むグループに応答をビン分割します。このビニング手法を使えば、すべての NA を専用のビンに入れられます。

動画では、勤続年数(employment length)を例に粗い分類の考え方を示しました。その例のコードは右側の R スクリプトに再掲してあり、int_rate 変数を粗い分類に適用するように書き換えられます。

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

R で学ぶクレジットリスク・モデリング

コースを見る

演習の手順

  • 提供されたコードを必要な箇所だけ変更して、int_rate を粗い分類し、結果を新しい変数 ir_cat に保存してください。
    • まず、R スクリプト内の loan_data$emp_cat を出現箇所すべてで loan_data$ir_cat に、loan_data$emp_lengthloan_data$int_rate に置き換えます。
    • 次に、変数を "0-8""8-11""11-13.5""13.5+" のカテゴリにビン分割します("0-15""15-30""30-45""45+" を置き換えます)。><= の使い方は動画とまったく同じです。条件文中の数値も忘れずに変更してください(15、30、45 をそれぞれ 8、11、13.5 に変更)。
  • 新しい変数 ir_catplot(loan_data$ir_cat) で確認しましょう。

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

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

# Make the necessary replacements in the coarse classification example below 
loan_data$emp_cat <- rep(NA, length(loan_data$emp_length))

loan_data$emp_cat[which(loan_data$emp_length <= 15)] <- "0-15"
loan_data$emp_cat[which(loan_data$emp_length > 15 & loan_data$emp_length <= 30)] <- "15-30"
loan_data$emp_cat[which(loan_data$emp_length > 30 & loan_data$emp_length <= 45)] <- "30-45"
loan_data$emp_cat[which(loan_data$emp_length > 45)] <- "45+"
loan_data$emp_cat[which(is.na(loan_data$emp_length))] <- "Missing"

loan_data$emp_cat <- as.factor(loan_data$emp_cat)

# Look at your new variable using plot()
コードを編集して実行