Статья О'Хары и Коцзе («Методы в экологии и эволюции» 1: 118–122) не является хорошей отправной точкой для обсуждения. Мое самое серьезное беспокойство вызывает утверждение в пункте 4 резюме:
Мы обнаружили, что преобразования выполнялись плохо, кроме. , Квазипуассоновы и отрицательные биномиальные модели ... [показали] небольшую предвзятость.
λθλ
λ
Следующий код R иллюстрирует эту точку:
x <- rnbinom(10000, 0.5, mu=2)
## NB: Above, this 'mu' was our lambda. Confusing, is'nt it?
log(mean(x+1))
[1] 1.09631
log(2+1) ## Check that this is about right
[1] 1.098612
mean(log(x+1))
[1] 0.7317908
Или попробуй
log(mean(x+.5))
[1] 0.9135269
mean(log(x+.5))
[1] 0.3270837
Масштаб, по которому оцениваются параметры, имеет большое значение!
λ
Обратите внимание, что стандартная диагностика работает лучше в масштабе журнала (x + c). Выбор c может не иметь большого значения; часто имеет смысл 0,5 или 1,0. Также это лучшая отправная точка для исследования преобразований Бокса-Кокса или варианта Бокса-Кокса Йео-Джонсона. [Йео, И. и Джонсон, Р. (2000)]. Смотрите далее страницу помощи для powerTransform () в автомобильном пакете R. Пакет gamlss от R позволяет установить отрицательные биномиальные типы I (общее многообразие) или II, или другие распределения, которые моделируют дисперсию, а также среднее, со степенными ссылками преобразования 0 (= log, т. Е. Log log) или более , Приступы могут не всегда сходиться.
Пример: данные о смертности и базовом повреждении
относятся к названным атлантическим ураганам, которые достигли материковой части США. Данные доступны (имя hurricNamed ) из недавнего выпуска пакета DAAG для R. Страница справки с данными содержит подробную информацию.
На графике сравнивается подобранная линия, полученная с использованием надежного линейного подбора модели, с кривой, полученной путем преобразования отрицательного биномиального соответствия с логарифмической связью в логарифмическую шкалу (количество + 1), используемую для оси у на графике. (Обратите внимание, что нужно использовать что-то похожее на логарифмическую шкалу (count + c) с положительным c, чтобы показать точки и подобранную «линию» от отрицательного биномиального соответствия на том же графике.) Обратите внимание на большое смещение, которое очевидно, для отрицательного биномиального соответствия на шкале логарифмических. Надежная линейная модель гораздо меньше смещена в этом масштабе, если предположить отрицательное биномиальное распределение для отсчетов. Подход линейной модели был бы беспристрастным в предположениях классической нормальной теории. Я обнаружил, что уклон был удивительным, когда я впервые создал то, что по сути было вышеупомянутым графиком! Кривая будет соответствовать данным лучше, но разница находится в пределах обычных стандартов статистической изменчивости. Надежная линейная модель подходит плохо для подсчета в нижней части шкалы.
Примечание --- Исследования с данными RNA-Seq: Сравнение двух стилей модели представляет интерес для анализа данных подсчета из экспериментов по экспрессии генов. В следующей статье сравнивается использование надежной линейной модели, работающей с log (количество + 1), с использованием отрицательных биномиальных подгонок (как в пакете BiRonductor edgeR ). Большинство подсчетов в приложении RNA-Seq, которое в первую очередь имеет в виду, достаточно велики, чтобы подходящие взвешенные логарифмические модели подходили для работы чрезвычайно хорошо.
Закон, CW, Чен, Y, Ши, W, Смит, GK (2014). Voom: прецизионные веса разблокируют инструменты анализа линейной модели для счетчиков чтения RNA-seq. Genome Biology 15, R29. http://genomebiology.com/2014/15/2/R29
NB также недавняя статья:
Schurch NJ, Schofield P, Gierliński M, Cole C, Sherstnev A, Singh V, Wrobel N, Garbi K, Simpson GG, Owen-Hughes T, Blaxter M, Barton GJ (2016). Сколько биологических повторов необходимо в эксперименте RNA-seq и какой инструмент дифференциальной экспрессии следует использовать? РНК
http://www.rnajournal.org/cgi/doi/10.1261/rna.053959.115
Интересно , что линейные модели припадки с использованием limma пакета (например , кромкообрезной , из группы WEHI) встать очень хорошо (в смысле показывает мало признаков смещения), относительно результатов со многими повторами, а число повторов является снижается.
R код для приведенного выше графика:
library(latticeExtra, quietly=TRUE)
hurricNamed <- DAAG::hurricNamed
ytxt <- c(0, 1, 3, 10, 30, 100, 300, 1000)
xtxt <- c(1,10, 100, 1000, 10000, 100000, 1000000 )
funy <- function(y)log(y+1)
gph <- xyplot(funy(deaths) ~ log(BaseDam2014), groups= mf, data=hurricNamed,
scales=list(y=list(at=funy(ytxt), labels=paste(ytxt)),
x=list(at=log(xtxt), labels=paste(xtxt))),
xlab = "Base Damage (millions of 2014 US$); log transformed scale",
ylab="Deaths; log transformed; offset=1",
auto.key=list(columns=2),
par.settings=simpleTheme(col=c("red","blue"), pch=16))
gph2 <- gph + layer(panel.text(x[c(13,84)], y[c(13,84)],
labels=hurricNamed[c(13,84), "Name"], pos=3,
col="gray30", cex=0.8),
panel.text(x[c(13,84)], y[c(13,84)],
labels=hurricNamed[c(13,84), "Year"], pos=1,
col="gray30", cex=0.8))
ab <- coef(MASS::rlm(funy(deaths) ~ log(BaseDam2014), data=hurricNamed))
gph3 <- gph2+layer(panel.abline(ab[1], b=ab[2], col="gray30", alpha=0.4))
## 100 points that are evenly spread on a log(BaseDam2014) scale
x <- with(hurricNamed, pretty(log(BaseDam2014),100))
df <- data.frame(BaseDam2014=exp(x[x>0]))
hurr.nb <- MASS::glm.nb(deaths~log(BaseDam2014), data=hurricNamed[-c(13,84),])
df[,'hatnb'] <- funy(predict(hurr.nb, newdata=df, type='response'))
gph3 + latticeExtra::layer(data=df,
panel.lines(log(BaseDam2014), hatnb, lwd=2, lty=2,
alpha=0.5, col="gray30"))