Làm thế nào tôi có thể giải thích cho hiệp phương sai không gian trong mô hình tuyến tính?


10

Lý lịch

Tôi có dữ liệu từ một nghiên cứu thực địa, trong đó có bốn cấp độ điều trị và sáu lần lặp lại trong mỗi hai khối. (4x6x2 = 48 quan sát)

Các khối cách nhau khoảng 1 dặm, và trong các khối, có một lưới gồm các ô 42, 2m x 4m và một lối đi rộng 1m; nghiên cứu của tôi chỉ sử dụng 24 lô trong mỗi khối.

Tôi muốn đánh giá hiệp phương sai không gian.

Dưới đây là một phân tích ví dụ sử dụng dữ liệu từ một khối duy nhất, mà không tính đến hiệp phương sai không gian. Trong tập dữ liệu, plotlà id của biểu đồ, xlà vị trí x và vị trí yy của mỗi ô với ô 1 tập trung vào 0, 0. levellà mức xử lý và responselà biến trả lời.

layout <- structure(list(plot = c(1L, 3L, 5L, 7L, 8L, 11L, 12L, 15L, 16L, 
17L, 18L, 22L, 23L, 26L, 28L, 30L, 31L, 32L, 35L, 36L, 37L, 39L, 
40L, 42L), level = c(0L, 10L, 1L, 4L, 10L, 0L, 4L, 10L, 0L, 4L, 
0L, 1L, 0L, 10L, 1L, 10L, 4L, 4L, 1L, 1L, 1L, 0L, 10L, 4L), response = c(5.93, 
5.16, 5.42, 5.11, 5.46, 5.44, 5.78, 5.44, 5.15, 5.16, 5.17, 5.82, 
5.75, 4.48, 5.25, 5.49, 4.74, 4.09, 5.93, 5.91, 5.15, 4.5, 4.82, 
5.84), x = c(0, 0, 0, 3, 3, 3, 3, 6, 6, 6, 6, 9, 9, 12, 12, 12, 
15, 15, 15, 15, 18, 18, 18, 18), y = c(0, 10, 20, 0, 5, 20, 25, 
10, 15, 20, 25, 15, 20, 0, 15, 25, 0, 5, 20, 25, 0, 10, 20, 
25)), .Names = c("plot", "level", "response", "x", "y"), row.names = c(NA, 
-24L), class = "data.frame")

model <- lm(response ~ level, data = layout)      
summary(model)

Câu hỏi

  1. Làm thế nào tôi có thể tính toán một ma trận hiệp phương sai và đưa nó vào hồi quy của mình?
  2. Các khối rất khác nhau, và có sự tương tác mạnh mẽ * tương tác khối. Có thích hợp để phân tích chúng một cách riêng biệt?

1
Các ô 37 và 39 đều ở x = 18, y = 10. Typo?
Aaron rời Stack Overflow

@Aaron cảm ơn bạn đã chỉ ra điều đó. y = [0,10]. Đã sửa.
David LeBauer

Câu trả lời:


10

1) Bạn có thể mô hình tương quan không gian với nlmethư viện; có một số mô hình có thể bạn có thể chọn. Xem trang 260-266 của Pinheiro / Bates.

Bước đầu tiên tốt là tạo ra một variogram để xem mối tương quan phụ thuộc vào khoảng cách.

library(nlme)
m0 <- gls(response ~ level, data = layout)  
plot(Variogram(m0, form=~x+y))

Ở đây, bán mẫu mẫu tăng theo khoảng cách chỉ ra rằng các quan sát thực sự có mối tương quan về mặt không gian.

Một lựa chọn cho cấu trúc tương quan là cấu trúc hình cầu; có thể được mô hình hóa theo cách sau.

m1 <- update(m0, corr=corSpher(c(15, 0.25), form=~x+y, nugget=TRUE))

Mô hình này dường như phù hợp hơn so với mô hình không có cấu trúc tương quan, mặc dù hoàn toàn có thể nó cũng có thể được cải thiện với một trong các cấu trúc tương quan có thể khác.

> anova(m0, m1)
   Model df     AIC      BIC    logLik   Test  L.Ratio p-value
m0     1  3 46.5297 49.80283 -20.26485                        
m1     2  5 43.3244 48.77961 -16.66220 1 vs 2 7.205301  0.0273

2) Bạn cũng có thể thử bao gồm xytrực tiếp trong mô hình; điều này có thể phù hợp nếu mô hình tương quan phụ thuộc vào nhiều thứ chứ không chỉ là khoảng cách. Trong trường hợp của bạn (nhìn vào hình ảnh của Sesqu) dường như đối với khối này, bạn có thể có một đường chéo.

Ở đây tôi đang cập nhật mô hình ban đầu thay vì m0 vì tôi chỉ thay đổi các hiệu ứng cố định, vì vậy cả hai mô hình phải phù hợp với khả năng tối đa.

