Làm cách nào để chạy ANOVA hai chiều trên dữ liệu không có tính quy tắc cũng không bằng phương sai trong R?


16

Hiện tại tôi đang làm luận án thạc sĩ và lên kế hoạch chạy các số liệu thống kê với SigmaPlot. Tuy nhiên, sau khi dành một chút thời gian với dữ liệu của mình, tôi đã đi đến kết luận rằng SigmaPlot có thể không phù hợp với vấn đề của tôi (tôi có thể bị nhầm lẫn) vì vậy tôi đã bắt đầu những nỗ lực đầu tiên của mình trong R, điều đó không làm cho nó dễ dàng hơn.

Kế hoạch là chạy TWO-WAY-ANOVA đơn giản trên dữ liệu của tôi, kết quả từ 3 loại protein khác nhau và 8 phương pháp điều trị khác nhau, vì vậy hai yếu tố của tôi là protein và phương pháp điều trị. Tôi đã kiểm tra tính bình thường bằng cả hai

> shapiro.test(time)

> ks.test(time, "norm", mean=mean(time), sd=sqrt(var(time)))

Trong cả hai trường hợp (có thể không đáng ngạc nhiên) tôi đã kết thúc với một phân phối không bình thường.

Điều đó để lại cho tôi những câu hỏi đầu tiên về việc sử dụng thử nghiệm nào cho sự bằng nhau của phương sai. Tôi đến với

> chisq.test(time)

và kết quả là, tôi cũng không có sự bình đẳng về dữ liệu.

Tôi đã thử các phép biến đổi dữ liệu khác nhau (log, centre, tiêu chuẩn hóa), tất cả đều không giải quyết được vấn đề của tôi với phương sai.

Bây giờ tôi đang thua lỗ, làm thế nào để tiến hành ANOVA để kiểm tra protein nào và phương pháp điều trị nào khác biệt đáng kể với nhau. Tôi đã tìm thấy vài thứ về Kruskal-Walis-Test, nhưng chỉ cho một yếu tố (?). Tôi cũng tìm thấy những thứ về xếp hạng hoặc randamization, nhưng chưa biết cách triển khai các kỹ thuật đó trong R.

Có ai có một đề nghị những gì tôi nên làm?

Chỉnh sửa: cảm ơn bạn vì câu trả lời của bạn, tôi hơi choáng ngợp khi đọc (có vẻ như ngày càng nhiều hơn thay vì ít hơn), nhưng tất nhiên tôi sẽ tiếp tục.

Dưới đây là một ví dụ về dữ liệu của tôi, như được đề xuất (tôi rất xin lỗi về định dạng, tôi không thể tìm ra giải pháp hoặc địa điểm khác để đặt tệp. Tôi vẫn chưa quen với tất cả những điều này.):

protein treatment   time  
A   con 2329.0  
A   HY  1072.0  
A   CL1 4435.0  
A   CL2 2971.0  
A   CL1-HY sim  823.5  
A   CL2-HY sim  491.5  
A   CL1+HY mix  2510.5  
A   CL2+HY mix  2484.5  
A   con 2454.0  
A   HY  1180.5  
A   CL1 3249.7  
A   CL2 2106.7  
A   CL1-HY sim  993.0  
A   CL2-HY sim  817.5  
A   CL1+HY mix  1981.0  
A   CL2+HY mix  2687.5  
B   con 1482.0  
B   HY  2084.7  
B   CL1 1498.0  
B   CL2 1258.5  
B   CL1-HY sim  1795.7  
B   CL2-HY sim  1804.5  
B   CL1+HY mix  1633.0  
B   CL2+HY mix  1416.3  
B   con 1339.0  
B   HY  2119.0  
B   CL1 1093.3  
B   CL2 1026.5  
B   CL1-HY sim  2315.5  
B   CL2-HY sim  2048.5  
B   CL1+HY mix  1465.0  
B   CL2+HY mix  2334.5  
C   con 1614.8  
C   HY  1525.5  
C   CL1 426.3  
C   CL2 1192.0  
C   CL1-HY sim  1546.0  
C   CL2-HY sim  874.5  
C   CL1+HY mix  1386.0  
C   CL2+HY mix  364.5  
C   con 1907.5  
C   HY  1152.5  
C   CL1 639.7  
C   CL2 1306.5  
C   CL1-HY sim  1515.0  
C   CL2-HY sim  1251.0  
C   CL1+HY mix  1350.5  
C   CL2+HY mix  1230.5

