Tìm dữ liệu và độ tin cậy của elip elipses (vùng?) Cho trung vị bivariate?


7

Tôi đang tự hỏi về các cách tính toán dữ liệu và độ tin cậy elip xung quanh một trung vị bivariate. Ví dụ: tôi có thể dễ dàng tính toán hình elip dữ liệu hoặc hình elip độ tin cậy cho giá trị trung bình hai biến của dữ liệu sau (ở đây chỉ hiển thị hình elip dữ liệu)

library("car")
set.seed(1)
df <- data.frame(x = rnorm(200, mean = 4, sd = 1.5),
                 y = rnorm(200, mean = 1.4, sd = 2.5))
plot(df)
with(df, dataEllipse(x, y, level = 0.68, add = TRUE))

nhập mô tả hình ảnh ở đây

Nhưng tôi đang vật lộn với cách tôi làm điều này cho một trung vị bivariate? Trong trường hợp đơn biến, tôi chỉ có thể khởi động lại mẫu để tạo khoảng thời gian cần thiết, nhưng tôi không chắc làm thế nào để dịch phần này sang trường hợp bivariate?

Như được chỉ ra bởi @Andy W, trung vị không được xác định duy nhất. Trong trường hợp này, chúng tôi đã sử dụng trung vị không gian , bằng cách tìm một điểm giảm thiểu định mức L1 về khoảng cách giữa các quan sát tại điểm đó. Một tối ưu hóa đã được sử dụng để tính toán trung vị không gian từ các điểm dữ liệu được quan sát.

Ngoài ra, các cặp dữ liệu x, y trong trường hợp sử dụng thực tế là hai hàm riêng của phân tích tọa độ chính của ma trận không giống nhau, do đó x và y phải trực giao, nếu điều đó cung cấp một con đường tấn công cụ thể.

Trong trường hợp sử dụng thực tế, chúng tôi muốn tính toán hình elip dữ liệu / độ tin cậy cho các nhóm điểm trong không gian Euclide. Ví dụ:

nhập mô tả hình ảnh ở đây

Phân tích này là một dạng tương tự đa biến của phép thử Levene về tính đồng nhất của phương sai giữa các nhóm. Chúng tôi sử dụng trung bình không gian hoặc trung tâm nhóm tiêu chuẩn làm thước đo của xu hướng trung tâm đa biến và muốn thêm tương đương với hình elip dữ liệu trong hình trên cho trường hợp trung bình không gian.


4
Trung vị ở các chiều cao hơn không được xác định duy nhất. Mặc dù vậy, bạn có thể quan tâm đến các ô vuông được khái quát hóa cho các kích thước cao hơn, ví dụ: Bagplot: A Bivariate Boxplot (Rousseeuw et al., 1999).
Andy W

+1 Cảm ơn @AndyW - Tôi hoàn toàn quên mất bagplot (đoán đó là những gì bạn nhận được khi không dạy bài giảng EDA của tôi trong vài năm nay - hoàn toàn làm tôi mất trí!) Tôi nên chỉ ra loại trung gian tôi có trong tâm trí - - Tôi sẽ cập nhật bài đăng, nhưng chúng tôi đã tính toán trung vị không gian, điểm tối thiểu hóa định mức L1 về khoảng cách của các điểm dữ liệu đến điểm đó.
Gavin Simpson

1
Nếu bạn biết rằng các hướng và là trực giao, tại sao không ước tính trung vị của chúng một cách độc lập? Nói cách khác, có gì đặc biệt về trung bình cho ứng dụng của bạn không? xyL1
whuber

2
@whuber Ah, tôi có thể đã nhầm ở đó. Tôi sẽ thêm một con số mới là ví dụ thực tế của trường hợp sử dụng. Một ma trận không giống nhau được tính toán từ dữ liệu gốc được nhúng vào không gian Euclide bằng PCoA. Nhưng điều tôi bỏ qua khi đề cập đến là chúng tôi tính toán các trung vị không gian trong không gian Euclide này cho các nhóm điểm dữ liệu. Do đó, trong khi x và y là trực giao trên tất cả các nhóm, trong một nhóm có thể có mối tương quan. Xem hình cập nhật trong một phút cho một minh họa. Xin lỗi vì điều này; Tôi đã không đánh giá cao tầm quan trọng của các khía cạnh nhất định của trường hợp sử dụng thực tế khi tôi đăng Q.
Gavin Simpson

