Các mẫu dư tương thích có còn tồn tại ngay cả trong các mô hình có cấu trúc tương quan phù hợp không, và làm thế nào để chọn các mô hình tốt nhất?


17

Bối cảnh

Câu hỏi này sử dụng R, nhưng là về các vấn đề thống kê chung.

Tôi đang phân tích ảnh hưởng của các yếu tố tử vong (% tỷ lệ tử vong do bệnh và ký sinh trùng) đến tốc độ tăng trưởng dân số của bướm đêm theo thời gian, nơi quần thể ấu trùng được lấy mẫu từ 12 địa điểm mỗi năm một lần trong 8 năm. Dữ liệu tỷ lệ tăng dân số cho thấy một xu hướng chu kỳ rõ ràng nhưng không đều theo thời gian.

Phần dư từ một mô hình tuyến tính tổng quát đơn giản (tốc độ tăng trưởng ~% bệnh +% ký sinh trùng + năm) cho thấy xu hướng chu kỳ rõ ràng tương tự nhưng không đều theo thời gian. Do đó, các mô hình bình phương tối thiểu có cùng dạng cũng được gắn vào dữ liệu với các cấu trúc tương quan phù hợp để đối phó với tự tương quan thời gian, ví dụ đối xứng hỗn hợp, thứ tự quá trình tự phát 1 và cấu trúc tương quan trung bình di chuyển tự động.

Tất cả các mô hình đều chứa các hiệu ứng cố định giống nhau, được so sánh bằng AIC và được gắn bởi REML (để cho phép so sánh các cấu trúc tương quan khác nhau của AIC). Tôi đang sử dụng gói R nlme và chức năng gls.

Câu hỏi 1

Phần dư của các mô hình GLS vẫn hiển thị các mẫu chu kỳ gần như giống hệt nhau khi được vẽ theo thời gian. Các mẫu như vậy sẽ luôn duy trì, ngay cả trong các mô hình giải thích chính xác cấu trúc tự tương quan?

Tôi đã mô phỏng một số dữ liệu đơn giản nhưng tương tự trong R bên dưới câu hỏi thứ hai của tôi, điều này cho thấy vấn đề dựa trên sự hiểu biết hiện tại của tôi về các phương pháp cần thiết để đánh giá các mẫu tự tương quan tạm thời trong phần dư của mô hình , mà bây giờ tôi biết là sai (xem câu trả lời).

Câu hỏi 2

Tôi đã trang bị các mô hình GLS với tất cả các cấu trúc tương quan hợp lý có thể với dữ liệu của mình, nhưng không có cấu trúc nào thực sự phù hợp hơn GLM mà không có cấu trúc tương quan: chỉ một mô hình GLS tốt hơn một chút (điểm AIC = 1,8 thấp hơn), trong khi tất cả các phần còn lại có giá trị AIC cao hơn. Tuy nhiên, đây chỉ là trường hợp khi tất cả các mô hình được gắn bởi REML, không phải ML trong đó các mô hình GLS rõ ràng tốt hơn nhiều, nhưng tôi hiểu từ sách thống kê, bạn chỉ phải sử dụng REML để so sánh các mô hình với các cấu trúc tương quan khác nhau và các hiệu ứng cố định giống nhau vì các lý do Tôi sẽ không chi tiết ở đây.

Do tính chất tự tương quan rõ ràng theo thời gian của dữ liệu, nếu không có mô hình nào tốt hơn vừa phải so với GLM đơn giản thì cách thích hợp nhất để quyết định sử dụng mô hình nào để suy luận, giả sử tôi đang sử dụng một phương pháp thích hợp (cuối cùng tôi muốn sử dụng AIC để so sánh các kết hợp biến khác nhau)?

Q1 'mô phỏng' khám phá các mẫu dư trong các mô hình có và không có cấu trúc tương quan phù hợp

Tạo biến trả lời mô phỏng với hiệu ứng theo chu kỳ là 'thời gian' và hiệu ứng tuyến tính dương là 'x':

time <- 1:50
x <- sample(rep(1:25,each=2),50)
y <- rnorm(50,5,5) + (5 + 15*sin(2*pi*time/25)) + (x/1)

y sẽ hiển thị xu hướng theo chu kỳ theo 'thời gian' với biến thể ngẫu nhiên:

plot(time,y)

Và mối quan hệ tuyến tính tích cực với 'x' với biến thể ngẫu nhiên:

plot(x,y)

Tạo mô hình phụ gia tuyến tính đơn giản của "y ~ time + x":

require(nlme)
m1 <- gls(y ~ time + x, method="REML")

Mô hình hiển thị các mẫu chu kỳ rõ ràng trong phần dư khi được vẽ theo 'thời gian', như mong đợi:

