Исключите только значения NA, а не целые строки в фильме в R?

#r #regression #missing-data

Вопрос:

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

   'data.frame': 6 obs. of  5 variables:
 $ ID           : int  1 2 3 4 5 6
 $ species_count: num  10 13 15 17 22 9
 $ habitat_type : Factor w/ 2 levels "wall","tree": 1 2 1 2 1 2
 $ wall_height  : num  153 NA 160 NA 170 NA
 $ tree_diameter: num  NA 48 NA 52 NA 71
 

Я хочу создать фильм с species_count зависимой переменной и habitat_type , wall_height и tree_diameter в качестве независимых переменных, однако NA сложны.

 lm.1 <- lm(species_count ~ habitat_type   wall_height   tree_diameter,
           data = DF, na.action = na.exclude)
 

выдает следующую ошибку:

Ошибка в контрастах<-(tmp, значение = contr.funs[1 isOF[nn]]) : контрасты могут применяться только к факторам с 2 или более уровнями

как na.exclude и na.omit удалить все строки.

С помощью:

 DF$wall_height <- na.exclude(DF$wall_height)
 

и

 DF$tree_diameter <- na.exclude(DF$tree_diameter)
 

просто повторяет значения, придавая tree_diameter значения wall и наоборот, вот так:

 DF[1,]
  ID species_count habitat_type wall_height tree_diameter
1  1            10         wall         153            48
 

Есть ли способ опустить NA значения только при сохранении остальной информации в строке, или мне придется использовать отдельные линейные модели?

Заранее спасибо за любую помощь и надеюсь, что я достаточно ясно объяснил проблему.

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

1. Алгоритм наименьших квадратов работает исключительно с числами, поэтому NA невозможны. Вот почему R удаляет наблюдения с помощью NAs, что обычно приводит к смещению. Типичный рабочий процесс заключается в создании нескольких наборов данных с условными значениями, выполнении анализа по выбору для каждого из завершенных наборов данных, а затем объединении результатов с использованием статистических приемов. Такие пакеты mice значительно облегчают процесс «множественного вменения».

2. У вас всего 6 наблюдений, как вы показываете здесь? Обратите внимание , что все случаи со значениями для wall_height имеют значение NA для tree_diameter , и наоборот, поэтому у вас вообще нет полных случаев для этих двух предикторов. Похоже, что каждый из них определен только для одного из двух habitat_type значений. Пожалуйста, отредактируйте свой вопрос, чтобы подробнее рассказать о том, какую гипотезу вы пытаетесь проверить, так как этот подход, похоже, не сработает.

3. Всем привет, спасибо за ваши ответы. EdM, поскольку я только что создал этот набор данных в качестве примера, чтобы проиллюстрировать проблему с моим основным набором данных, да, есть только 6 наблюдений, 3 obs-стены и 3 obs-деревья. wall_height не относится к tree obs и наоборот. Установка их на 0 или использование повторов приведет к искажению анализа? Майкл М., Я пришел к выводу, что мне придется использовать отдельные наборы данных и объединять их. Спасибо за предложение mice , посмотрим!

4. Только что видел конец твоего комментария, ЭдМ. Гипотеза будет заключаться в изучении того, что влияет на богатство видов пауков в садах; выяснении, влияет ли habitat_type это, а затем, влияют ли различные переменные, такие как wall_height и tree_diameter . Мне было интересно, есть ли способ объединить их в один lm , но, похоже, мне придется делать это отдельно.

Ответ №1:

Фундаментальная проблема заключается в том, что

wall_height не относится к tree obs и наоборот.

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

На практике вы сталкиваетесь с проблемой очень малого количества наблюдений. Обычно вам нужно около 10 случаев для каждого предиктора, который вы используете в своей модели. Возможно, вы сможете провести адекватное сравнение 2 сред обитания, но любые результаты в пределах среды обитания, включающие только 3 наблюдения в каждой, будут весьма подозрительными.

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