Khó kiểm tra tuyến tính trong hồi quy


21

Trong mô hình thống kê: Hai nền văn hóa Leo Breiman viết

Thực tiễn áp dụng hiện nay là kiểm tra sự phù hợp của mô hình dữ liệu bằng cách sử dụng các kiểm tra mức độ phù hợp và phân tích dư. Tại một thời điểm, vài năm trước, tôi đã thiết lập một bài toán hồi quy mô phỏng theo bảy chiều với một lượng phi tuyến được kiểm soát. Các thử nghiệm tiêu chuẩn về mức độ phù hợp đã không từ chối tuyến tính cho đến khi độ phi tuyến cực cao.

Breiman không cung cấp các chi tiết mô phỏng của mình. Ông tham khảo một bài báo mà ông nói đưa ra lý lẽ biện minh cho quan sát của mình, nhưng bài báo không được công bố.

Có ai nhìn thấy một kết quả mô phỏng được công bố hoặc bài báo lý thuyết để hỗ trợ cho yêu cầu của Brieman chưa?


1
Extreme rất khó để đánh giá, mọi chức năng tiếp cận tuyến tính trên một số phạm vi; như chúng ta đã biết từ phân tách Taylor Series. Tại sao cách tiếp cận tiêu chí thông tin của Burnham và Anderson đối với việc lựa chọn mô hình lại phục vụ tốt vấn đề này?
Patrick McCann

Câu trả lời:


11

Tôi đã tạo ra một mô phỏng sẽ trả lời mô tả của Breiman và chỉ tìm thấy điều hiển nhiên: kết quả phụ thuộc vào bối cảnh và vào ý nghĩa của "cực đoan".

Rất nhiều điều có thể nói, nhưng hãy để tôi giới hạn nó chỉ là một ví dụ được thực hiện bằng phương tiện Rmã dễ dàng sửa đổi để người đọc quan tâm sử dụng trong các cuộc điều tra của riêng họ. Mã này bắt đầu bằng cách thiết lập một ma trận thiết kế bao gồm các giá trị độc lập được phân phối đồng đều xấp xỉ trực giao (để chúng ta không gặp phải các vấn đề về đa cộng đồng). Nó tính toán một tương tác bậc hai (tức là phi tuyến) giữa hai biến đầu tiên: đây chỉ là một trong nhiều loại "phi tuyến" có thể được nghiên cứu, nhưng ít nhất nó là một biến phổ biến, được hiểu rõ. Sau đó, nó chuẩn hóa mọi thứ để các hệ số sẽ tương đương nhau:

set.seed(41)
p <- 7                                            # Dimensions
n <- 2^p                                          # Observations
x <- as.matrix(do.call(expand.grid, lapply(as.list(1:p), function(i) c(-1,1))))
x <- x + runif(n*p, min=-1, max=1)
x <- cbind(x, x.12 = x[,1]*x[,2])                 # The nonlinear part
x <- apply(x, 2, function(y) (y - mean(y))/sd(y)) # Standardization

Đối với mô hình OLS cơ sở (không có phi tuyến), chúng ta phải chỉ định một số hệ số và độ lệch chuẩn của sai số dư. Dưới đây là tập hợp các hệ số đơn vị và SD tương đương:

beta <- rep(c(1,-1), p)[1:p]
sd <- 1

1/41-1

gamma = 1/4          # The standardized interaction term
df <- data.frame(x)
df$y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
summary(df)
cor(df)*100
plot(df, lower.panel=function(x,y) lines(lowess(y~x)), 
     upper.panel=function(x,y) points(x,y, pch=".", cex=4))
summary(lm(df$y ~ x))

Thay vì lội qua tất cả đầu ra ở đây, chúng ta hãy xem xét các dữ liệu này bằng đầu ra của plotlệnh:

SPM

Các dấu vết thấp trên tam giác dưới cho thấy về cơ bản không có mối quan hệ tuyến tính giữa tương tác ( x.12) và biến phụ thuộc ( y) và mối quan hệ tuyến tính khiêm tốn giữa các biến khác và y. Kết quả OLS xác nhận rằng; sự tương tác hiếm khi có ý nghĩa:

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.0263     0.0828    0.32    0.751    
xVar1         0.9947     0.0833   11.94   <2e-16 ***
xVar2        -0.8713     0.0842  -10.35   <2e-16 ***
xVar3         1.0709     0.0836   12.81   <2e-16 ***
xVar4        -1.0007     0.0840  -11.92   <2e-16 ***
xVar5         1.0233     0.0836   12.24   <2e-16 ***
xVar6        -0.9514     0.0835  -11.40   <2e-16 ***
xVar7         1.0482     0.0835   12.56   <2e-16 ***
xx.12         0.1902     0.0836    2.27    0.025 *  

