Làm thế nào để kiểm tra xem phương sai được giải thích bởi yếu tố đầu tiên của PCA có khác nhau giữa các điều kiện đo lặp lại không?


8

Bối cảnh:

Tôi có một nghiên cứu trong đó sáu biến số được đo trong mỗi hai phép đo lặp lại điều kiện thí nghiệm (n = 200). Hãy gọi các điều kiện và và các biến và . Về mặt lý thuyết, tôi hy vọng rằng trong điều kiện phương sai của các biến sẽ được giải thích bằng yếu tố đầu tiên của phân tích thành phần chính (PCA).ABA1,A2,...,A6B1,B2,...,B6B

Các giá trị tiêu biểu sẽ là:

  • Yếu tố đầu tiên của PCA trên chiếm 30% phương saiA1,...,A6
  • Yếu tố đầu tiên của PCA trên chiếm 40% phương sai.B1,...,B6

Câu hỏi:

  • Làm thế nào tôi có thể kiểm tra xem sự khác biệt này có ý nghĩa thống kê?
  • Làm thế nào điều này có thể được thực hiện trong R?

Câu trả lời:


1

Chỉ là một ý tưởng (có thể ngớ ngẩn). Lưu biến điểm thành phần chính thứ 1 cho điều kiện A (PC1A) và biến điểm thành phần chính thứ 1 cho điều kiện B (PC1B). Điểm số phải là "thô", nghĩa là phương sai hoặc tổng bình phương bằng với giá trị riêng của chúng. Sau đó sử dụng thử nghiệm của Pitman để so sánh các phương sai.


1

Tôi đã nhận được câu trả lời của bạn phải không? - Bạn muốn kiểm tra xem có sự khác biệt có ý nghĩa thống kê giữa hai điều kiện không?

Perhabs vegan :: adonis () là cái gì cho bạn? Don Tiếtt biết nếu đó là những gì bạn đang tìm kiếm.

Nó hoạt động trên ma trận khoảng cách và so sánh khoảng cách trong một điều kiện lớn hơn giữa các điều kiện. Ví dụ, trong một NMDS, bạn sẽ thấy sự tách biệt rõ ràng của hai điều kiện.

Dưới đây là một số ví dụ Mã:

df <- data.frame(cond = rep(c("A", "B"), each = 100), 
 v1 <- jitter(rep(c(20, 100), each = 100)),
 v2 <- jitter(rep(c(0, 80), each = 100)),
 v3 <- jitter(rep(c(40, 5), each = 100)),
 v4 <- jitter(rep(c(42, 47), each = 100)),
 v5 <- jitter(rep(c(78, 100), each = 100)),
 v6 <- jitter(rep(c(10, 100), each = 100)))

# PCA
require(vegan)
pca <- rda(df[ ,-1], scale = TRUE)
ssc <- scores(pca, display = "sites")
ordiplot(pca, type = "n")
points(ssc[df$cond == "A", ], col = "red", pch = 16)
points(ssc[df$cond == "B", ], col = "blue", pch = 16)

# NMDS
nmds <- metaMDS(df[ ,-1], distance = "euclidian")
nmsc <- scores(nmds, display = "sites")
ordiplot(nmds, type = "n")
points(nmsc[df$cond == "A", ], col = "red", pch = 16)
points(nmsc[df$cond == "B", ], col = "blue", pch = 16)

# use adonis to test if there is a difference between the conditions
adonis(df[ ,-1] ~ df[ ,1], method = "euclidean")
## There is a statistically significant difference between the two conditions

Điều này khá khó hiểu. Bạn có thể xây dựng một chút?
whuber

@whuber: chỉnh sửa một chút. Bài viết từ Anderson được đề cập trong các tài liệu tham khảo của adonis là khá dễ đọc.
EDi

1
Tôi đánh giá cao nỗ lực của bạn. Tôi vẫn còn bối rối vì một số cụm từ có vẻ không nhất quán ("không" có vẻ đặc biệt không đúng chỗ) và phần lớn câu trả lời không có mối liên hệ rõ ràng với câu hỏi: "ma trận khoảng cách" liên quan đến ma trận hiệp phương sai như thế nào của PCA? "NMDS" có đề cập đến MDS không số liệu không và nếu có, điều đó có liên quan gì đến PCA? Có vẻ như bạn đang thực hiện một cách tiếp cận hoàn toàn khác. Điều này tốt, nhưng nó sẽ giúp giải thích bạn đến từ đâu và tại sao nó lại áp dụng.
whuber

1

Kiểm tra hoán vị