plot(time, m1$residuals)

Và những gì nên là tốt, rõ ràng thiếu bất kỳ mô hình hoặc xu hướng nào trong phần dư khi được vẽ trên 'x':

plot(x, m1$residuals)

Một mô hình đơn giản của "y ~ time + x" bao gồm cấu trúc tương quan tự động của đơn hàng 1 sẽ phù hợp với dữ liệu tốt hơn nhiều so với mô hình trước đó vì cấu trúc tự tương quan, khi được đánh giá bằng AIC:

m2 <- gls(y ~ time + x, correlation = corAR1(form=~time), method="REML")
AIC(m1,m2)

Tuy nhiên, mô hình vẫn sẽ hiển thị phần dư tương tự 'gần đúng' theo thời gian:

plot(time, m2$residuals)

Cảm ơn bạn rất nhiều cho bất kỳ lời khuyên.


Mô hình của bạn không nắm bắt chính xác sự phụ thuộc thời gian gây ra bởi các chu kỳ (ngay cả đối với trường hợp mô phỏng của bạn), do đó, việc mô tả ' tài khoản chính xác cho ' là không phù hợp. Lý do bạn vẫn có mô hình trong phần dư của bạn có lẽ là vì điều đó.
Glen_b -Reinstate Monica

Tôi nghĩ rằng bạn có nó ngược. Ước tính nên có được bằng cách sử dụng khả năng tối đa đầy đủ hơn là REML. Chọn phương thức = "ML" là bắt buộc để thực hiện các thử nghiệm tỷ lệ khả năng và là cần thiết nếu bạn muốn sử dụng AIC để so sánh các mô hình với các yếu tố dự đoán khác nhau. REML cung cấp các ước tính tốt hơn về các thành phần phương sai và các lỗi tiêu chuẩn so với ML. Đã sử dụng phương thức = "ML" để so sánh các mô hình khác nhau, đôi khi khuyến nghị rằng mô hình cuối cùng được chỉnh sửa lại bằng phương thức = "REML" và các ước tính và lỗi tiêu chuẩn từ sự phù hợp của REML được sử dụng cho suy luận cuối cùng.
bác sĩ lâm sàng

Câu trả lời:


24

Q1

Bạn đang làm hai điều sai ở đây. Đầu tiên là một điều nói chung là xấu; không trong Delve chung thành các đối tượng mô hình và rip ra các thành phần. Tìm hiểu để sử dụng các chức năng trích xuất, trong trường hợp này resid(). Trong trường hợp này, bạn đang nhận được một cái gì đó hữu ích nhưng nếu bạn có một loại đối tượng mô hình khác, chẳng hạn như GLM từ glm()đó, thì mod$residualssẽ chứa phần dư làm việc từ lần lặp IRLS cuối cùng và là thứ bạn thường không muốn!

Điều thứ hai bạn đang làm sai là một cái gì đó cũng đã bắt tôi ra. Phần dư bạn đã trích xuất (và cũng sẽ được trích xuất nếu bạn đã sử dụng resid()) là phần dư hoặc phản hồi. Về cơ bản đây là phần chênh lệch giữa giá trị được trang bị và các giá trị quan sát của phản ứng, có tính đến những ảnh hưởng về mặt cố định duy nhất . Các giá trị này sẽ chứa tự động tương quan dư tương tự như m1vì các hiệu ứng cố định (hoặc nếu bạn thích, bộ dự báo tuyến tính) giống nhau trong hai mô hình ( ~ time + x).

Để có phần dư bao gồm thuật ngữ tương quan bạn đã chỉ định, bạn cần phần dư được chuẩn hóa . Bạn có được những điều này bằng cách làm:

resid(m1, type = "normalized")

Điều này (và các loại dư khác có sẵn) được mô tả trong ?residuals.gls:

type: an optional character string specifying the type of residuals
      to be used. If ‘"response"’, the "raw" residuals (observed -
      fitted) are used; else, if ‘"pearson"’, the standardized
      residuals (raw residuals divided by the corresponding
      standard errors) are used; else, if ‘"normalized"’, the
      normalized residuals (standardized residuals pre-multiplied
      by the inverse square-root factor of the estimated error
      correlation matrix) are used. Partial matching of arguments
      is used, so only the first character needs to be provided.
      Defaults to ‘"response"’.

Bằng phương pháp so sánh, đây là ACF của phần thô (phản hồi) và phần dư được chuẩn hóa

layout(matrix(1:2))
acf(resid(m2))
acf(resid(m2, type = "normalized"))
layout(1)

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

Để xem lý do tại sao điều này xảy ra và khi phần dư thô không bao gồm thuật ngữ tương quan, hãy xem xét mô hình bạn đã trang bị

