перекодирование гонки с 4 категорий на 3 категории и создание 2 манекенов в R

Я работаю с переменной для расы, которая принимает следующие значения: 1 черный, 2 латиноамериканец, 3 смешанная раса (не латиноамериканец), 4 не черный / не латиноамериканец. Я хочу суммировать 3 и 4 и сделать их базовой категорией, оставив темнокожих и испаноязычных. Я попытался создать 2 манекена (черный = 1 и другие испаноязычные = 1) и созданы 2 дополнительных столбца, но значения в них не 1 и 0, а False и True. Код, который я использовал:

nlsy2$Hispanic <- nlsy2$Race==2
nlsy2$Black <- nlsy2$Race==1
nlsy2$Race [ nlsy2$Race == 0 ] <- 3
nlsy2$Race [ nlsy2$Race == 0 ] <- 4

Также, когда я запускаю summary(nlsy2$Hispanic), R дает мне следующий результат:

   Mode   FALSE    TRUE    NA's 
logical    5594    1526       0 

Есть проблемы с АН при запуске glm? Кроме того, если у вас есть лучшее решение для кода, как я могу перекодировать переменную гонки, это было бы очень полезно! Спасибо!


person bree    schedule 24.04.2017    source источник
comment
попробуйте nlsy2$Hispanic <- (nlsy2$Race == 2) + 0   -  person Adam Quek    schedule 24.04.2017
comment
Также предоставьте воспроизводимый пример   -  person Adam Quek    schedule 24.04.2017
comment
Попробуйте сгруппировать категории с помощью функции levels в R, см. [Ссылка] stackoverflow.com/questions/9604001/, и почему вам нужно преобразовывать в фиктивные для моделирования, а не использовать их as.factor? Для NA вы всегда можете включить na.action = na.exclude в свой код, и, основываясь на данных, вы всегда можете рассмотреть возможность вменения его с помощью пакета mice.   -  person Learner_seeker    schedule 24.04.2017
comment
@ Адам Квек: Да! Спасибо, что NA исчезает из-за латиноамериканцев: D   -  person bree    schedule 24.04.2017


Ответы (1)


Делает

nlsy$Race[nlsy$Race == 3 | nlsy$Race == 4] <- 0
nlsy$Race <- factor(nlsy$Race)

не делать работу? При любом моделировании вы захотите использовать факторы, а не числовые, потому что они категоричны, и вы не хотите, чтобы они интерпретировались как числовые.

person shians    schedule 24.04.2017
comment
Код, который вы разместили, работал. У меня есть общий вопрос об указании расы как фактора: если запустить логистическую регрессию семейного положения по расе и т. Д., Как это повлияет на мои коэффициенты / результаты? Причина, по которой я спрашиваю, состоит в том, что у меня больше категориальных переменных: пол, степень и т. Д. Пол бинарный, но степень имеет несколько категорий (от отсутствия образования до доктора философии). У меня не было проблем с запуском логистической регрессии, теперь мне просто интересно, как это может повлиять на мои результаты, если я не скажу R, что мои категориальные переменные являются факторами. Извините, если это банальный вопрос. - person bree; 24.04.2017
comment
Что ж, в двоичном коде это, вероятно, не имеет значения, но с точки зрения категориальности для латиноамериканцев не имеет смысла быть 2, а для черных - 1, поскольку нет причин ожидать, что испаноязычные будут в два раза больше расы, чем черные. Для обучения модели должны быть еще более сложными, потому что они должны быть упорядоченными, но не обязательно линейными. Что касается коэффициентов, вы должны заметить, что если бы вы использовали категориальный, вы бы получили коэффициент для каждого из чернокожих и латиноамериканцев, но если бы он был числовым, вы бы получили один коэффициент в разделе «Раса», что также означало бы, что у испаноязычных жителей в два раза больше расы, чем у чернокожих. - person shians; 24.04.2017
comment
Tnx, у меня есть пример с race, поэтому я создал манекен для Blacks & Hispanic вместо одной переменной Race. Сейчас думаю, как решить проблему с образованием. Степень = 0 для лиц без образования, степень = 1 для HS ... до степени = 4 для PhD. Переменная упорядочена, и, поскольку я использую логистическую регрессию, я подумал, что она более гибкая и нет никаких предположений о том, как именно связаны независимая переменная (степень) и зависимая переменная (семейное положение). Не могли бы вы предложить создать манекены для каждого уровня образования, чтобы улучшить модель? - person bree; 24.04.2017
comment
Прошло некоторое время с тех пор, как я что-то делал с порядковыми числами, но x <- factor(x, ordered = TRUE) должен помочь, пока ваши исходные уровни были в правильном порядке, в противном случае просто укажите их с аргументом levels = c(...) в factor factor. - person shians; 24.04.2017
comment
он работает как шарм, указывая категориальные переменные как факторы. Однако у R есть проблема с переменной race, и я получаю: Ошибка в cor (nlsy2): 'x' должно быть числовым. Я понимаю, что нет никакой корреляции между двумя категориальными переменными или категориальной и непрерывной. Как бы вы оптимизировали команду, чтобы получить корреляцию для всех переменных в вашем наборе данных (это всего 9 переменных) для тех, которые являются непрерывными? - person bree; 24.04.2017