2
Có vẻ như bạn đang đi đúng hướng với R, nhưng tôi cảm thấy những khó khăn của bạn có thể không liên quan đến R chút nào. Có lẽ bạn cần tham khảo ý kiến ​​của một nhà thống kê trước để hiểu rõ vấn đề, chỉ sau đó bạn mới giải quyết vấn đề này một cách thiết thực. Câu hỏi hiện tại của bạn khá phức tạp và có thể ngăn cản mọi người tham gia vào nó. Về phần kỹ thuật, đây là một vài trang web: ats.ucla.edu/stat/R/seminars/Repeat_Measure/ Kẻtính cách
project.org/R/r.anova.html

4
Một thay thế rất tốt để kiểm tra thứ hạng là sử dụng hoán vị ANOVA ( uvm.edu/~dhowell/StatPages/More_Stuff/Permuting%20Anova/iêu ). Với cách tiếp cận không đồng nhất đó không thành vấn đề. Lý do chính khiến mọi người sử dụng các bài kiểm tra xếp hạng là vì chúng dễ tính toán hơn nhiều. Điều đó không còn quan trọng nữa. Chúng tôi có R và máy tính hiệu quả ...
Mikko

1
Trả lời là gì? Lưu ý rằng chúng tôi thực sự không quan tâm nếu phản hồi là phân phối bình thường - chúng tôi muốn kiểm tra xem phần dư từ phân tích có xấp xỉ bình thường với các phương sai tương tự hay không. Nhưng nếu thực sự có hiệu quả điều trị thì chúng tôi sẽ không mong đợi rằng phản ứng sẽ được phân phối bình thường.
Dason

1
Tôi sẽ lưu ý rằng tôi vừa lấy dữ liệu bạn đã đăng và chạy hai chiều anova và thực hiện kiểm tra wapks wapks trên phần dư và điều này mang lại giá trị p là 0,5022 không quá đáng lo ngại.
Dason

1
Tất nhiên @Sabine thường không phải là mối quan tâm lớn đối với ANOVA, nhưng các mẫu của bạn phải xuất phát từ cùng một quần thể có nghĩa là sự bình đẳng của phương sai là quan trọng nhất, tất nhiên sau khi ngẫu nhiên hóa. Bạn nên làm một cái gì đó, nếu phương sai của bạn không bằng nhau (thử ?bartlett.test)
Mikko

Câu trả lời:


12

Đây có thể là một nhận xét nhiều hơn là một câu trả lời, nhưng nó sẽ không phù hợp như một nhận xét. Chúng tôi có thể giúp bạn ở đây, nhưng việc này có thể mất vài lần lặp; chúng tôi cần thêm thông tin

Đầu tiên, biến phản ứng của bạn là gì?

Thứ hai, lưu ý rằng phân phối biên của phản hồi của bạn không phải là bình thường, thay vào đó là phân phối có điều kiện trên mô hình (nghĩa là phần dư) nên - không rõ ràng rằng bạn đã kiểm tra phần dư của mình. Hơn nữa, tính quy tắc là giả định ít quan trọng nhất của mô hình tuyến tính (ví dụ: ANOVA); phần dư có thể không cần phải hoàn toàn bình thường. Các thử nghiệm về tính quy tắc thường không có giá trị (xem ở đây để thảo luận về CV), các lô tốt hơn nhiều. Tôi sẽ thử một âm mưu qq của phần dư của bạn. Trong Rnày được thực hiện với qqnorm(), hoặc thử qqPlot()trongcargói. Cũng đáng để xem xét cách thức mà phần dư là không bình thường: độ lệch có hại hơn so với kurtosis dư thừa, đặc biệt là nếu các xiên xen kẽ giữa các nhóm.

