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 CMột tôiC, Một TôiCcB tôiC
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 CMột tôiCMột tôiCcB tôiCMột tôiC, Một TôiCc, B tôiC
Dựa trên này và này câu trả lời, tôi khuyên bạn những phương pháp tiếp cận:
- 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.
- Tính toán các mô hình
m1
và m2
. Thực hiện một số kiểm tra mô hình (phần dư, v.v.): plot(m1)
và plot(m2)
.
- 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 cMột tôiCcMột tôiCMột tôiCc
R
pscl
AICc
abs(AICc(m1)-AICc(m2))
Một tôiCc
- 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)
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 2Một tôiCcm1
R2
Quan trọng: Trong các mô hình tuyến tính có độ 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ày và bài báo này .B I C R 2R2, Một TôiCB tôiCR2
X1
vàX2
có 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.