Ý nghĩa thống kê của sự khác biệt giữa các khoảng cách


12

Tôi có hơn 3000 vectơ trên lưới hai chiều, với sự phân bố rời rạc đồng đều. Một số cặp vectơ đáp ứng một điều kiện nhất định. Lưu ý: điều kiện chỉ áp dụng cho các cặp vectơ, không áp dụng cho các vectơ riêng lẻ. Tôi có một danh sách khoảng 1500 cặp như vậy, hãy gọi nó là nhóm 1. Nhóm 2 chứa tất cả các cặp vectơ khác. Tôi muốn tìm hiểu xem khoảng cách giữa các vectơ trong một cặp trong nhóm 1 có nhỏ hơn đáng kể khoảng cách trung bình giữa hai vectơ không. Làm thế nào tôi có thể làm điều đó?

Kiểm tra thống kê : Định lý giới hạn trung tâm có thể áp dụng cho trường hợp của tôi không? Đó là, tôi có thể lấy phương tiện của các mẫu khoảng cách và sử dụng phép thử t của Sinh viên để so sánh các phương tiện của mẫu đáp ứng điều kiện với phương tiện của các mẫu không đáp ứng điều kiện không? Nếu không, kiểm tra thống kê nào sẽ thích hợp ở đây?

Cỡ mẫu và số lượng mẫu : Tôi hiểu rằng có hai biến ở đây, với mỗi hai nhóm tôi cần lấy n mẫu có kích thước m và lấy trung bình của mỗi mẫu. Có cách nào để chọn nm không? Họ có nên lớn nhất có thể? Hay họ nên càng ít càng tốt, miễn là họ cho thấy ý nghĩa thống kê? Họ có nên giống nhau cho mỗi trong hai nhóm không? Hay chúng nên lớn hơn cho nhóm 2, chứa nhiều cặp vectơ hơn?


1
Thông thường mọi người không may mắn khi có ranh giới xác định cho các điểm dữ liệu của họ - hoặc nếu không thì các ranh giới rất phức tạp. Điều này, cùng với sự tương quan giữa các khoảng cách (được tạo bởi bất đẳng thức tam giác), ngăn cản việc phát triển một biểu thức phân tích tốt đẹp để phân phối mẫu của khoảng cách trung bình. Do đó, họ thường ước tính phân phối lấy mẫu của khoảng cách trung bình bằng cách lấy mẫu lại từ dữ liệu.
whuber

@whuber Tôi không chắc là tôi có hiểu đúng về bạn không, bạn có gợi ý rằng tôi lấy n mẫu từ mỗi trong hai nhóm và sử dụng thử nghiệm t để so sánh phương tiện của các mẫu đó không? Tôi đã chỉnh sửa câu hỏi của mình, tôi hy vọng nó rõ ràng hơn bây giờ.
michau

Câu trả lời:


14

Câu hỏi về "đáng kể" luôn luôn khác nhau, luôn đặt ra một mô hình thống kê cho dữ liệu. Câu trả lời này đề xuất một trong những mô hình chung nhất phù hợp với thông tin tối thiểu được cung cấp trong câu hỏi. Nói tóm lại, nó sẽ hoạt động trong một loạt các trường hợp, nhưng nó có thể không phải luôn luôn là cách mạnh mẽ nhất để phát hiện sự khác biệt.

Ba khía cạnh của dữ liệu thực sự quan trọng: hình dạng của không gian bị chiếm bởi các điểm; sự phân bố các điểm trong không gian đó; và biểu đồ được hình thành bởi các cặp điểm có "điều kiện" - mà tôi sẽ gọi là nhóm "điều trị". Theo "biểu đồ", ý tôi là mô hình các điểm và mối liên kết được ngụ ý bởi các cặp điểm trong nhóm điều trị. Chẳng hạn, mười cặp điểm ("cạnh") của biểu đồ có thể liên quan đến tối đa 20 điểm khác biệt hoặc ít nhất là năm điểm. Trong trường hợp trước, không có hai cạnh nào có chung một điểm, trong khi ở trường hợp sau, cạnh này bao gồm tất cả các cặp có thể có giữa năm điểm.