Nếu thực sự có một vấn đề đáng lo ngại, một sự chuyển đổi là một chiến lược tốt. Lấy nhật ký dữ liệu thô của bạn là một tùy chọn, nhưng không phải là duy nhất. Lưu ý rằng định tâm và tiêu chuẩn hóa không thực sự biến đổi theo nghĩa này. Bạn muốn xem xét gia đình biến đổi sức mạnh của Box & Cox . Và hãy nhớ rằng, kết quả không phải là hoàn toàn bình thường, chỉ cần đủ tốt.

Tiếp theo, tôi không theo dõi việc bạn sử dụng bài kiểm tra chi bình phương cho tính đồng nhất của phương sai, mặc dù nó có thể hoàn toàn ổn. Tôi sẽ đề nghị bạn sử dụng thử nghiệm của Levene (sử dụng leveneTest()trong car). Tính không đồng nhất gây hại nhiều hơn tính không quy tắc, nhưng ANOVA khá mạnh nếu tính không đồng nhất là nhỏ. Một nguyên tắc chuẩn là ngón tay cái lớn nhất có thể lớn gấp bốn lần mà không gây ra vấn đề mạnh. Một chuyển đổi tốt cũng nên giải quyết sự không đồng nhất.

Nếu những chiến lược này là không đủ, tôi có thể sẽ khám phá hồi quy mạnh mẽ trước khi thử một cách tiếp cận không tham số.

Nếu bạn có thể chỉnh sửa câu hỏi của mình và nói thêm về dữ liệu của mình, tôi có thể cập nhật thông tin này để cung cấp thông tin cụ thể hơn.


Về điểm thứ 2 của tôi, gần đây tôi đã viết một câu trả lời ở đây có thể giúp làm cho vấn đề này rõ ràng hơn. Bạn có thể muốn đọc nó.
gung - Phục hồi Monica

8

( lưu ý: câu trả lời này đã được đăng trước khi câu hỏi được di chuyển và sáp nhập từ SO, vì vậy chi tiết đã được thêm vào câu hỏi không được đề cập ở đây. Nhiều người được giải quyết trong các bình luận và câu trả lời của @gung).

Có nhiều cách tiếp cận khác nhau, và câu hỏi này đã được đề cập ở những nơi khác trên trang web này. Dưới đây là danh sách một số cách tiếp cận, với các liên kết đến các câu hỏi khác trên trang web và một số tài liệu tham khảo.:

  1. Biến đổi năng lượng Box-Cox có thể bình thường hóa các phần dư ở quy mô phi tuyến tính
  2. ANOVA trên dữ liệu được xếp hạng là rất dễ dàng nhưng đã giảm sức mạnh và khó diễn giải. Xem Conover và Iman, (1981)
  3. Mô hình logistic tỷ lệ cược theo tỷ lệ
  4. Các thử nghiệm hoán vị ( Anderson và ter Braak 2003 ), được Anderson triển khai và mô tả và là adonischức năng trong gói R Vegan
  5. Bootstrapping
  6. Mô hình Bayes phân cấp ( Gelman 2005 )

+1, đây là một danh sách đẹp của một số tùy chọn có sẵn để khám phá.
gung - Phục hồi Monica

Dưới đây là các nhận xét ban đầu được trao đổi trên Stack Overflow, bằng cách nào đó bị mất trong quá trình di chuyển. Xem meta.stats.stackexchange.com/q/1157/930 .
chl

Bạn có biết nếu có một triển khai ý tưởng của Anderson và Braak? - Henrik ngày 16 tháng 5 lúc 15:15
chl

@Henrik có một triển khai trong FORTRAN Anderson 2005, có sẵn thông qua chức năng R adonistrong Vegangói R / David 16 tháng 5 lúc 16:20
chl

Cảm ơn. adonisdường như làm việc ngay cả với các dvs đơn biến. Tuy nhiên, tôi có cảm giác rằng nó sử dụng một cái gì đó giống như các hình vuông loại 1 khi tôi nhận được tin nhắn Terms added sequentially (first to last)bất cứ khi nào chạy nó. Bạn đã sử dụng nó hoặc có thể nói bất cứ điều gì về nó? - Henrik ngày 16 tháng 5 lúc 17:03
chl
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.