Как заменить переменные соответствующими WOE, используя Информационный пакет - PullRequest
0 голосов
/ 06 декабря 2018

Я моделирую двоичную зависимую переменную (по умолчанию, не по умолчанию).Для отбора и отбора переменных я использовал вес доказательств (WOE) и информационные значения (IV) для каждой независимой переменной.Есть две задачи, которые я хотел бы выполнить:

  1. Я хотел бы удалить независимые переменные из моего начального набора данных с IV ниже указанного порога (например, 0,2).

  2. Я хотел бы заменить начальные значения независимых переменных набора данных соответствующими значениями WOE для моделирования системы показателей.

Проблема заключается в пакете информациивозвращает контейнеры WOE и соответствующую информацию для каждой переменной в списке списков.Первоначально я делал 1. и 2. выше вручную, то есть я бы вручную создавал новый набор данных с переменными, которые выше указанного IV.Ниже приведен мой метод выполнения пункта 1:

IV <- Information::create_infotables(data=initial.df, y="default", bins = 10)  
print((IV$Summary), row.names=FALSE)  
dropped_variables <- names(initial.df) %in% c("V1","V3",...)  
screened.df <- initial.df[!dropped_variables]`

Где отброшенные переменные - это переменные, которые упали ниже порога IV, скажем, 0,2.Это очень неэффективно, когда мы работаем с огромным количеством переменных.Для пункта 2. я сначала попытался вручную жестко кодировать нижнюю и верхнюю границы, используя операторы ifelse, где я сам набирал нижнюю и верхнюю границы (см. Пример кода ниже):

final.df <- data.frame(ifelse(3<=Modeling_Data$LTV & Modeling_Data$OCLTV<= 38,-1.5,  
ifelse(39<=Modeling_Data$LTV & Modeling_Data$LTV<=49,-1.1...

Опять же, этоочень неэффективно.Есть ли у кого-нибудь более эффективный способ решения этих двух задач 1. и 2.?В качестве рабочего примера можно использовать любой набор данных с двоичной числовой зависимой переменной.

...