проблемы с coefplot2() в R

#r #plot

#r #сюжет

Вопрос:

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

Основываясь на руководствах и виньетках Хэдфилда, а также на статье Bolker et al 2012 (Owls examples), я остановился на использовании coefplot2() though dotchart() , который также кажется вариантом. Я использую это вместе со coeftab() следующим в примере кода ниже. Моя проблема в том, что кажется, что я должен иметь возможность пропустить часть кода, используя var.idx , чтобы указать, что я хочу отображать только определенные эффекты; но это выдает ошибку "var.idx: is not a graphical parameter . Я хотел бы знать, касается ли это моего кода или пакетов, которые я использую.

Вызывается моя модель m1.teaching MCMCglmm . Вот код, который работает для меня. Сначала я сводил в таблицу оценки / коэффициенты регрессии в новый объект:

  m1.coefs <- coeftab(m1.teaching)
 

Затем я создаю еще один новый объект, содержащий только оценки смешанных эффектов (присутствующих и r) и доверительные интервалы:

  m1.coefs.present.r <- c(m1.coefs[3:4,])
 

Наконец, я строю оценки и доверительные интервалы:

  coefplot2(m1.coefs.present.r$Estimate, sds=m1.coefs.present.r$'2.5%', varnames=c('present','r'), CI=1)
 

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

Код, который, я думаю, должен работать, но не работает:

  coefplot2(m1.coefs$Estimate, sds=m1.coefs$'2.5%', var.idx = m1.coefs[3:4,], varnames=c('present','r'), CI=1)
 

Этот код выдает ошибки:

  Warning messages:
 1: "var.idx" is not a graphical parameter 
 2: "var.idx" is not a graphical parameter 
 3: "var.idx" is not a graphical parameter 
 4: "var.idx" is not a graphical parameter 
 5: "var.idx" is not a graphical parameter 
 6: "var.idx" is not a graphical parameter 
 7: In plot.window(...) : "var.idx" is not a graphical parameter
 8: In plot.xy(xy, type, ...) : "var.idx" is not a graphical parameter
 9: In title(...) : "var.idx" is not a graphical parameter
 

У меня нет идей и ресурсов для понимания этого, ваша помощь очень ценится!

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

1. Я не coefplot2 устанавливал, но, согласно сообщению об ошибке, var.idx это не распознанный вариант.

2. Верно, но это странно — потому что это указано в документации и используется в опубликованных статьях. Болкер и др. используют этот код: coefplot2(mfit1,var.idx=c(1,3),ptype="vcov", main="") и документация определяет var.idx его как «индекс переменных: по умолчанию отображается все переменные».

3. Сейчас я пытаюсь добавить легенду и получаю ту же ошибку : "legend" is not a graphical parameter .

Ответ №1:

Доступ к фиксированным эффектам моделей MCMCglmm осуществляется $Sol . Используя [,] вы можете указать, какие фиксированные эффекты вы хотите, запятая указывает все строки, которые являются всеми итерациями.

 coefplot2(m1$Sol[,1:5])
 

Отобразит первые 5 исправленных эффектов модели m1 MCMCglmm . Обратите внимание, что вы также можете получить доступ к случайным эффектам, зависящим от уровня, с помощью from $Sol .

Доступ к случайным эффектам осуществляется $VCV .

 coefplot2(m1$VCV[,c(1,3)]
 

будет отображать 1-й и 3-й случайные эффекты модели m1 MCMCglmm .