Mô hình tuyến tính: so sánh công suất dự đoán của hai phương pháp đo khác nhau


9

Tôi quan tâm đến việc dự đoán Yvà đang nghiên cứu hai kỹ thuật đo lường khác nhau X1X2. Chẳng hạn, tôi muốn dự đoán độ ngon của một quả chuối, bằng cách đo khoảng thời gian nó nằm trên bàn, hoặc bằng cách đo số lượng đốm nâu trên quả chuối.

Tôi muốn biết một trong những kỹ thuật đo lường là tốt hơn, tôi nên chọn chỉ thực hiện một.

Tôi có thể tạo một mô hình tuyến tính trong R:

m1 = lm(Y ~ X1)
m2 = lm(Y ~ X2)

Bây giờ hãy nói X1là một dự đoán vượt trội về độ ngon của chuối hơn X2. Khi tính toán của hai mô hình, của mô hình rõ ràng cao hơn mô hình . Trước khi viết một bài báo về cách thức phương pháp tốt hơn , tôi muốn có một số loại dấu hiệu cho thấy sự khác biệt không phải là tình cờ, có thể ở dạng giá trị p.R 2R2R2m1m2X1X2

Làm thế nào một người sẽ đi về điều này? Làm thế nào để làm điều đó khi tôi đang sử dụng các nhãn hiệu chuối khác nhau và chuyển sang mô hình Hiệu ứng hỗn hợp tuyến tính, tạo ra thương hiệu chuối như một hiệu ứng ngẫu nhiên?


Bạn có thể làm rõ lý do tại sao bạn không thể bao gồm cả hai yếu tố dự đoán trong mô hình? Trong trường hợp của bạn, X1X2có lẽ sẽ tương quan, vì các đốm nâu có thể tăng lên khi tăng thời gian nằm trên bàn.
COOLSerdash

Tôi rất thú vị khi kiểm tra xem X1 hay X2 là phương pháp đo tốt hơn. Nếu bao gồm cả hai trong một mô hình có thể trả lời câu hỏi đó, không có vấn đề gì khi làm điều đó. Rõ ràng là cả hai đều tương quan khi họ đo lường cùng một điều.
Rodin

Tôi muốn nói: khi thử đo độ ngon của chuối, đo thời gian nằm trên bàn là cách tốt hơn để xác định điều này hơn là đếm số lượng đốm nâu (p <0,05).
Rodin

Câu trả lời:


7

Một lát sau

Một điều tôi muốn thêm sau khi nghe rằng bạn có các mô hình hiệu ứng hỗn hợp tuyến tính: và vẫn có thể được sử dụng để so sánh các mô hình. Xem bài báo này , ví dụ. Từ những câu hỏi tương tự khác trên trang web, có vẻ như bài báo này rất quan trọng. B I CAIC,AICcBIC


Câu trả lời gốc

Những gì bạn về cơ bản muốn là so sánh hai mô hình không lồng nhau. Lựa chọn mô hình Burnham và Anderson và suy luận đa mô hình thảo luận về điều này và khuyên bạn nên sử dụng , hoặc v.v. vì thử nghiệm tỷ lệ khả năng truyền thống chỉ được áp dụng trong các mô hình lồng nhau. Họ tuyên bố rõ ràng rằng các tiêu chí lý thuyết thông tin như v.v. không phải là các bài kiểm tra và nên tránh từ "đáng kể" khi báo cáo kết quả.A I C c B I C A I C , A I C c , B I CAICAICcBICAIC,AICc,BIC

Dựa trên nàynày câu trả lời, tôi khuyên bạn những phương pháp tiếp cận:

  1. Tạo một ma trận phân tán (SPLOM) của bộ dữ liệu của bạn bao gồm cả bộ làm mịn : pairs(Y~X1+X2, panel = panel.smooth, lwd = 2, cex = 1.5, col = "steelblue", pch=16). Kiểm tra xem các dòng (bộ làm mịn) có tương thích với mối quan hệ tuyến tính không. Tinh chỉnh mô hình nếu cần thiết.
  2. Tính toán các mô hình m1m2. Thực hiện một số kiểm tra mô hình (phần dư, v.v.): plot(m1)plot(m2).
  3. Tính toán ( đã hiệu chỉnh cho các cỡ mẫu nhỏ) cho cả hai mô hình và tính toán sự khác biệt tuyệt đối giữa hai s. Các gói cung cấp các chức năng cho việc này: . Nếu sự khác biệt tuyệt đối này nhỏ hơn 2, hai mô hình về cơ bản không thể phân biệt được. khác, thích mô hình có thấp hơn . A I C A I C c A I C cAICcAICAICcR psclAICcabs(AICc(m1)-AICc(m2))AICc
  4. Tính toán kiểm tra tỷ lệ khả năng cho các mô hình không lồng nhau. Các R góilmtest có các chức năng coxtest(Cox thử nghiệm), jtest(Davidson-MacKinnon J test) và encomptest(bao gồm kiểm tra của Davidson & MacKinnon).

