#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')