2016-06-18 5 views
4

В настоящее время я работаю над исследованием различных видов летучих мышей и фрагментации среды обитания. В моем наборе данных присутствуют данные присутствия (1 = присутствует, 0 = отсутствует) и данные о размерах фрагментов, массе тела (как непрерывных), так и гильдиях питания (Feeding.Guild; категориальные, 6 уровней: плотоядное животное, frugivore насекомоядное, нектариворное, всеядное и sanguinivore). Размеры фрагментов (logFrag) и массы тела (logMass) преобразуются с использованием естественного журнала для соответствия нормальному распределению. Я не могу представить полный набор данных (bats2) из-за классификации.Интерпретация и построение логистической регрессии

Для анализа этих данных используется логистическая регрессия. В R это функция glm с биномиальным семейством.

bats2 <- read.csv("Data_StackExchange.csv", 
       quote = "", sep=";", dec = ".", header=T, row.names=NULL) 
bats2$presence <- ifelse(bats2$Corrected.Abundance == 0, 0, 1) 
bats2$logFrag <- log(bats2$FragSize) 
bats2$logMass <- log(bats2$Mass) 
str(bats2$Feeding.Guild) 
    Factor w/ 6 levels "carnivore","frugivore",..: 6 1 5 5 2 2 2 2 2 2 ...  
levels(bats2$Feeding.Guild) 
    [1] "carnivore" "frugivore" "insectivore" "nectarivore" "omnivore"  "sanguinivore" 


regPresence <- glm(bats2$presence~(logFrag+logMass+Feeding.Guild), 
        family="binomial", data=bats2) 

Результаты этой регрессии получены с помощью функции summary() и заключаются в следующем.

Coefficients: 
          Estimate Std. Error z value Pr(>|z|)  
(Intercept)    -4.47240 0.64657 -6.917 4.61e-12 *** 
logFrag     0.10448 0.03507 2.979 0.002892 ** 
logMass     0.39404 0.09620 4.096 4.20e-05 *** 
Feeding.Guildfrugivore  3.36245 0.49378 6.810 9.78e-12 *** 
Feeding.Guildinsectivore 1.97198 0.51136 3.856 0.000115 *** 
Feeding.Guildnectarivore 3.85692 0.55379 6.965 3.29e-12 *** 
Feeding.Guildomnivore  1.75081 0.51864 3.376 0.000736 *** 
Feeding.Guildsanguinivore 1.73381 0.56881 3.048 0.002303 ** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Мой первый вопрос - убедиться, что я правильно интерпретирую эти данные: как правильно интерпретировать эти данные? Я использовал this website, чтобы помочь мне в интерпретации.

Кроме того, я попытался построить эти данные, чтобы визуализировать их. Однако при добавлении функции facet_wrap для создания отдельных графиков для разных гильдий питания перехваты и склоны меняются по сравнению с окраской разных гильдий питания на одном участке. Я использовал следующий код:

Участок 1:

library(ggplot2) 
qplot(logFrag, bats2$presence, colour=Feeding.Guild, data=bats2, se=F) + 
    geom_smooth(method = glm, family = "binomial", se=F, na.rm=T) + theme_bw() 

Участок 2:

qplot(logFrag, bats2$presence, data=bats2, se=F) + facet_wrap(~Feeding.Guild, 
                   scales="free") + 
    geom_smooth(method = glm, family = "binomial", se=F, na.rm=T) + theme_bw() 

Итоговый в следующих изображениях:

Plot 1 (left) and plot 2 (right).

Что вызывает эти различия и какой из них был бы правильным?

Sample data set (часть данных, который не классифицирован).

+0

Было бы проще помочь, если бы вы предоставили некоторые данные, чтобы сделать проблему воспроизводимой. Это не настоящие данные, а просто что-то похожее на это. –

+0

CSV-файл с данными примера содержится в следующей ссылке: http://pastebin.com/cHXp0ivG –

+0

Это может быть хорошим [start] (http://stackoverflow.com/q/8845279/707145). – MYaseen208

ответ

1

Ресурс, с которым вы связались, содержит объяснение интерпретации в маркированном разделе под заголовком Using the logit model. Estimate - аддитивный эффект каждого ковариата на лог-шансы присутствия. Это на 1 единицу увеличения непрерывной ковариации или на случай категориального. Несколько пунктов на этом:

  • Поскольку вы взяли журнал непрерывных ковариатов, их эффект на 1 единица на шкале журнала - довольно сложно интерпретировать. Я бы настоятельно советовал этому. Для этой модели нет требования к нормальности FragSize или Mass.
  • Обратите внимание: в списке отсутствует какая-либо из ваших категорий? Эффект ковариат должен измеряться относительно некоторой ссылки. В этом случае эта ссылка представляет собой плотоядное животное с logFrag = 0 и logMass = 0. Эти 0 значений невозможны. Это обычно, и почему интерпретация (Intercept) вам не полезна.

От Std. Error, это показатель вашей уверенности в ваших эффектах Estimate.Люди часто используют нормальное приближение + - 2 * Std. Error вокруг Estimate, чтобы сформировать доверительные интервалы и делать заявления, используя их. Когда интервал + - 2 * Std. Error содержит 0 существует некоторая вероятность того, что истинный эффект 0. Вы не хотите этого, так что вы ищете для малых значений Std. Error относительно Estimate

z value и Pr(>|z|) относятся к нормальному приближению, о котором я говорил. Вероятно, вы уже знаете, что такое оценка Z (Standard Normal) и как люди используют их для выполнения тестов значимости.

Сейчас на ваших участках: Участки на самом деле не строят вашу модель. Вы используете более плавный, чтобы соответствовать новой модели аналогичного типа, но с другим набором данных. Более гладкая только учитывает эффект logFrag, чтобы соответствовать мини-логистической модели в каждой гильдии.

Таким образом, мы ожидаем, что графики будут отличаться от summary(), но не от eachother. Причина, по которой это произошло, интересна, и это связано с использованием bats2$presence вместо presence. Когда вы проходите в bats2$presence, это эффективно, как передача ggplot2 отдельного анонимного списка данных. Пока этот список совпадает с фреймворком данных, как и следовало ожидать, все хорошо. Похоже, что facet_wrap() смешивает данные при использовании bats2$presence, вероятно, из-за сортировки bats2 от гильдии. Используйте простой старый presence, и они выйдут так же.

+0

Большое спасибо за ваше объяснение! –

+0

Также я могу использовать 'FragSize' и' Mass' в этой модели вместо журналов? Как проверить допущения логистической регрессии? У меня была идея, которую я тестировал, но просто прошу быть уверенным. –

Смежные вопросы