Một số suy nghĩ: Nếu hai biện pháp chuối thực sự đo lường cùng một thứ, cả hai đều có thể phù hợp như nhau để dự đoán và có thể không có mô hình "tốt nhất".

Bài viết này cũng có thể hữu ích.

Đây là một ví dụ trong R:

#==============================================================================
# Generate correlated variables
#==============================================================================

set.seed(123)

R <- matrix(cbind(
  1   , 0.8 , 0.2,
  0.8 , 1   , 0.4,
  0.2 , 0.4 , 1),nrow=3) # correlation matrix
U <- t(chol(R))
nvars <- dim(U)[1]
numobs <- 500
set.seed(1)
random.normal <- matrix(rnorm(nvars*numobs,0,1), nrow=nvars, ncol=numobs);
X <- U %*% random.normal
newX <- t(X)
raw <- as.data.frame(newX)
names(raw) <- c("response","predictor1","predictor2")

#==============================================================================
# Check the graphic
#==============================================================================

par(bg="white", cex=1.2)
pairs(response~predictor1+predictor2, data=raw, panel = panel.smooth,
      lwd = 2, cex = 1.5, col = "steelblue", pch=16, las=1)

SPLOM

Các máy làm mịn xác nhận các mối quan hệ tuyến tính. Điều này đã được dự định, tất nhiên.

#==============================================================================
# Calculate the regression models and AICcs
#==============================================================================

library(pscl)

m1 <- lm(response~predictor1, data=raw)
m2 <- lm(response~predictor2, data=raw)

summary(m1)

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.004332   0.027292  -0.159    0.874    
predictor1   0.820150   0.026677  30.743   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.6102 on 498 degrees of freedom
Multiple R-squared:  0.6549,    Adjusted R-squared:  0.6542 
F-statistic: 945.2 on 1 and 498 DF,  p-value: < 2.2e-16

summary(m2)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.01650    0.04567  -0.361    0.718    
predictor2   0.18282    0.04406   4.150 3.91e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.021 on 498 degrees of freedom
Multiple R-squared:  0.03342,   Adjusted R-squared:  0.03148 
F-statistic: 17.22 on 1 and 498 DF,  p-value: 3.913e-05

AICc(m1)
[1] 928.9961

AICc(m2)
[1] 1443.994

abs(AICc(m1)-AICc(m2))
[1] 514.9977

#==============================================================================
# Calculate the Cox test and Davidson-MacKinnon J test
#==============================================================================

library(lmtest)

coxtest(m1, m2)

Cox test

Model 1: response ~ predictor1
Model 2: response ~ predictor2
                Estimate Std. Error   z value  Pr(>|z|)    
fitted(M1) ~ M2   17.102     4.1890    4.0826 4.454e-05 ***
fitted(M2) ~ M1 -264.753     1.4368 -184.2652 < 2.2e-16 ***

jtest(m1, m2)

J test

Model 1: response ~ predictor1
Model 2: response ~ predictor2
                Estimate Std. Error t value  Pr(>|t|)    
M1 + fitted(M2)  -0.8298   0.151702  -5.470 7.143e-08 ***
M2 + fitted(M1)   1.0723   0.034271  31.288 < 2.2e-16 ***

Các của mô hình đầu tiên rõ ràng là thấp hơn và là cao hơn nhiều. R 2AICcm1R2

Quan trọng: Trong các mô hình tuyến tínhđộ phức tạp bằng nhau và phân phối lỗi Gaussian , và sẽ cho cùng một câu trả lời (xem bài này ). Trong các mô hình phi tuyến , nên sử dụng cho hiệu suất mô hình (mức độ phù hợp) và lựa chọn mô hình : ví dụ, xem bài đăng nàybài báo này .B I C R 2R2,AICBICR2