2
Tôi đoán một cách tiếp cận có thể dựa trên bootstrapping: lấy phân phối bootstrap của các ước tính trung bình hình học của bạn và sau đó đánh dấu một khu vực chứa phần ước tính. Nếu bạn vui lòng cho rằng các ước tính tuân theo phân phối bình thường, thì thật dễ dàng: phù hợp với Gaussian 2d và vẽ một hình elip tương ứng. Nếu không, bạn có thể lấy ước tính mật độ hạt nhân của phân phối 2d và sau đó tìm vùng bao gồm mật độ xác suất. 1α1α
amip

Câu trả lời:


6

Đây là một câu hỏi hay.

Tôi sẽ làm theo gợi ý của @ amip và khởi động các trung vị không gian, sử dụng depth::med()với method="Spatial". Tuy nhiên, có một sự phức tạp nhỏ: medkhông thích nó khi có các điểm dữ liệu trùng lặp, vì vậy chúng tôi không thể thực hiện một bootstrap đơn giản. Thay vào đó, tôi sẽ vẽ một mẫu bootstrap và sau đó xáo trộn từng điểm một lượng nhỏ - nhỏ hơn khoảng cách tối thiểu trong mỗi kích thước và trong mẫu dữ liệu gốc - trước khi tính toán trung vị không gian.xy

Cuối cùng, tôi sẽ tính toán hình elip nhỏ nhất bao gồm một tỷ lệ xác định (95%) của các trung tuyến và cốt truyện đã được khởi động .

library(depth)      # for med()
library(MASS)           # for cov.rob()
library(cluster)    # for ellipsoidhull()

# create data
set.seed(1)
df <- data.frame(x = rnorm(200, mean = 4, sd = 1.5),
                 y = rnorm(200, mean = 1.4, sd = 2.5))

# find minimum distances in each dimension for later jittering
foo <- outer(X=df$x,Y=df$x,FUN=function(xx,yy)abs(xx-yy))
delta.x <- min(foo[upper.tri(foo)])/2
foo <- outer(X=df$y,Y=df$y,FUN=function(xx,yy)abs(xx-yy))
delta.y <- min(foo[upper.tri(foo)])/2

# bootstrap spatial medians, using jittering
n.boot <- 1000
pb <- winProgressBar(max=n.boot)
boot.med <- matrix(NA,nrow=n.boot,ncol=2)
for ( ii in 1:n.boot ) {
    setWinProgressBar(pb,ii,paste(ii,"of",n.boot))
    index <- sample(1:nrow(df),nrow(df),replace=TRUE)
    bar <- df[index,] + 
      data.frame(x=runif(nrow(df),-delta.x,delta.x),
                 y=runif(nrow(df),-delta.y,delta.y))
    boot.med[ii,] <- med(bar,method="Spatial")$median
}
close(pb)

# specify confidence level
pp <- 0.95

# find smallest ellipse containing the specified proportion of bootstrapped medians
fit <- cov.rob(boot.med, quantile.used = ceiling(pp*n.boot), method = "mve")
best_ellipse <- ellipsoidhull( boot.med[fit$best,] )

plot(df)
points(boot.med,pch=19,col="grey",cex=0.5)
points(df)
lines(predict(best_ellipse), col="red")
legend("bottomright",bg="white",pch=c(21,19,NA),
    col=c("black","grey","red"),pt.bg=c("white",NA,NA),lwd=c(0,0,1),
    legend=c("Observations","Bootstrapped medians","Confidence ellipse"))

hình elip tự tin

Cuối cùng, lưu ý rằng trung vị không gian bivariate phân phối không có triệu chứng (Brown, 1983, JRSS, Series B ) , vì vậy chúng tôi cũng có thể phân phối với "bootstrap jitter" ở trên và tính trực tiếp hình elip, tin rằng là "không có triệu chứng ". Tôi có thể chỉnh sửa bài đăng này để bao gồm hình elip độ tin cậy tham số này nếu tôi tìm thấy thời gian trong những ngày tiếp theo.n=200

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.