Проблема с функцией «create_infotables ()» в пакете «Информация»

#r

#r

Вопрос:

Я хочу вычислить значение информации (IV) и горе, используя информационный пакет в r. Я использую следующий код —

 library(Information)
df_iv <- df
IV <- create_infotables(data=df_iv[, -1], 
                    y = "stroke", 
                    bins=10)
  

изначально моя зависимая переменная была фактором, и я получил следующую ошибку-

 Error in CheckInputs(data, valid, trt, y) : 
ERROR: the dependent variable stroke is a factor in training dataset -- has to be numeric
  

Затем я изменил зависимую переменную на числовую следующим образом-

 library(Information)
df_iv <- df
df_iv$stroke <- as.numeric(df_iv$stroke)
IV <- create_infotables(data=df_iv[, -1], 
                    y = "stroke", 
                    bins=10)
  

Теперь я получаю следующую ошибку-

 Error in CheckInputs(data, valid, trt, y) : 
ERROR: the dependent variable has to be binary. Check your training and validation datasets.
  

Моя зависимая переменная имеет только два значения «0» и «1».
Почему это происходит?

Ответ №1:

Преобразование множителя в числовое значение по умолчанию преобразует уровни множителей в целые числа, начинающиеся с 1, поэтому, если ваш зависимый изначально был 0/1, он будет равен 1/2, что приведет к ошибке.

Простое решение — просто вычесть 1 из значения вашей числовой переменной.

Например.

 library(Information)

# succeeds, 0/1 by default
create_infotables(data= mtcars,y='vs')

# fails, now 1/2 numeric
mtcars$vs_converted <- as.numeric(as.factor(mtcars$vs))
create_infotables(data= mtcars,y='vs_converted')

# succeeds, now 0/1 binary
mtcars$vs_converted <- as.numeric(as.factor(mtcars$vs))-1
create_infotables(data= mtcars,y='vs_converted')