Interpretation

我可以假設這個樣本的(對數)正態性嗎?

  • September 3, 2012

這是我的樣本的 QQ 圖(注意對數 Y 軸);:

在此處輸入圖像描述

正如 whuber 所指出的,這表明底層分佈是左偏的(右尾較短)。

在 R 中使用shapiro.test(在對數轉換後的數據上),我得到了一個測試統計量和 p 值,這意味著我們正式拒絕原假設在 95% 的置信水平。

我的問題是:這在實踐中是否足以進行假設(對數)正態性的進一步分析?特別是,我想使用 Cox 和 Land 的近似方法計算相似樣本均值的置信區間(在論文中描述:Zou, GY, cindy Yan Huo and Taleban, J. (2009)。簡單的置信區間對數正態平均值及其與環境應用的差異。Environmetrics 20, 172–180):

ci <- function (x) {
       y <- log(x)
       n <- length(y)
       s2 <- var(y)
       m <- mean(y) + s2 / 2
       z <- qnorm(1 - 0.05 / 2) # 95%
       #z <- qnorm(1 - 0.10 / 2) # 90%
       d <- z * sqrt(s2 / n + s2 * s2 / (2 * (n - 1)))

       return(c(exp(m - d), exp(m + d)))
}

我注意到置信區間往往以略高於實際樣本均值的點為中心。例如:

> mean(x)
[1] 82.3076
> y <- log(x)
> exp(mean(y) + var(y) / 2)
[1] 91.22831

我認為這兩個值應該是相同的.

與對數正態分佈相比,這些數據具有短尾,與 Gamma 分佈不同:

set.seed(17)
par(mfcol=c(1,1))
x <- rgamma(500, 1.9)
qqnorm(log(x), pch=20, cex=.8, asp=1)
abline(mean(log(x)) + .1,1.2*sd(log(x)), col="Gray", lwd=2)

QQ圖

然而,由於數據強烈右偏,我們可以預期最大值在估計均值及其置信區間中發揮重要作用。因此**,我們應該預期對數正態 (LN) 估計量會傾向於高估均值和兩個置信限**。

讓我們檢查一下,為了比較,使用通常的估計量:即樣本均值及其正態理論置信區間。請注意,通常的估計器僅依賴於樣本均值的近似正態性,而不是數據的近似正態性,並且 - 對於如此大的數據集 - 可以預期效果很好。為此,我們需要對ci函數稍作修改:

ci <- function (x, alpha=.05) {
 z <- -qnorm(alpha / 2)
 y <- log(x); n <- length(y); s2 <- var(y)
 m <- mean(y) + s2 / 2
 d <- z * sqrt(s2 / n + s2 * s2 / (2 * (n - 1)))
 exp(c(mean=m, lcl=m-d, ucl=m+d))
}

這是正常理論估計的並行函數:

ci.u <- function(x, alpha=.05) {
mean(x) + sd(x) * c(mean=0, lcl=1, ucl=-1) / sqrt(length(x)) * qnorm(alpha/2)
}

應用於這個模擬數據集,輸出是

> ci(x)
  mean     lcl     ucl 
2.03965 1.87712 2.21626 
> ci.u(x)
  mean     lcl     ucl 
1.94301 1.81382 2.07219 

ci.u看起來更接近真實平均值的正態理論估計,但很難從一個數據集中判斷哪個過程效果更好。為了找出答案,讓我們模擬很多數據集:

trial <- function(n=500, k=1.9) {
 x <- rgamma(n, k)
 cbind(ci(x), ci.u(x))
}
set.seed(17)
sim <- replicate(5000, trial())

我們有興趣將輸出與真實平均值進行比較. 一組直方圖揭示了這方面:

xmin <- min(sim)
xmax <- max(sim)
h <- function(i, ...) {
 b <- seq(from=floor(xmin*10)/10, to=ceiling(xmax*10)/10, by=0.1)
 hist(sim[i,], freq=TRUE, breaks=b, col="#a0a0FF", xlab="x", xlim=c(xmin, xmax), ...)
 hist(sim[i,sim[i,] >= 1.9], add=TRUE,freq=TRUE, breaks=b, col="#FFa0a0",
                             xlab="x", xlim=c(xmin, xmax), ...)
}
par(mfcol=c(2,3))
h(1, main="LN Estimate of Mean")
h(4, main="Sample Mean")
h(2, main="LN LCL")
h(5, main="LCL")
h(3, main="LN UCL")
h(6, main="UCL")

直方圖

現在很清楚,對數正態程序傾向於高估平均值和置信限,而通常的程序做得很好。我們可以估計置信區間程序的覆蓋範圍:

> sapply(c(LNLCL=2, LCL=5, LNUCL=3, UCL=6), function(i) sum(sim[i,] > 1.9)/dim(sim)[2])
LNLCL    LCL  LNUCL    UCL 
0.2230 0.0234 1.0000 0.9648 

這個計算說:

  • LN 下限在大約 22.3% 的時間(而不是預期的 2.5%)中無法覆蓋真實平均值。
  • 通常的下限在大約 2.3% 的情況下無法覆蓋真實平均值,接近預期的 2.5%。
  • LN 上限將始終超過真實平均值(而不是按預期在 2.5% 的時間內低於該平均值)。這使其成為雙邊 100% - (22.3% + 0%) = 77.7% 置信區間,而不是 95% 置信區間。
  • 通常的上限在 100 - 96.5 = 3.5% 的時間裡無法覆蓋真實平均值。這比預期值 2.5% 略大。因此,通常的限制包括雙邊 100% - (2.3% + 3.5%) = 94.2% 置信區間,而不是 95% 置信區間。

對數正態區間的標稱覆蓋率從 95% 減少到 77.7% 是可怕的。對於通常的區間,降低到 94.2% 一點也不差,這可以歸因於(原始數據的,而不是它們的對數)偏度的影響。

我們必須得出結論,對平均值的進一步分析不應假設對數正態性。

當心!某些過程(例如預測限)對偏度的影響比這些均值的置信限更敏感,因此可能需要考慮它們的偏態分佈。但是,對於幾乎任何預期的分析,對數正態過程似乎不太可能在這些數據上表現良好。

引用自:https://stats.stackexchange.com/questions/35630

comments powered by Disqus