> model2 <- update(model, .~.+x*y)
> anova(model, model2)
Analysis of Variance Table

Model 1: response ~ level
Model 2: response ~ level + x + y + x:y
  Res.Df    RSS Df Sum of Sq      F   Pr(>F)   
1     22 5.3809                                
2     19 2.7268  3    2.6541 6.1646 0.004168 **

Để so sánh cả ba mô hình, bạn cần phải phù hợp với tất cả chúng glsvà phương pháp khả năng tối đa thay vì phương pháp mặc định của REML.

> m0b <- update(m0, method="ML")
> m1b <- update(m1, method="ML")
> m2b <- update(m0b, .~x*y)
> anova(m0b, m1b, m2b, test=FALSE)
    Model df      AIC      BIC     logLik
m0b     1  3 38.22422 41.75838 -16.112112
m1b     2  5 35.88922 41.77949 -12.944610
m2b     3  5 29.09821 34.98847  -9.549103

Hãy nhớ rằng đặc biệt với kiến ​​thức của bạn về nghiên cứu, bạn có thể đưa ra một mô hình tốt hơn bất kỳ mô hình nào trong số này. Đó là, mô hình m2bkhông nhất thiết phải được coi là tốt nhất.

Lưu ý: Những tính toán này được thực hiện sau khi thay đổi giá trị x của ô 37 thành 0.


cảm ơn câu trả lời hữu ích của bạn; không rõ tại sao trong phần 2 bạn cập nhật modelthay vì m0, vd. m2 <- update(m0, .~.+x*y)để cả ba mô hình có thể được so sánh bằng cách sử dụng anova(m0,m1,m2); sau khi làm điều này, m2là một người lỏng lẻo lớn (AIC = 64) có vẻ như là phần của bạn
David LeBauer

ps dòng cuối cùng phải là 'sau khi thay đổi giá trị y của ô 37 thành 5'; giá trị thực tế là 0, nhưng kết quả là tương đương.
David LeBauer

Nếu bạn so sánh m0, m1m2như bạn đề nghị, bạn sẽ nhận được cảnh báo: Fitted objects with different fixed effects. REML comparisons are not meaningful. Để so sánh các hiệu ứng cố định, bạn phải sử dụng khả năng tối đa thường xuyên thay vì REML. Xem chỉnh sửa.
Aaron rời Stack Overflow

cảm ơn vì tất cả sự giúp đỡ của bạn. Tôi không chắc tại sao, nhưng tôi gặp lỗi khi tôi cố gắng phù hợp với các cấu trúc tương quan khác, ví dụ như sử dụng corExp như trong ví dụ Pinheiro và Bates. Tôi đã mở một câu hỏi trên SO về lỗi này, nhưng đầu vào của bạn sẽ được đánh giá cao.
David LeBauer

4

1) Biến giải thích không gian của bạn là gì? Có vẻ như mặt phẳng x * y sẽ là một mô hình kém cho hiệu ứng không gian.

âm mưu điều trị và đáp ứng

i=c(1,3,5,7,8,11,14,15,16,17,18,22,23,25,28,30,31,32,35,36,39,39,41,42)
l=rep(NA,42)[i];l[i]=level
r=rep(NA,42)[i];r[i]=response
image(t(matrix(-l,6)));title("treatment")
image(t(matrix(-r,6)));title("response")

2) Xem cách các khối cách nhau 1 dặm và bạn sẽ thấy các hiệu ứng chỉ trong 30 mét, tôi sẽ nói rằng nó hoàn toàn phù hợp để phân tích chúng một cách riêng biệt.


Hình dung là hữu ích, nhưng nếu bạn so sánh phía dưới bên phải với phía trên bên phải của các hình, thì đối với tôi, vị trí đó có tác động mạnh hơn mức độ. (ps Tôi nghĩ rằng l [i] = phản hồi nên là r [i] = ...)
David LeBauer

Đúng. Hiệu ứng vị trí rất đáng chú ý và vì vậy bạn thực sự muốn có một mô hình tốt cho điều đó trước khi bạn bắt đầu ước tính hiệu quả điều trị. Thật không may, có rất nhiều dữ liệu bị thiếu nên rất khó để nói nó nên là gì - điều tốt nhất tôi có thể đưa ra sẽ là hiệu ứng mô hình hóa như một trung bình của phản ứng hàng xóm + thành phần ngẫu nhiên, và sau đó thử xử lý điều đó . Điều đó rất đáng ngờ, vì vậy bất kỳ kiến ​​thức tên miền bổ sung nào cũng sẽ có giá trị. Sửa lỗi đánh máy.
Sesqu

@sesqu ... không có dữ liệu bị thiếu, dữ liệu từ tất cả 24 lô được định vị ngẫu nhiên là có.
David LeBauer

Thiếu dữ liệu theo nghĩa là không phải mọi cặp x, y đều có dữ liệu.
Aaron rời Stack Overflow
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.