Giải thích bài kiểm tra nhúng của Hartigans


18

Tôi muốn tìm một cách để định lượng cường độ lưỡng tính của một số phân phối mà tôi có được theo kinh nghiệm. Từ những gì tôi đọc được, vẫn còn một số tranh luận về cách định lượng lưỡng tính. Tôi đã chọn sử dụng thử nghiệm nhúng của Hartigans dường như là thử nghiệm duy nhất có sẵn trên R (giấy gốc: http://www.stat.washington.edu/wxs/Stat593-s03/Literature/hartigan85a.pdf ). Thử nghiệm nhúng của Hartigans được định nghĩa là: "Thử nghiệm nhúng đo đa phương thức trong một mẫu bằng sự khác biệt tối đa, trên tất cả các điểm mẫu, giữa chức năng phân phối theo kinh nghiệm và chức năng phân phối không theo phương thức nhằm giảm thiểu sự khác biệt tối đa đó" .

Tôi muốn hiểu hoàn toàn cách tôi nên diễn giải số liệu thống kê này trước khi sử dụng nó. Tôi đã hy vọng rằng thử nghiệm nhúng sẽ tăng nếu phân phối là đa phương thức (vì nó được định nghĩa là "sự khác biệt tối đa so với phân phối không theo phương thức"). Nhưng : bạn có thể đọc trong trang wikipedia về phân phối đa phương thức rằng "Các giá trị nhỏ hơn 0,05 cho thấy giá trị lưỡng tính đáng kể và các giá trị lớn hơn 0,05 nhưng nhỏ hơn 0,10 cho thấy lưỡng tính có ý nghĩa cận biên". . Tuyên bố như vậy xuất phát từ bài báo này (Hình 2). Theo bài báo này, chỉ số kiểm tra nhúng gần bằng 0 khi phân phối là lưỡng kim. Nó làm tôi bối rối.

Để diễn giải chính xác bài kiểm tra nhúng của Hartigans, tôi đã xây dựng một số bản phân phối (mã gốc là từ đây ) và tôi đã tăng giá trị của exp (mu2) (được gọi là 'Cường độ lưỡng tính' từ bây giờ - Chỉnh sửa: Tôi nên gọi nó là 'Cường độ của bimodality ' ) để có được bimodality. Trong biểu đồ đầu tiên, bạn có thể thấy một số ví dụ về phân phối. Sau đó, tôi ước tính chỉ số diptest (biểu đồ thứ hai) và giá trị p (biểu đồ thứ ba) được liên kết (gói diptest ) với các phân phối mô phỏng khác nhau. Mã R được sử dụng là ở cuối bài viết của tôi.

Những gì tôi chỉ ra ở đây là chỉ số kiểm tra nhúng cao và Pvalue thấp khi độ phân giải là lưỡng kim. Điều này trái ngược với những gì bạn có thể đọc trên internet.

Tôi không phải là chuyên gia về thống kê, do đó tôi hầu như không hiểu bài báo của Hartigans. Tôi muốn nhận được một số ý kiến ​​về cách đúng đắn chúng ta nên diễn giải bài kiểm tra nhúng của Hartigans. Tôi có sai ở đâu không?

Cảm ơn tất cả. Trân trọng,

TA

Ví dụ về phân phối mô phỏng: Ví dụ về phân phối mô phỏng

Chỉ số kiểm tra nhúng của Hartigan liên quan: nhập mô tả hình ảnh ở đây

Kiểm tra nhúng của Hartigan p.value liên quan: nhập mô tả hình ảnh ở đây

library(diptest)
library(ggplot2)


# CONSTANT PARAMETERS
sig1 <- log(3)
sig2 <- log(3)
cpct <- 0.5
N=1000

#CREATING BIMOD DISTRIBUTION
bimodalDistFunc <- function (n,cpct, mu1, mu2, sig1, sig2) {
  y0 <- rlnorm(n,mean=mu1, sd = sig1)
  y1 <- rlnorm(n,mean=mu2, sd = sig2)

  flag <- rbinom(n,size=1,prob=cpct)
  y <- y0*(1 - flag) + y1*flag 
}

#DIP TEST
DIP_TEST <- function(bimodalData) {
  TEST <- dip.test(bimodalData)
  return(TEST$statistic[[1]])   # return(TEST$p.value[[1]])    to get the p value
}
DIP_TEST(bimodalData)


# SIMULATION
exp_mu1 = 1
max_exp_mu2 = 100
intervStep = 100
repPerInt = 10

# single distibutions
expMu2Value <- c()
bimodalData <- c()
mu1 <- log(exp_mu1)   
mu2 <- log(exp_mu1)
bimodalData <- c(bimodalData,log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))
expMu2Value <- c(expMu2Value,rep(exp_mu1,length(log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))))

mu1 <- log(exp_mu1)   
mu2 <- log(max_exp_mu2)
bimodalData <- c(bimodalData,log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))
expMu2Value <- c(expMu2Value,rep(max_exp_mu2,length(log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))))

mu1 <- log(exp_mu1)   
mu2 <- log(trunc((max_exp_mu2-exp_mu1)/2+1))
bimodalData <- c(bimodalData,log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))
expMu2Value <- c(expMu2Value,rep(trunc((max_exp_mu2-exp_mu1)/2+1),length(log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2)))))