n= =3000σ(vTôi,vj)(vσ(Tôi),vσ(j))3000!1021024hoán vị. Nếu vậy, khoảng cách trung bình của nó phải tương đương với khoảng cách trung bình xuất hiện trong các hoán vị đó. Chúng tôi có thể dễ dàng ước tính phân phối các khoảng cách trung bình ngẫu nhiên đó bằng cách lấy mẫu vài nghìn của tất cả các hoán vị đó.

(Đáng chú ý là cách tiếp cận này sẽ hoạt động, chỉ với những sửa đổi nhỏ, với bất kỳ khoảng cách hoặc bất kỳ số lượng nào liên quan đến mọi cặp điểm có thể. Nó cũng sẽ hoạt động cho mọi tóm tắt về khoảng cách, không chỉ trung bình.


n= =10028100100-13928

10028

Hình 1

10000

Các phân phối lấy mẫu khác nhau: mặc dù trung bình khoảng cách trung bình là như nhau, sự khác biệt về khoảng cách trung bình sẽ lớn hơn trong trường hợp thứ hai do sự phụ thuộc lẫn nhau giữa các cạnh đồ họa. Đây là một lý do không có phiên bản đơn giản nào của Định lý giới hạn trung tâm có thể được sử dụng: tính toán độ lệch chuẩn của phân phối này là khó khăn.

n=30001500

Hình 2

56

Nói chung, tỷ lệ khoảng cách trung bình từ cả mô phỏng và nhóm điều trị bằng hoặc lớn hơn khoảng cách trung bình trong nhóm điều trị có thể được lấy làm giá trị p của xét nghiệm hoán vị không đối xứng này .


Đây là Rmã được sử dụng để tạo ra các minh họa.

n.vectors <- 3000
n.condition <- 1500
d <- 2              # Dimension of the space
n.sim <- 1e4        # Number of iterations
set.seed(17)
par(mfrow=c(2, 2))
#
# Construct a dataset like the actual one.
#
# `m` indexes the pairs of vectors with a "condition."
# `x` contains the coordinates of all vectors.
x <- matrix(runif(d*n.vectors), nrow=d)
x <- x[, order(x[1, ]+x[2, ])]
#
# Create two kinds of conditions and analyze each.
#
for (independent in c(TRUE, FALSE)) {
  if (independent) {
    i <- sample.int(n.vectors, n.condition)
    j <- sample.int(n.vectors-1, n.condition)
    j <- (i + j - 1) %% n.condition + 1
    m <- cbind(i,j)
  } else {
    u <- floor(sqrt(2*n.condition))
    v <- ceiling(2*n.condition/u)
    m <- as.matrix(expand.grid(1:u, 1:v))
    m <- m[m[,1] < m[,2], ]
  }
  #
  # Plot the configuration.
  #
  plot(t(x), pch=19, cex=0.5, col="Gray", asp=1, bty="n",
       main="The Data", xlab="X", ylab="Y",
       sub=paste(length(unique(as.vector(m))), "points"))
  invisible(apply(m, 1, function(i) lines(t(x[, i]), col="#80000040")))
  points(t(x[, unique(as.vector(m))]), pch=16, col="Red", cex=0.6)
  #
  # Precompute all distances between all points.
  #
  distances <- sapply(1:n.vectors, function(i) sqrt(colSums((x-x[,i])^2)))
  #
  # Compute the mean distance in any set of pairs.
  #
  mean.distance <- function(m, distances)
    mean(distances[m])
  #
  # Sample from the points using the same *pattern* in the "condition."
  # `m` is a two-column array pairing indexes between 1 and `n` inclusive.
  sample.graph <- function(m, n) {
    n.permuted <- sample.int(n, n)
    cbind(n.permuted[m[,1]], n.permuted[m[,2]])
  }
  #
  # Simulate the sampling distribution of mean distances for randomly chosen
  # subsets of a specified size.
  #
  system.time(
    sim <- replicate(n.sim, mean.distance(sample.graph(m, n.vectors), distances))
  stat <- mean.distance(m, distances)
  p.value <- 2 * min(mean(c(sim, stat) <= stat), mean(c(sim, stat) >= stat))

  hist(sim, freq=FALSE, 
       sub=paste("p-value:", signif(p.value, ceiling(log10(length(sim))/2)+1)),
       main="Histogram of mean distances", xlab="Distance")
  abline(v = stat, lwd=2, lty=3, col="Red")
}

Cảm ơn rất nhiều! Đó là những gì tôi đang tìm kiếm. Nhưng bạn có phiền khi làm rõ giá trị p nên được tính như thế nào không? Tôi không hiểu công thức "tỷ lệ khoảng cách trung bình từ cả mô phỏng và nhóm điều trị bằng hoặc lớn hơn khoảng cách trung bình trong nhóm điều trị". Bạn đang nói về tỷ lệ của hai khoảng cách trung bình và một trong số đó là "khoảng cách trung bình từ [...] nhóm điều trị bằng hoặc lớn hơn khoảng cách trung bình trong nhóm điều trị". Tôi bối rối, nó có vẻ như một tautology. Bạn có thể viết một công thức hoặc mã R để làm cho nó rõ ràng hơn?
michau

Trong mọi trường hợp, hóa ra trường hợp của tôi tương tự như ví dụ thứ hai của bạn, khoảng cách trung bình của hoán vị là khoảng 22 với độ lệch chuẩn khoảng 0,3 và giá trị trung bình của nhóm điều trị là 12. Vì vậy, nó có vẻ như là một dấu hiệu rõ ràng cho thấy sự khác biệt có ý nghĩa thống kê. Điều duy nhất tôi đang vật lộn với bây giờ là ước tính giá trị p. Trên thực tế, ngay cả với một mẫu hoán vị khá lớn (10000), tất cả các phương tiện không có ngoại lệ đều nằm trong một khoảng khá hẹp, giả sử [21, 23]. Đây có phải là thứ tôi có thể sử dụng để ước tính giá trị p không?
michau

1
OK, tôi đã đọc một chút về các bài kiểm tra hoán vị Monte Carlo bây giờ. Theo hiểu biết của tôi: nếu phương tiện của tất cả 10000 hoán vị mà tôi đã thử cao hơn nhóm điều trị, tôi có thể kết luận rằng p <0,0001. Có đơn giản như vậy không?
michau

1
Có, nó là đơn giản! Tôi đã thêm mã ở cuối để tính toán và hiển thị giá trị p hai đuôi (có thể nói là mã thích hợp cho tình huống của bạn). Đối với giá trị p một đầu, sử dụng một trong hai mean(c(sim, stat) <= stat)hoặc mean(c(sim, stat) >= stat)khi thích hợp.
whuber

Tuyệt quá! Hiện tại tình huống với thử nghiệm một đầu là hoàn toàn rõ ràng, nhưng tôi vẫn không hiểu thử nghiệm hai đuôi, đặc biệt là phép nhân với 2. Nếu 10000 hoán vị cho tôi nghĩa là trong phạm vi [21, 23], thì không điều đó có nghĩa là cả 12 và 32 đều nằm ngoài khoảng tin cậy 99,99%, tương ứng với p <0,0001? Tôi không nên đơn giản đếm khoảng cách trung bình ở khoảng cách statgiữa phân phối, theo một trong hai hướng? Một cái gì đó như p.value <- mean(abs(c(sim, stat)-mean(sim)) >= abs(stat-mean(sim))).
michau
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.