Чи можу я припустити (log-) нормальність для цього зразка?


11

Ось графік QQ для мого зразка (зверніть увагу на логарифмічну вісь Y); :n=1000

введіть тут опис зображення
Як вказує Уубер, це вказує на те, що нижній розподіл є косим ліворуч (правий хвіст коротший).

Використовуючи shapiro.test(на даних, перетворених журналом) в R, я отримую тестову статистику і p-значення , що означає, що ми формально відкидаємо нульову гіпотезу на рівні довіри 95%.5,172 10 - 13W=0.97185.1721013H0:the sample is normal distributed

Моє запитання: чи достатньо це на практиці для подальшого аналізу з урахуванням нормальності (log-)? Зокрема, я хотів би обчислити довірчі інтервали для засобів подібних вибірок, використовуючи приблизний метод Кокса та Ленда (описаний у статті: Zou, GY, Сінді Ян Хуо та Taleban, J. (2009). Прості довірчі інтервали для лонормальні засоби та їх відмінності від екологічних застосувань. Екометрія 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

Я думаю, що ці два значення повинні бути однаковими під .H0


1
Розподіл точно не вписується в правий хвіст.
Майкл Р. Черник

1
Цей графік QQ показує, що дані мають набагато коротший правий хвіст, ніж лонормальний розподіл: він лівий косий порівняно з лонормальним. Таким чином, ви повинні з задоволенням використовувати процедури, що базуються на логіці.
whuber

@whuber так, ти маєш рацію щодо того, що лівий косий, а не правий косий. Чи варто оновити запитання?
Вегард

Впевнені: ми цінуємо вдосконалення питань.
whuber

2
NB: Будь ласка, зауважте, що під «лівим косим» я явно мав на увазі, що правий хвіст короткий, а не той, що лівий хвіст довгий. Це видно з того, як точки праворуч від ділянки падають нижче відліку. Оскільки точки ліворуч від ділянки (відносно) близькі до опорної лінії, неправильно характеризувати цей розподіл як "довший лівий хвіст". Тут важлива відмінність, оскільки правий хвіст повинен мати набагато більший вплив на оцінене середнє значення, ніж лівий хвіст (тоді як обидва хвоста впливають на його довірчий інтервал).
whuber

Відповіді:


12

Ці дані мають короткий хвіст у порівнянні з лонормальним розподілом, на відміну від розподілу 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)

QQPlot

Проте, оскільки дані є сильно правої перекіс, ми можемо очікувати , що найбільші значення відіграють важливу роль в оцінці середнього значення і його довірчий інтервал. Тому ми повинні передбачити, що лонормальний оцінювач (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допомогою трохи ближчого до справжнього середнього рівня , але з одного набору даних важко сказати, яка процедура працює краще. Щоб дізнатися це, давайте змоделюємо безліч наборів даних:1.9

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

Ми зацікавлені в порівнянні результатів із справжньою середньою . У цьому плані виявляється панель гістограм:1.9

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% для звичайного інтервалу зовсім не є поганим, і його можна віднести до ефекту косості (непередбачених даних, а не їх логарифмів).

Треба зробити висновок, що подальший аналіз середнього значення не повинен припускати логічності.

Будь обережний! Деякі процедури (такі як межі прогнозування) будуть більш чутливі до перекосу, ніж ці межі довіри для середнього, тому, можливо, їх необхідно буде враховувати. Однак виглядає малоймовірним, що лонормальні процедури будуть добре працювати з цими даними практично для будь-якого наміченого аналізу.


Ого, ця відповідь мене відштовхує. Дуже дякую! Як ви використовуєте abline()замість qqline()(що створює інший рядок) у першому прикладі?
Вегард

Ваша trial()функція не використовує своїх аргументів.
Вегард


1
Хороша робота! Для самозавантаження, змінити trial: trial <- function(y) { x <- sample(y, length(y), TRUE); cbind(ci(x), ci.u(x)) }. Потім виконайте тільки одну команду, sim <- sapply(1:5000, function(i) trial(x)). Ви можете вивчити гістограми шести рядів simпісля цього.
whuber

1
+1, мені особливо подобається тонка точка, що інтервали прогнозування будуть більш чутливі до форми розподілу, ніж довірчі інтервали для середнього.
gung - Відновіть Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.