У меня есть два кадра данных:Значения «кэшируются», что приводит к сбою логистической регрессии?
df_bad
die_y бин
1 11 JD
2 13 Я
df_good
die_y бин
1 11 JD
-13 Я
Я бег логистической регрессии:
model_lr < - поезд (бен ~, данные = df_bad, метод = 'GLM', семейство = 'бином.)
model_lr < - поезд (. ~ бен, данные = df_good, метод = 'GLM', семейство = 'биномиальное')
Второй успешно (она была создана непосредственно)
< df_good - data.frame (die_y = C (11, 13), bin = as.factor (c ('JD', 'I')))
Первый сбой (он был разрезан из большего кадра данных) с ошибкой: Один или несколько уровней факторов в результатах не имеют данных: BA ',' dU ',' other ',' TT ',' XD '
Поскольку мне кажется, что кадры данных идентичны, как алгоритм знает какие-либо другие значения фактора потенциала, которые не находятся в данные? Весь этот беспорядок начался с ошибок в исходных данных, поэтому я решил, что попытаюсь собрать исходные данные до рабочего массива данных и оттуда, за исключением того, что алгоритм «помнит» то, что у меня было, и использовал это как еще одно оправдание неудача , Даже удаление исходных исходных данных не изменяет результат. Что дает? Как я могу заставить алгоритм забыть, что было раньше? TIA
Прочтите 'help (" droplevels ")'. – Roland
Dataframes сохраняют все уровни ваших факторов в них, даже если у вас нет случаев для каждого уровня. Как сказал Роланд, используйте капельки. –
Большое спасибо, - добавил следующий код: df_bad <- droplevels (df_bad) и работал – kmccarty