Преобразование NA в другой уровень фактора

Вопрос или проблема

У меня есть данные, собранные о беременных женщинах. Некоторые данные касаются предыдущих беременностей женщин (например, спрашивается, были ли у них предыдущие крупные дети). Для женщин, которые находятся на первых беременностях, ответы на такие вопросы были закодированы как NA. Однако это не пропущенные данные – на них просто нельзя ответить. Поэтому, когда я пытаюсь провести многопараметрическую модель, такую как:

m <- glm(hypertension ~ obese + age + alcohol + maternal_history_big_baby + premature, data = df, family = ‘binomial’ )

Я только что обнаружил, что будет проведен анализ полных случаев, и все женщины с первой беременностью будут исключены из анализа, так как у них ‘NA’ в ‘maternal_history_big_baby’. Это означает, что модель отражает только женщин с более чем одной беременностью, что ограничивает ее обобщаемость.

Варианты:

i. Каковы последствия изменения ‘NA’ в этих типах ковариат на другой уровень фактора (например, ‘3’)? Я понимаю, что вывод для этого уровня фактора будет бессмысленным, но потеряют ли логиты для других уровней фактора (и действительно для других ковариат) точность?

ii. Предпочтительнее ли проводить два различных анализа: один для женщин, которые испытывают свою первую беременность, и другой для женщин с более чем одной беременностью?

Я пробовал na.action = na.pass, но это не работает в моих моделях.

Ответ или решение

Чтобы ответить на ваш вопрос о кодировании NA как другого уровня в факторе, важно учесть несколько аспектов:

i. Влияние изменения ‘NA’ на уровень фактора

Изменение NA на другой уровень (например, ‘3’) в вашем анализе, безусловно, повлияет на характеристики вашей модели. Если вы кодируете NA как уровень фактора, это позволит сохранить наблюдения женщин, находящихся на первом сроке беременности, в модели. Тем не менее, как вы правильно заметили, интерпретация коэффициентов для этого нового уровня фактора будет бессмысленной, так как они не отражают реальных данных.

Что касается логитов для других уровней фактора и других ковариат, это может негативно сказаться на точности оценок. Модель будет учитывать женщин с первым беременным статусом как отдельную категорию, однако эта категория не будет обладать никакой информативностью для других категорий. В итоге, логиты и интерпретация других переменных могут стать не совсем корректными, поскольку влияние первой беременности не может быть правильно оценено, если такая беременность фактически не влияет на риск (как и не подразумевает опыт предыдущих беременностей).

ii. Выполнение двух различных анализов

Более предпочтительным может быть выполнение двух отдельных анализов для женщин, находящихся на первом сроке беременности, и для женщин с несколькими беременностями. Такой подход позволит более точно оценить влияние каждой переменной на каждую группу. Вы сможете:

  • Регрессионный анализ для женщин с первыми беременностями, где наличие NA в переменных не будет проблемой.
  • Отдельный анализ для женщин с предыдущими беременностями, что позволит использовать все доступные данные без лишних искажений факторов.

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

Примечание о na.action = na.pass

Команда na.action = na.pass не работает в контексте ваших моделей, так как она просто пропускает NA, не влияя на структуру данных. Вместо этого, вы можете рассмотреть возможность использования tidyverse (например, dplyr) для предварительной обработки данных, чтобы заменить NA на новый уровень, а затем выполнять анализ, чтобы избежать потери наблюдений.

Заключение

В итоге, кодирование NA как другого уровня может сохранить наблюдения, но может исказить выводы, тогда как разделение анализа на группы позволит более точно интерпретировать данные и снизить риск потери важной информации.

Оцените материал
Добавить комментарий

Капча загружается...