tableExamples <- data.frame(expMu2Value,bimodalData)
tableExamples$expMu2Value <- as.factor(tableExamples$expMu2Value)
ExamplePlot <- ggplot(tableExamples)+
  geom_histogram(aes(bimodalData),color='white')+
  ylab("Count")+
  xlab("")+
  facet_wrap(~expMu2Value)+
  ggtitle("Intensity of bimodularity")

# calculation of the dip test index
exp_mu2Int = seq(from=exp_mu1,to=max_exp_mu2,length.out=intervStep)
expmu2Vec = c()
dipStat = c()
testDone = c()
for(exp_mu2 in exp_mu2Int){
  mu1 <- log(exp_mu1)   
  mu2 <- log(exp_mu2)
  for(rep in 1:repPerInt){
    bimodalData <- log(bimodalDistFunc(n=N,cpct,mu1,mu2, sig1,sig2))
    diptestone = DIP_TEST(bimodalData)
    expmu2Vec = c(expmu2Vec,exp_mu2)
    dipStat = c(dipStat,diptestone)
    testDone = c(testDone,"diptest")
  }
}
table = data.frame(expmu2Vec,dipStat,testDone)

IndexPlot <- ggplot(table)+
  geom_point(aes(expmu2Vec,dipStat,color=testDone))+
  ylab("Index")+
  xlab("Intensity of Bimodularity")+
  scale_color_discrete(name="Test")

ExamplePlot
IndexPlot

3
Câu hỏi rất kỹ lưỡng làm việc về một chủ đề phức tạp theo bất kỳ tiêu chuẩn thống kê nào. Các câu hỏi đầu tiên rõ ràng, trước khi người ta thậm chí hiểu được là "Tại sao bạn cần bài kiểm tra này? Nó có ý định truyền đạt thông tin gì?" Có thể cung cấp một số bối cảnh bổ sung cho các động lực đã dẫn bạn đến vấn đề hạ lưu nhiều hơn nữa về giải thích kết quả từ "thử nghiệm nhúng?" Nói cách khác, ngoài việc lập trình R tiện lợi, đó là con đường logic nào đã đưa bạn đến "thử nghiệm nhúng" ngay từ đầu?
Mike Hunter

Cảm ơn bạn đã trả lời, Mike. Tôi đang làm việc trên một mô hình lý thuyết trong sinh học tiến hóa và tôi đang tiến hành phân tích độ nhạy. Cụ thể, tôi quan sát thấy việc thay đổi một số tham số sẽ thay đổi phân phối của một biến đầu ra từ unimodal sang bimodal (điều này thực sự rất thú vị). Đó là lý do tại sao tôi đang tìm kiếm một số liệu thống kê đơn giản để mô tả tính đa hình của phân phối. Nó sẽ cho phép tôi tập trung phân tích độ nhạy vào đa phương thức.
TA

Tôi phát hiện ra rằng phép thử nhúng có thể dễ dàng tính được trong R và nó có thể định lượng độ lệch khỏi phân phối không theo phương thức. Tất nhiên, tôi sẽ thực sự quan tâm bởi bất kỳ số liệu thống kê nào khác mô tả tính đa phương thức của một bản phân phối.
TA

Hmmm ... phù hợp với một số đa thức khiêm tốn có thể tương đương với cách tiếp cận của "người nghèo" để đối phó với độ cong mà bạn đang quan sát và có thể dễ dàng triển khai và diễn giải hơn so với thử nghiệm của Hartigan. Bạn không nói liệu các vấn đề của bạn bao gồm xử lý bất kỳ chức năng tăng trưởng nào. Ví dụ, trong sự phát triển của con người, có một số "va chạm" nổi tiếng trong quỹ đạo tăng trưởng tại các điểm khác biệt của vòng đời. Các mô hình phi tham số đã được tìm thấy để phù hợp hơn và gần đúng các phi tuyến này hơn các mô hình tham số.
Mike Hunter

1
Về các vấn đề thống kê: Như đã nói, thử nghiệm nhúng lấy sự không đồng nhất làm tài liệu tham khảo. Tôi không nghĩ khởi hành từ nó có thể được hiểu theo số lượng chế độ chỉ từ giá trị P. Tôi đã thấy nó vô cùng hữu ích hơn để diễn giải số lượng chế độ với sự kết hợp giữa ước tính mật độ và giải thích nội dung.
Nick Cox

Câu trả lời:


6

Ông Freeman (tác giả của bài báo mà tôi đã nói với bạn) nói với tôi rằng ông thực sự chỉ nhìn vào Pvalue của bài kiểm tra nhúng. Sự nhầm lẫn này xuất phát từ câu của anh ta:
"Các giá trị HDS nằm trong khoảng từ 0 đến 1 với các giá trị nhỏ hơn 0,05 biểu thị giá trị lưỡng tính đáng kể và các giá trị lớn hơn 0,05 nhưng nhỏ hơn .10 cho thấy lưỡng tính có ý nghĩa cận biên" . Giá trị HDS tương ứng với Pvalue, và không phải là thống kê kiểm tra nhúng. Nó không rõ ràng trong bài báo.

Phân tích của tôi là tốt: số liệu thống kê kiểm tra nhúng tăng khi phân phối sai lệch so với phân phối không chính thống.

Kiểm tra lưỡng tính và kiểm tra của Silverman cũng có thể được tính toán dễ dàng trong R và thực hiện công việc tốt.


1
Vui lòng đăng ký và hợp nhất tài khoản của bạn. Bạn có thể tìm thấy thông tin về cách thực hiện việc này trong phần Tài khoản của tôi trong trung tâm trợ giúp của chúng tôi .
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.