Đây là một câu trả lời chi tiết thực tế giải thích tốt những gì có thể được thực hiện. Những gì thậm chí còn ấn tượng hơn sẽ là một ví dụ trong đó các sơ đồ phân tán, và dẫn đến các câu trả lời khác nhau . A I C cR2AICc
Nick Cox

@NickCox Điều đó thực sự sẽ rất thú vị! Nếu các mô hình là tuyến tính và có độ phức tạp bằng nhau và các lỗi có phân phối Gaussian, và sẽ cho cùng một câu trả lời. Sự thật là tôi không biết cách tạo ra một ví dụ đặc biệt trong đó các biểu đồ phân tán, và dẫn đến các câu trả lời khác nhau (có lẽ ai đó có thể giúp tôi?). Lấy làm tiếc. B I C R 2 A I C cR2,AICBICR2AICc
COOLSerdash

Bạn không cần phải xin lỗi; Tôi thấy đó là tin tốt mỗi khi các phương pháp hợp lý khác nhau ngụ ý cùng một kết luận!
Nick Cox

Thông minh. Bài kiểm tra Cox chính xác là những gì tôi muốn. Thật không may, các mô hình của tôi là các mô hình hiệu ứng hỗn hợp tuyến tính được trang bị gói lme4, không được lmtestgói hỗ trợ trực tiếp . Trước khi tôi đi sâu vào các tài liệu viết về các thử nghiệm giống như cox với LME, có ai biết gói R có sẵn để làm điều đó không?
Rodin

@Rodin Không, tôi không biết bất kỳ Rgói nào có thể làm điều đó. Có lẽ bài đăng này có thể cung cấp cho bạn hướng dẫn thêm.
COOLSerdash

3

R2

Ví dụ về chuối có lẽ là vô dụng ở đây, nhưng tôi không mong đợi sự phù hợp với đường thẳng sẽ hoạt động tốt cả ....

Máy móc suy luận được người khác trả lời là một vẻ đẹp trí tuệ, nhưng đôi khi bạn không cần một chiếc búa tạ tối tân để bẻ khóa. Đôi khi, dường như bất cứ ai xuất bản đêm đó tối hơn ban ngày sẽ luôn có một người hỏi "Bạn đã kiểm tra chính thức chưa? Giá trị P của bạn là gì?".


AIC

1
Luôn luôn tốt để lùi lại một bước và ghi nhớ điều này thật +1 nhưng tôi tự hỏi liệu điều này có thực sự chỉ là trường hợp kỳ lạ khi điều này không đặc biệt hữu ích. Có thực sự rất có khả năng một mô hình sẽ rõ ràng tốt hơn mô hình kia khi hai dự đoán dự kiến ​​là các biện pháp khác nhau của cùng một điều trái ngược với các biến số thực chất khác nhau? Để chuối sang một bên trong một phút, suy nghĩ các câu hỏi hơi khác nhau hoặc một người cai trị so với máy đo khoảng cách laser. Một biện pháp phải cực kỳ thiếu để phi tuyến tính xuất hiện trong một trường hợp nhưng không phải là biện pháp khác.
Gala

2
R2

Tôi đồng ý rằng cách tốt nhất là trình bày rõ ràng dữ liệu và sự phù hợp của các mô hình. Bằng cách này, người đọc có thể tự quyết định xem có nên chấp nhận bất kỳ tuyên bố nào về việc một người tốt hơn hay không. Tuy nhiên, tôi e rằng các nhà phê bình sẽ yêu cầu một bài kiểm tra quan trọng, hoàn toàn không có phản ứng giật đầu gối. Nhận xét của Gaël về đêm và ngày không còn xa.
Rodin

1
Đó là tôi vào ban đêm và ban ngày ....
Nick Cox

2

Làm một bài kiểm tra Cox cho các mô hình không lồng nhau.

y <- rnorm( 10 )
x1 <- y + rnorm( 10 ) / 2
x2 <- y + rnorm( 10 )

lm1 <- lm( y ~ x1 )
lm2 <- lm( y ~ x2 )

library( lmtest )

coxtest( lm1, lm2 )
?coxtest

(bạn sẽ tìm thấy tài liệu tham khảo cho bài kiểm tra khác).

Xem thêm bình luận nàycâu hỏi này . Đặc biệt, xem xét sử dụng AIC / BIC.

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.