Để kiểm tra giả thuyết null trực tiếp, hãy sử dụng phép thử hoán vị.

Để PC đầu tiên trong điều kiện giải thích phương sai và PC đầu tiên trong điều kiện giải thích phương sai. Giả thuyết của bạn là , vì vậy chúng ta có thể định nghĩa là thống kê quan tâm và giả thuyết là . Giả thuyết khống để bác bỏ là .Aa<100%Bb<100%b>ac=bac>0c=0

Để thực hiện các thử nghiệm hoán vị, lấy của bạn mẫu từ cả hai điều kiện, và chia ngẫu nhiên chúng vào điều kiện và . Vì sự phân tách là ngẫu nhiên, nên không có sự khác biệt về phương sai được giải thích sau đó. Với mỗi hoán vị, bạn có thể tính , lặp lại quá trình này nhiều lần (giả sử ) lần và thu được phân phối của theo giả thuyết null của . So sánh giá trị thực nghiệm của bạn với với phân phối này sẽ mang lại giá trị .N=200+200ABc10000cctrue=0cp

Bootstrapping

Để có được khoảng tin cậy trên , hãy sử dụng bootstrapping.c

Trong cách tiếp cận bootstrapping, bạn sẽ chọn một cách ngẫu nhiên mẫu với thay thế từ các mẫu hiện có trong và một từ . Tính và lặp lại nhiều lần (một lần nữa, giả sử ) lần. Bạn sẽ có được phân phối khởi động của các giá trị và các khoảng phần trăm của nó sẽ tương ứng với các khoảng tin cậy của giá trị thực nghiệm . Vì vậy, bạn có thể ước tính giá trị bằng cách xem phần nào của phân phối này nằm trên .N=200AN=200Bc10000ccp0

Thử nghiệm hoán vị là một cách trực tiếp hơn (và có lẽ ít dựa vào bất kỳ giả định nào) để kiểm tra giả thuyết khống, nhưng bootstrap có thêm lợi ích là mang lại khoảng tin cậy cho .c


Thử nghiệm hoán vị có vẻ như là một cách hợp lý để kiểm tra giả thuyết null. Mặc định của tôi có lẽ sẽ là thử một cách tiếp cận bootstrapping thay vì nơi bạn lấy mẫu thay thế. Tôi nghĩ rằng lợi ích của cách tiếp cận bootstrapping là bạn cũng sẽ có được khoảng tin cậy về kích thước của sự khác biệt giữa hai phương sai. Ý thức của tôi là bạn sẽ không có được điều đó với phương pháp hoán vị.
Jeromy Anglim 6/2/2015

@Jeromy, bạn hoàn toàn đúng về khoảng tin cậy về sự khác biệt. Trong thực tế, tôi đã có phần bootstrapping được viết trong câu trả lời của mình mọi lúc, cho đến khi tôi chỉnh sửa nó ngày hôm qua khi xem lại chủ đề này. Như bạn đã đề cập bây giờ, tôi đã trả lại bootstrapping ngay bây giờ (và cũng định dạng lại câu trả lời một chút). Hãy xem.
amip

0

Đây chỉ là một phác thảo của ý tưởng. Tỷ lệ phương sai được định nghĩa là

λ1λ1+...+λ6,

trong đó là giá trị riêng của ma trận hiệp phương sai. Bây giờ nếu chúng ta sử dụng thay vì các giá trị riêng của ma trận tương quan thì , vì tổng giá trị riêng của ma trận bằng với dấu vết của ma trận và đối với ma trận tương quan thì dấu vết là tổng của ma trận .λiλ1+...+λ6=6

Vì vậy, nếu chúng ta sử dụng các ma trận tương quan, chúng ta cần kiểm tra các giả thuyết về sự khác biệt của hai giá trị riêng tối đa của các ma trận tương quan mẫu. Trong tài liệu chắc chắn có thể tìm thấy sự phân bố tiệm cận của giá trị bản địa tối đa của ma trận tương quan. Vì vậy, vấn đề sau đó giảm xuống một số loại thử nghiệm t ghép đôi hoặc không ghép đôi.


1
Tôi nghi ngờ (dựa trên không có nhiều thông tin ;-) rằng phân phối tiệm cận sẽ đạt được khá chậm đối với nhiều phân phối dữ liệu cơ bản. Quan trọng hơn, mối tương quan đơn giản không phải là hiệp phương sai; PCA trên cả hai có thể khác nhau hoàn toàn, đặc biệt là khi phương sai của các biến khác nhau.
whuber
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.