Tôi sẽ lấy giá trị p của thuật ngữ tương tác làm thử nghiệm về tính phi tuyến: khi giá trị p này đủ thấp (bạn có thể chọn mức độ thấp), chúng tôi sẽ phát hiện ra độ phi tuyến.

(Có một sự tinh tế ở đây về chính xác những gì chúng ta đang tìm kiếm. Trong thực tế, chúng ta có thể cần kiểm tra tất cả 7 * 6/2 = 21 khả năng tương tác bậc hai như vậy, cũng như có thể là 7 thuật ngữ bậc hai, thay vì tập trung vào một thuật ngữ duy nhất như đã được thực hiện ở đây. Chúng tôi muốn thực hiện chỉnh sửa cho 28 thử nghiệm liên quan đến nhau này. Tôi không thực hiện chỉnh sửa này ở đây, vì thay vào đó tôi hiển thị phân phối mô phỏng của các giá trị p. Bạn có thể đọc tỷ lệ phát hiện trực tiếp từ biểu đồ ở cuối dựa trên ngưỡng ý nghĩa của bạn .)

Nhưng chúng ta đừng làm phân tích này chỉ một lần; hãy thực hiện nhiều lần, tạo ra các giá trị mới ytrong mỗi lần lặp theo cùng một mô hình và cùng một ma trận thiết kế. Để thực hiện điều này, chúng tôi sử dụng một hàm để thực hiện một lần lặp và trả về giá trị p của thuật ngữ tương tác:

test <- function(gamma, sd=1) {
  y <- x %*% c(beta, gamma) + rnorm(n, sd=sd)
  fit <- summary(lm(y ~ x))
  m <- coef(fit)
  n <- dim(m)[1]
  m[n, 4]
}

Tôi chọn trình bày kết quả mô phỏng dưới dạng biểu đồ của các giá trị p, thay đổi hệ số chuẩn gammacủa thuật ngữ tương tác. Đầu tiên, biểu đồ:

h <- function(g, n.trials=1000) {
  hist(replicate(n.trials, test(g, sd)), xlim=c(0,1), 
       main=toString(g), xlab="x1:x2 p-value")
}
par(mfrow=c(2,2)) # Draw a 2 by 2 panel of results

Bây giờ để làm việc. Phải mất vài giây cho 1000 thử nghiệm trên mỗi mô phỏng (và bốn mô phỏng độc lập, bắt đầu bằng giá trị đã cho của thuật ngữ tương tác và liên tiếp giảm một nửa mỗi lần):

temp <- sapply(2^(-3:0) * gamma, h)

Kết quả:

Biểu đồ

xsdbeta1/41/số 81/16gamma1/2

1/321/4xsdbetasd

Nói tóm lại, một mô phỏng như thế này có thể chứng minh bất cứ điều gì bạn thích nếu bạn chỉ cần thiết lập và giải thích nó đúng cách. Điều đó cho thấy các nhà thống kê cá nhân nên tiến hành các cuộc thám hiểm của riêng họ, phù hợp với các vấn đề cụ thể mà họ gặp phải, để hiểu rõ hơn về các khả năng và điểm yếu của các quy trình họ đang sử dụng.


+1, chỉ cần FYI, tôi nhận thấy bạn viết chức năng của riêng bạn để chuẩn hóa dữ liệu của bạn, bạn có thể thấy ? Quy mô hữu ích.
gung - Phục hồi Monica

Cảm ơn, @gung. Tôi chắc chắn một chức năng như vậy có xung quanh nhưng không thể nghĩ ra tên của nó. Tôi khá mới Rvà luôn đánh giá cao những gợi ý như vậy.
whuber

1

Không chắc nó đưa ra câu trả lời cuối cùng cho câu hỏi, nhưng tôi sẽ xem xét điều này . Đặc biệt là điểm 2. Xem thêm phần thảo luận trong phụ lục A2 của bài báo .


Cảm ơn bạn đã xem, nhưng đây dường như là các ứng dụng phù hợp phân phối hơn là hồi quy OLS.
whuber
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.