O'Hara와 Kotze 논문 (생태와 진화의 방법 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이 의미가 있습니다. 또한 Box-Cox 변환 또는 Box-Cox의 Yeo-Johnson 변형을 조사하기에 더 좋은 시작점입니다. [Yeo, I. 및 Johnson, R. (2000)]. R의 자동차 패키지에서 powerTransform ()에 대한 도움말 페이지를 더 참조하십시오. R의 gamlss 패키지를 사용하면 음수 이항 타입 I (공통 품종) 또는 II, 또는 분산 및 평균을 모델링하는 기타 분포 (0 (= log, 즉, log link) 이상)로 적합 할 수 있습니다. . 맞춤이 항상 수렴되는 것은 아닙니다.
예 : 사망 대 기본 피해
데이터는 미국 본토에 도달 한 대서양 허리케인에 대한 것입니다. R 용 DAAG 패키지의 최신 릴리스에서 데이터를 사용할 수 있습니다 ( hurricNamed ). 데이터의 도움말 페이지에 세부 사항이 있습니다.
그래프는 견고한 선형 모형 적합을 사용하여 얻은 적합 선과 그래프 링크의 음수 이항 적합을 그래프의 y 축에 사용되는 로그 (수 +1) 척도로 변환하여 얻은 곡선을 비교합니다. (동일한 그래프에서 음의 이항 적합에서 점과 적합 "선"을 표시하려면 양의 c를 사용하여 양수 (c +) 스케일과 유사한 것을 사용해야합니다.) 로그 스케일에 음의 이항 적합에 대해 분명합니다. 계수에 대해 음의 이항 분포를 가정하는 경우이 척도에서 강력한 선형 모형 적합이 훨씬 덜 편향됩니다. 선형 모형 적합은 고전적인 일반 이론 가정에 따라 편향되지 않습니다. 본질적으로 위의 그래프를 처음 만들었을 때 놀라운 편견을 발견했습니다! 곡선은 데이터에 더 잘 맞을 것입니다. 그러나 그 차이는 일반적인 통계적 변동성 표준의 범위 내에 있습니다. 강력한 선형 모델 적합은 스케일의 최저값에서 카운트에 좋지 않은 작업을 수행합니다.
참고 --- RNA-Seq 데이터에 대한 연구 : 두 가지 스타일의 모델의 비교는 유전자 발현 실험의 카운트 데이터 분석에 관심이있었습니다. 다음 논문은 log (count + 1)로 작업하는 강력한 선형 모델의 사용과 마이너스 이항 적합 ( 바이오 컨덕터 패키지 edgeR 에서와 같이 )을 비교합니다. 주로 염두에두고있는 RNA-Seq 응용 프로그램에서 대부분의 수는 적합하게 계량 된 로그 선형 모델이 매우 잘 작동 할만큼 충분히 큽니다.
법학, CW, Chen, Y, Shi, W, Smyth, GK (2014). 붐 : 정밀 무게는 RNA-seq 판독 횟수에 대한 선형 모델 분석 도구를 잠금 해제합니다. 게놈 생물학 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, Gharbi K, Simpson GG, Owen-Hughes T, Blaxter M, Barton GJ (2016). RNA-seq 실험에는 몇 개의 생물학적 복제물이 필요하며 어떤 차등 발현 도구를 사용해야합니까? RNA
http://www.rnajournal.org/cgi/doi/10.1261/rna.053959.115
사용하여 선형 모델에 맞는 것은 흥미 롭다 limma의 (같은 패키지를 EDGER 복제의 수는 그대로 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"))