y= =β0+β1tTôime+β2x+ε

Ở đâu

ε~N(0,σ2Λ)

Λρ^ρ|d|d

Phần dư thô, mặc định được trả về resid(m2)chỉ từ phần dự đoán tuyến tính, do đó từ bit này

β0+β1tTôime+β2x

Λ

Quý 2

Có vẻ như bạn đang cố gắng phù hợp với xu hướng phi tuyến tính với chức năng tuyến tính timevà tính đến việc không phù hợp với "xu hướng" với AR (1) (hoặc các cấu trúc khác). Nếu dữ liệu của bạn là bất cứ thứ gì giống như dữ liệu mẫu mà bạn cung cấp ở đây, tôi sẽ điều chỉnh GAM để cho phép chức năng trơn tru của các hiệp phương sai. Mô hình này sẽ là

y= =β0+f1(tTôime)+f2(x)+ε

Λ= =Tôi

library("mgcv")
m3 <- gam(y ~ s(time) + s(x), select = TRUE, method = "REML")

trong đó select = TRUEáp dụng một số co rút thêm để cho phép mô hình loại bỏ một trong các điều khoản khỏi mô hình.

Mô hình này cho

> summary(m3)

Family: gaussian 
Link function: identity 

Formula:
y ~ s(time) + s(x)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  23.1532     0.7104   32.59   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
          edf Ref.df      F  p-value    
s(time) 8.041      9 26.364  < 2e-16 ***
s(x)    1.922      9  9.749 1.09e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

và có các điều khoản trơn tru trông như thế này:

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

Phần dư từ mô hình này cũng được xử lý tốt hơn (phần dư thô)

acf(resid(m3))

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

Bây giờ là một lời cảnh báo; có một vấn đề với chuỗi thời gian làm mịn ở chỗ các phương thức quyết định mức độ trơn tru hoặc lung lay của các hàm giả định rằng dữ liệu là độc lập. Điều này có nghĩa trong điều kiện thực tế là hàm trơn tru của thời gian ( s(time)) có thể phù hợp với thông tin thực sự là lỗi tự động tương quan ngẫu nhiên và không chỉ là xu hướng cơ bản. Do đó, bạn nên rất cẩn thận khi lắp máy làm mịn với dữ liệu chuỗi thời gian.

Có một số cách làm tròn điều này, nhưng một cách là chuyển sang điều chỉnh mô hình thông qua gamm()đó gọi lme()nội bộ và cho phép bạn sử dụng correlationđối số bạn đã sử dụng cho gls()mô hình. Đây là một ví dụ

mm1 <- gamm(y ~ s(time, k = 6, fx = TRUE) + s(x), select = TRUE,
            method = "REML")
mm2 <- gamm(y ~ s(time, k = 6, fx = TRUE) + s(x), select = TRUE,
            method = "REML", correlation = corAR1(form = ~ time))

s(time)s(time)ρ= =0s(time)ρ>>.5

Mô hình có AR (1) không thể hiện sự cải thiện đáng kể so với mô hình mà không có AR (1):

> anova(mm1$lme, mm2$lme)
        Model df      AIC      BIC    logLik   Test   L.Ratio p-value
mm1$lme     1  9 301.5986 317.4494 -141.7993                         
mm2$lme     2 10 303.4168 321.0288 -141.7084 1 vs 2 0.1817652  0.6699

Nếu chúng ta xem ước tính cho $ \ hat {\ rho}}, chúng ta sẽ thấy

> intervals(mm2$lme)
....

 Correlation structure:
         lower      est.     upper
Phi -0.2696671 0.0756494 0.4037265
attr(,"label")
[1] "Correlation structure:"

Phiρρ


Cảm ơn bạn rất nhiều về Gavin vì câu trả lời chi tiết, sâu sắc tuyệt vời đó. Có vẻ như dữ liệu của tôi tạo ra kết quả tương tự về mặt chất lượng với GAM, trong đó có rất ít sự cải thiện hoặc trở nên tồi tệ hơn (được đánh giá qua AIC / AICc) khi so sánh GAM với và không có cấu trúc tương quan tiêu chuẩn. Bạn / bất cứ ai biết: nếu có rất rõ ràng, nếu các xu hướng không đều, theo chu kỳ trong dữ liệu / phần dư, thì nó có thích hợp nhất để gắn với cấu trúc tương quan phù hợp nhất chứ không phải là một mô hình không? Cảm ơn một lần nữa.
Sao Mộc

1
Đến trong siêu muộn, nhưng muốn cảm ơn Gavin vì phản ứng tuyệt vời này. Giúp tôi ra một tấn.
hươu cao 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.