Как мне обрабатывать female и male как двоичные переменные при работе с биномиальными данными?

#r #glm #categorical-data

#r #глм #категориальный-данные #glm

Вопрос:

Я полный новичок в R / R Studio, программировании и статистике в целом.

В R я запускаю GLM, где моя переменная Y — это категория no / yes (0/1), а моя переменная X — категория пола (женский / мужской).

Итак, я запустил следующий скрипт:

 hello <- read.csv(file.choose())
hello$sexbin <- ifelse(hello$Sex == 'm',0,ifelse(hello$Sex == 'f',1,NA))
modifhello <- subset(hello,hello$Combi_cag_long>=36)
model1 <- glm(modifhello$VAB~modifhello$Sex, family=binomial(link=logit),
              na.action=na.exclude, data=modifhello)
summary.lm(model1)
  

Однако в моем выводе R, похоже, разделил male / female как две отдельные переменные, предполагая, что он не рассматривает их как правильные двоичные переменные:

     Coefficients

                         Estimate      Std. Error      t value    Pr(>|t|)

          (Intercept)    -3.689         1.009          -3.656     0.000258 ***
          modifhello$Sexf 2.506         1.010          2.482       0.013084 *  
          modifhello$Sexm 2.922         1.010          2.894     0.003820 ** 
          ---
          Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
  

Что мне нужно добавить в мой сценарий, чтобы исправить это?

НАЙДЕНО РЕШЕНИЕ

Нужно просто поставить modifhello $VAB ~modifhello $sexbin, а не modifhello $ VAB ~ modifhello $ sex (так как это старая колонка).

Комментарии:

1. Так и должно быть glm(VAB ~ Sex, family=binomial(link=logit), na.action=na.exclude, data=modifhello) . Никогда не используйте $ внутри формулы модели. Поскольку Sex , по-видимому, это символьная переменная, R должен автоматически рассматривать ее как категориальную и применять контрасты обработки. Если вы все еще видите две бета-версии, у вас есть третий уровень в этой переменной (что в наши дни не было бы необычным). Что вам table(modifhello$Sex) говорит?

2. И в случае, если это не ясно: Вам не нужно выполнять ручное фиктивное кодирование. И вы на самом деле не используете sexbin в модели.

3. Спасибо за ваш ответ. Я нашел решение: хотя я добавил свой новый двоичный столбец (sexbin), я все еще запускал модель, используя старый столбец (Sex). Я исправил это, переписав модель как: glm(modifhello $ VAB ~modifhello $ sexbin)

4. Вы не поняли ничего из того, чему я пытался вас научить, не так ли?