Tại sao giá trị p thay đổi về ý nghĩa khi thay đổi thứ tự hiệp phương sai trong mô hình aov?


10

Tôi có một bộ dữ liệu của 482 quan sát.

data=Populationfull

Tôi sẽ làm một phân tích liên kết kiểu gen cho 3 SNP. Tôi đang cố gắng xây dựng một mô hình cho phân tích của tôi và tôi sử dụng aov (y ~ x, data = ...). Đối với một đặc điểm tôi có một số hiệu ứng cố định và đồng biến mà tôi đã đưa vào mô hình, như vậy:

Starts <- aov(Starts~Sex+DMRT3+Birthyear+Country+Earnings+Voltsec+Autosec, data=Populationfull)

summary(Starts)
                Df Sum Sq Mean Sq F value   Pr(>F)    
Sex              3  17.90    5.97  42.844  < 2e-16 ***
DMRT3            2   1.14    0.57   4.110    0.017 *  
Birthyear        9   5.59    0.62   4.461 1.26e-05 ***
Country          1  11.28   11.28  81.005  < 2e-16 ***
Earnings         1 109.01  109.01 782.838  < 2e-16 ***
Voltsec          1  12.27   12.27  88.086  < 2e-16 ***
Autosec          1   8.97    8.97  64.443 8.27e-15 ***
Residuals      463  64.48    0.14                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Tôi phát hiện ra rằng nếu tôi thay đổi thứ tự của các biến trong mô hình tôi có các giá trị p khác nhau, vui lòng xem bên dưới.

Starts2 <- aov(Starts~Voltsec+Autosec+Sex+DMRT3+Birthyear+Country+Earnings, data=Populationfull)

summary(Starts2)

                Df Sum Sq Mean Sq F value   Pr(>F)    
Voltsec   1   2.18    2.18  15.627 8.92e-05 ***
Autosec   1 100.60  100.60 722.443  < 2e-16 ***
Sex              3  10.43    3.48  24.962 5.50e-15 ***
DMRT3            2   0.82    0.41   2.957  0.05294 .  
Birthyear        9   3.25    0.36   2.591  0.00638 ** 
Country          1   2.25    2.25  16.183 6.72e-05 ***
Earnings      1  46.64   46.64 334.903  < 2e-16 ***
Residuals      463  64.48    0.14                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Tại sao tôi nhận được các giá trị p khác nhau tùy theo thứ tự các biến / yếu tố / hiệp phương sai / fixedeffects (?) Được mã hóa theo thứ tự nào? Có cách nào để "sửa" cho nó không? Có thể là tôi sử dụng mô hình sai? Tôi vẫn còn khá mới ở R vì vậy nếu bạn có thể giúp tôi với điều này, xin hãy giữ nó thật đơn giản để tôi có thể hiểu câu trả lời hehe ... Cảm ơn bạn, hy vọng ai đó có thể giúp tôi hiểu điều này!


3
Vui lòng cung cấp một số dữ liệu mẫu Populationfullđể làm cho vấn đề của bạn có thể tái tạo . Điều này không xảy ra với ví dụ từ aov()trang trợ giúp. summary(aov(yield ~ block + N + P + K, npk)); summary(aov(yield ~ K + P + block + N , npk))
MrFlick

Các giá trị p đang thay đổi vì toàn bộ trường giá trị đã thay đổi. đầu tiên bạn chạy Earnings 1 109.01 109.01 782.838 < 2e-16 ***chạy thứ hai của bạn Earnings 1 46.64 46.64 334.903 < 2e-16 ***. Kết quả của bạn không giống nhau. Bắt đầu bằng cách kiểm tra để thấy rằng bạn chưa thực hiện nhiều hơn việc sắp xếp lại các biến.

1
CSONG: trong mô hình thứ hai, bạn sử dụng Earn, không phải Thu nhập ... nếu có hai biến có tên khác nhau thì đó có thể là một vấn đề nếu đó không phải là một lỗi đánh máy trong việc sao chép vào không gian câu hỏi SO.

Có, các giá trị thay đổi nhưng tại sao? Tôi đã sử dụng các cột chính xác giống nhau từ cùng một khung dữ liệu trong cả hai mô hình (Thu nhập so với Kiếm tiền trong mô hình thứ hai chỉ là tôi đã viết sai, tôi đã sửa nó ngay bây giờ).
Rbeginner

1
Điều này đang xảy ra bởi vì bạn có một thiết kế không cân bằng. Bạn sẽ tìm thấy rất nhiều trợ giúp về điều này nếu bạn tìm kiếm diễn đàn này hoặc chỉ Google "ANOVA không cân bằng trong R". Tôi khuyên bạn nên xem xét cargói - nó thực hiện ANOVA Loại II và Loại III, không phụ thuộc vào thứ tự của các biến, trong khi aovLoại I ANOVA.
Loris chậm

Câu trả lời:


15

Vấn đề xuất phát từ cách aov()kiểm tra ý nghĩa mặc định của nó. Nó sử dụng phân tích ANOVA "Loại I", trong đó kiểm tra được thực hiện theo thứ tự các biến được chỉ định trong mô hình của bạn. Vì vậy, trong ví dụ đầu tiên, nó xác định mức độ sai lệch được giải thích bằng cách nào sexvà kiểm tra tầm quan trọng của nó, sau đó phần nào của phương sai còn lại được giải thích DMRT3và kiểm tra tầm quan trọng của nó theo phương sai còn lại , v.v. Trong ví dụ thứ hai, DMRT3chỉ được đánh giá sau Voltsec, Autosecsex, theo thứ tự đó, do đó, có ít phương sai còn lại DMRT3để giải thích.

Nếu hai biến dự đoán tương quan thì biến đầu tiên được nhập vào mô hình sẽ nhận được "tín dụng" đầy đủ, để lại ít phương sai được "giải thích" bởi biến thứ hai, do đó có thể xuất hiện ít "có ý nghĩa thống kê" hơn so với biến đầu tiên ngay cả khi nó là không, chức năng. Câu hỏi này và câu trả lời của nó giải thích các loại phân tích ANOVA khác nhau.

Một cách để khắc phục điều này là trích xuất bản thân khỏi sự khắt khe của ANOVA cổ điển và sử dụng mô hình tuyến tính đơn giản, với lm()R, chứ không phải aov(). Điều này phân tích hiệu quả tất cả các yếu tố dự đoán song song, "sửa lỗi" cho tất cả các yếu tố dự đoán cùng một lúc. Trong trường hợp đó, hai yếu tố dự đoán tương quan có thể sẽ có sai số chuẩn lớn về hệ số hồi quy ước tính của chúng và hệ số của chúng có thể khác nhau giữa các mẫu khác nhau trong dân số, nhưng ít nhất là thứ tự bạn nhập biến vào đặc tả mô hình sẽ không thành vấn đề.

Nếu biến trả lời của bạn là một số loại biến đếm, như tên của nó Startscho thấy, thì có lẽ bạn không nên sử dụng ANOVA vì phần dư không có khả năng được phân phối bình thường, như cách giải thích giá trị p yêu cầu. Các biến đếm được xử lý tốt hơn với các mô hình tuyến tính tổng quát (ví dụ: glm()trong R), có thể được coi là tổng quát hóa lm()cho các loại cấu trúc lỗi còn lại khác.

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.