Tôi có thể giả sử tính quy tắc (log-) cho mẫu này không?


11

Đây là một âm mưu QQ cho mẫu của tôi (chú ý trục Y logarit); :n=1000

nhập mô tả hình ảnh ở đây
Như được chỉ ra bởi whuber, điều này chỉ ra rằng phân phối cơ bản bị lệch trái (đuôi phải ngắn hơn).

Sử dụng shapiro.test(trên dữ liệu được chuyển đổi nhật ký) trong R, tôi nhận được thống kê kiểm tra và giá trị p là , có nghĩa là chúng tôi chính thức từ chối giả thuyết null ở mức độ tin cậy 95%.5,172 10 - 13 H 0 : mẫu là bình thường được phân phốiW=0.97185.1721013H0:the sample is normal distributed

Câu hỏi của tôi là: Điều này có đủ tốt trong thực tế để phân tích sâu hơn giả định tính quy tắc (log-) không? Cụ thể, tôi muốn tính khoảng tin cậy cho phương tiện của các mẫu tương tự bằng phương pháp gần đúng của Cox và Land (được mô tả trong bài báo: Zou, GY, cindy Yan Huo và Taleban, J. (2009). phương tiện lognatural và sự khác biệt của chúng với các ứng dụng môi trường. Envirmetrics 20, 172 trộm180):

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)))
}

Tôi đã nhận thấy rằng khoảng tin cậy có xu hướng tập trung xung quanh một điểm cao hơn một chút so với trung bình mẫu thực tế. Ví dụ:

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

Tôi nghĩ hai giá trị này phải giống nhau theo .H0


1
Sự phân phối chắc chắn không phù hợp với đuôi phải.
Michael R. Chernick

1
Biểu đồ QQ này cho thấy dữ liệu có đuôi phải ngắn hơn nhiều so với phân phối logic: nó bị lệch trái so với logic bất thường. Do đó, bạn nên thận trọng khi sử dụng các thủ tục dựa trên logic.
whuber

@whuber vâng, bạn nói đúng về việc nó bị lệch trái chứ không phải lệch. Tôi có nên cập nhật câu hỏi?
Vegard

Chắc chắn: chúng tôi đánh giá cao sự cải thiện cho các câu hỏi.
whuber

2
NB: xin lưu ý rằng "lệch trái" Tôi rõ ràng có nghĩa là đuôi phải ngắn, không phải đuôi trái dài. Điều này thể hiện rõ qua cách các điểm ở bên phải cốt truyện nằm dưới đường tham chiếu. Vì các điểm ở bên trái của âm mưu (tương đối) gần với đường tham chiếu, nên việc mô tả phân phối này là "đuôi trái dài hơn" là không chính xác. Sự khác biệt rất quan trọng ở đây, bởi vì đuôi phải phải có ảnh hưởng lớn hơn nhiều đến trung bình ước tính so với đuôi trái (trong khi cả hai đuôi đều ảnh hưởng đến khoảng tin cậy của nó).
whuber

Câu trả lời:


12

Những dữ liệu này có đuôi ngắn so với phân phối logic, không giống như phân phối 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

Tuy nhiên, vì dữ liệu mạnh ngay-sai lệch, chúng ta có thể mong đợi các giá trị lớn nhất để đóng một vai trò quan trọng trong việc ước tính giá trị trung bình và khoảng tin cậy của nó. Do đó, chúng ta nên dự đoán rằng một công cụ ước tính logic (LN) sẽ có xu hướng đánh giá quá cao giá trị trung bình và hai giới hạn tin cậy .

Hãy kiểm tra và, để so sánh, sử dụng các công cụ ước tính thông thường: đó là giá trị trung bình mẫu và khoảng tin cậy của lý thuyết thông thường. Lưu ý rằng các công cụ ước tính thông thường chỉ dựa vào tính chuẩn gần đúng của giá trị trung bình mẫu , không phải của dữ liệu và - với một tập dữ liệu lớn như vậy - có thể được dự kiến ​​sẽ hoạt động tốt. Để làm điều này, chúng ta cần một sửa đổi nhỏ của cichức năng:

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))
}

Đây là một hàm song song cho các ước tính lý thuyết bình thường:

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

Áp dụng cho bộ dữ liệu mô phỏng này, các kết quả đầu ra là

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

ci.u1.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")

Biểu đồ

Bây giờ rõ ràng là các thủ tục logic bất thường có xu hướng đánh giá quá cao trung bình và giới hạn tin cậy, trong khi các thủ tục thông thường làm rất tốt. Chúng tôi có thể ước tính độ che phủ của các thủ tục khoảng tin cậy:

> 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 

Tính toán này nói:

  • Giới hạn dưới của LN sẽ không bao gồm trung bình thực khoảng 22,3% thời gian (thay vì 2,5% dự định).

  • Giới hạn dưới thông thường sẽ không bao gồm trung bình thực khoảng 2,3% thời gian, gần với mức 2,5% dự định.

  • Giới hạn trên của LN sẽ luôn vượt quá giá trị trung bình thực (thay vì giảm xuống dưới 2,5% thời gian như dự định). Điều này làm cho nó có khoảng tin cậy hai mặt 100% - (22,3% + 0%) = 77,7% thay vì khoảng tin cậy 95%.

  • Giới hạn trên thông thường sẽ không bao gồm giá trị trung bình thực khoảng 100 - 96,5 = 3,5% thời gian. Giá trị này lớn hơn một chút so với giá trị dự định là 2,5%. Do đó, các giới hạn thông thường bao gồm khoảng tin cậy hai mặt 100% - (2,3% + 3,5%) = 94,2% thay vì khoảng tin cậy 95%.

Việc giảm phạm vi bảo hiểm danh nghĩa từ 95% xuống 77,7% cho khoảng thời gian logic là rất khủng khiếp. Việc giảm xuống 94,2% cho khoảng thời gian thông thường hoàn toàn không tệ và có thể được quy cho ảnh hưởng của độ lệch (của dữ liệu thô, không phải logarit của chúng).

Chúng ta phải kết luận rằng các phân tích sâu hơn về giá trị trung bình không nên giả định tính logic.

Hãy cẩn thận! Một số thủ tục (như giới hạn dự đoán) sẽ nhạy cảm hơn với độ lệch so với các giới hạn độ tin cậy này đối với giá trị trung bình, vì vậy phân phối sai lệch của chúng có thể cần được tính đến. Tuy nhiên, dường như các quy trình logic bất thường sẽ hoạt động tốt với các dữ liệu này cho bất kỳ phân tích dự định nào.


Wow, câu trả lời này thổi tôi đi. Cảm ơn bạn rất nhiều! Làm thế nào bạn sử dụng abline()thay vì qqline()(mà tạo ra một dòng khác nhau) trong ví dụ đầu tiên?
Vegard

trial()Hàm của bạn không sử dụng đối số của nó.
Vegard


1
Công việc tốt! Để bootstrapping, sửa đổi trial: trial <- function(y) { x <- sample(y, length(y), TRUE); cbind(ci(x), ci.u(x)) }. Sau đó, chỉ phát hành một lệnh sim <- sapply(1:5000, function(i) trial(x)). Bạn có thể muốn khám phá biểu đồ của sáu hàng simsau đó.
whuber

1
+1, tôi đặc biệt thích điểm tinh tế rằng các khoảng dự đoán sẽ nhạy cảm hơn với hình dạng phân phối hơn là khoảng tin cậy cho giá trị trung bình.
gung - Phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.