Bạn có thể thêm các thuật ngữ đa thức cho nhiều hồi quy tuyến tính không?


8

Tôi hơi bối rối về việc khi nào bạn nên hoặc không nên thêm các thuật ngữ đa thức vào mô hình hồi quy tuyến tính đa biến. Tôi biết đa thức được sử dụng để ghi lại độ cong trong dữ liệu, nhưng dường như nó luôn ở dạng:

y= =x1+x2+x12+x22+x1x2+c

Điều gì xảy ra nếu bạn biết rằng có mối quan hệ tuyến tính giữa yx1 , nhưng mối quan hệ phi tuyến tính giữa yx2 ? Bạn có thể sử dụng một mô hình dưới dạng:

y= =x1+x2+x22+c

Tôi đoán câu hỏi của tôi là, có hợp lệ khi bỏ thuật ngữ x12 và thuật ngữ x1x2 hay bạn phải tuân theo hình thức chung của mô hình hồi quy đa thức?


5
Chỉ cần lưu ý đầy đủ rằng nếu bạn có trong mô hình, bạn cũng phải có . Tìm kiếm trang web này cho nguyên tắc cận biên để biết thêm. Tôi biết bạn không đề xuất làm điều đó nhưng thông tin có thể hữu ích. xx2x
mdewey

Thật kỳ lạ khi thấy một cái gì đó như và gọi nó là mô hình hồi quy tuyến tính, nhưng chắc chắn là như vậy. Hãy nhớ rằng nó phải làm với tuyến tính trong các hệ số. Tôi đề xuất video của Nhà toán học về điều này: m.youtube.com/watch?v=rVviNyIR-fI . Mười lăm phút có vẻ như là một khoảng thời gian để dành cho việc này, nhưng bạn sẽ không bao giờ quên rằng hồi quy tuyến tính có thể liên quan đến hành vi phi tuyến. Có lẽ như một câu hỏi cho OP: là mô hình hồi quy tuyến tính không? y = y= =mộtx+bx2y= =mộtx+bx2
Dave

@mdewey, tuyên bố của bạn quá chung chung là không chính xác và / hoặc có ý nghĩa trong tất cả các cài đặt. Tôi có thể dễ dàng tưởng tượng một mô hình được xác định rõ với nhưng không có . Ví dụ: các trường hợp trong đó quá trình tạo dữ liệu là hoặc nơi đó là trong đó (và ) hoặc ở đâu mô hình chỉ đơn giản là xấp xỉ tốt hơn (so với mô hình bao gồm ) với bất kỳ quá trình tạo dữ liệu nào chúng ta đang phải đối mặt. x y = β 0 + β 1 x 2 + εx2xy=β0+β1x2+εx = y=β0+β1z+ε z>0xx=zz>0x
Richard Hardy

Câu trả lời:


14

Ngoài câu trả lời tuyệt vời của @ mkt, tôi nghĩ tôi sẽ cung cấp một ví dụ cụ thể để bạn thấy để bạn có thể phát triển một số trực giác.

Tạo dữ liệu cho ví dụ

Trong ví dụ này, tôi đã tạo một số dữ liệu bằng R như sau:

set.seed(124)

n <- 200
x1 <- rnorm(n, mean=0, sd=0.2)
x2 <- rnorm(n, mean=0, sd=0.5)

eps <- rnorm(n, mean=0, sd=1)

y = 1 + 10*x1 + 0.4*x2 + 0.8*x2^2 + eps

Như bạn có thể thấy ở trên, dữ liệu đến từ mô hình , trong đó là thuật ngữ lỗi ngẫu nhiên được phân phối bình thường với có nghĩa là và phương sai không xác định . Hơn nữa, , , và , trong khi . y=β0+β1x1+β2x2+β3x22+ϵϵ0σ2β0=1β1=10β2=0.4β3=0.8σ=1

Trực quan hóa dữ liệu được tạo thông qua Coplots

Dựa vào dữ liệu mô phỏng về biến kết quả y và biến dự đoán x1 và x2, chúng ta có thể hình dung các dữ liệu này bằng cách sử dụng coplots :

library(lattice)

coplot(y ~ x1 | x2,  
       number = 4, rows = 1,
       panel = panel.smooth)

coplot(y ~ x2 | x1,  
       number = 4, rows = 1,
       panel = panel.smooth)

Các coplots kết quả được hiển thị dưới đây.

Các coplot đầu tiên hiển thị các biểu đồ phân tán của y so với x1 khi x2 thuộc bốn phạm vi giá trị quan sát khác nhau (trùng nhau) và tăng cường mỗi phân tán này với sự phù hợp trơn tru, có thể phi tuyến tính có hình dạng được ước tính từ dữ liệu.

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

Coplot thứ hai hiển thị các biểu đồ phân tán của y so với x2 khi x1 thuộc bốn phạm vi giá trị quan sát khác nhau (trùng nhau) và tăng cường từng phân tán này với sự phù hợp trơn tru.

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

Các coplot đầu tiên cho thấy thật hợp lý khi giả định rằng x1 có hiệu ứng tuyến tính đối với y khi điều khiển x2 và hiệu ứng này không phụ thuộc vào x2.

Coplot thứ hai cho thấy thật hợp lý khi giả định rằng x2 có hiệu ứng bậc hai đối với y khi điều khiển x1 và hiệu ứng này không phụ thuộc vào x1.

Phù hợp với một mô hình được chỉ định chính xác

Các coplots đề nghị khớp mô hình sau với dữ liệu, cho phép tạo hiệu ứng tuyến tính của x1 và hiệu ứng bậc hai của x2:

m <- lm(y ~ x1 + x2 + I(x2^2))  

Xây dựng thành phần cộng với các lô dư cho mô hình được chỉ định chính xác

Khi mô hình được chỉ định chính xác được gắn vào dữ liệu, chúng ta có thể kiểm tra các thành phần cộng với các ô dư cho từng yếu tố dự đoán có trong mô hình:

library(car)

crPlots(m)

Các thành phần này cộng với các ô dư được hiển thị bên dưới và cho thấy mô hình đã được chỉ định chính xác vì chúng không hiển thị bằng chứng về phi tuyến, v.v. Thật vậy, trong mỗi ô này, không có sự khác biệt rõ ràng giữa đường màu xanh chấm chấm gợi ý về hiệu ứng tuyến tính của bộ dự báo tương ứng và dòng màu đỏ tươi gợi ý về hiệu ứng phi tuyến tính của bộ dự báo đó trong mô hình.

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

Phù hợp với một mô hình được chỉ định không chính xác

Chúng ta hãy chơi người ủng hộ của quỷ và nói rằng mô hình lm () của chúng ta trên thực tế được chỉ định không chính xác (nghĩa là sai chính tả), theo nghĩa là nó đã bỏ qua thuật ngữ bậc hai I (x2 ^ 2):

m.mis <-  lm(y ~ x1 + x2)

Xây dựng các thành phần cộng với các lô dư cho mô hình được chỉ định không chính xác

Nếu chúng ta xây dựng thành phần cộng với các ô dư cho mô hình sai chính tả, chúng ta sẽ thấy ngay một gợi ý về tính phi tuyến tính của hiệu ứng của x2 trong mô hình sai chính tả:

crPlots(m.mis)

Nói cách khác, như được thấy dưới đây, mô hình sai chính tả đã thất bại trong việc thu được hiệu ứng bậc hai của x2 và hiệu ứng này hiển thị trong thành phần cộng với biểu đồ dư tương ứng với dự đoán x2 trong mô hình sai chính tả.

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

Việc xác định sai hiệu ứng của x2 trong mô hình m.mis cũng sẽ rõ ràng khi kiểm tra các lô của phần dư liên quan đến mô hình này so với từng yếu tố dự đoán x1 và x2:

par(mfrow=c(1,2))
plot(residuals(m.mis) ~ x1, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
plot(residuals(m.mis) ~ x2, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)

Như được thấy dưới đây, biểu đồ của phần dư được liên kết với m.mis so với x2 thể hiện một mô hình bậc hai rõ ràng, cho thấy rằng mô hình m.mis đã không thể bắt được mô hình hệ thống này.

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

Thay đổi mô hình được chỉ định không chính xác

Để chỉ định chính xác mô hình m.mis, chúng ta sẽ cần phải tăng nó để nó cũng bao gồm thuật ngữ I (x2 ^ 2):

m <- lm(y ~ x1 + x2 + I(x2^2)) 

Dưới đây là các sơ đồ của phần dư so với x1 và x2 cho mô hình được chỉ định chính xác này:

par(mfrow=c(1,2))
plot(residuals(m) ~ x1, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
plot(residuals(m) ~ x2, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)

Lưu ý rằng mẫu bậc hai được thấy trước đây trong biểu đồ phần dư so với x2 cho mô hình sai chính tả m.mis hiện đã biến mất khỏi biểu đồ phần dư so với x2 cho mô hình m được chỉ định chính xác.

Lưu ý rằng trục tung của tất cả các ô dư so với x1 và x2 hiển thị ở đây phải được gắn nhãn là "Dư lượng". Vì một số lý do, R Studio cắt nhãn đó đi.

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


11

Vâng, những gì bạn đề nghị là tốt. Nó hoàn toàn hợp lệ trong một mô hình để coi phản ứng với một yếu tố dự đoán là tuyến tính và một mô hình khác là đa thức. Cũng hoàn toàn ổn khi cho rằng không có tương tác giữa các yếu tố dự đoán.


1
xx2x

@Dayne Câu hỏi hay! Đây là một vấn đề được thảo luận tốt ở đâyđây
mkt - Tái lập Monica

1
@mkt Những liên kết này đưa ra những cách tiếp cận hoàn toàn riêng biệt so với ý tưởng của Ingolifs về đa thức trực giao. Bất kỳ suy nghĩ về cách tiếp cận đa thức trực giao?
Dave

1
@Dave Đừng biết quá nhiều về nó, tôi sợ. Có thể là tốt để hỏi một câu hỏi mới về việc so sánh các phương pháp tiếp cận.
mkt - Phục hồi Monica

7

Bạn nên cẩn thận sử dụng đa thức trực giao nếu bạn muốn thêm các thuật ngữ đa thức.

x2x

Quan sát:

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

x,x2,x3

Từ 0 đến 1,5, cả ba đường cong đều tăng đơn điệu và trong khi chúng cong khác nhau, chúng sẽ cho chất lượng tương tự phù hợp khi x tương quan dương với y. Bằng cách sử dụng cả ba trong mã của bạn

y ~ x + x^2 + x^3

về cơ bản bạn đang sử dụng các hình dạng dư thừa để phù hợp với dữ liệu của bạn.

Đa thức trực giao về cơ bản cung cấp cho bạn thêm phòng ngọ nguậy khi lắp, và mỗi đa thức về cơ bản là độc lập với những người khác.

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

Ba đa thức bậc 1,2 và 3 được tạo bởi hàm poly () trong R.

Có lẽ thay vì nghĩ rõ ràng về chúng như là đa thức, thay vào đó bạn nghĩ chúng là "thành phần xu hướng" hoặc một cái gì đó:

x

x2

x3xx2

Có rất nhiều phép toán khó liên quan đến đa thức trực giao, nhưng rất may bạn chỉ thực sự cần biết hai điều:

  1. Đa thức trực giao chỉ trực giao trên một vùng nhất định. Ví dụ tôi đưa ra liên quan đến đa thức chỉ trực giao trong khoảng từ 0 đến 1,5.
  2. x

2
Điều này cực kỳ thú vị và không phải là điều tôi đã nghe trước đây. Bạn có một tài liệu tham khảo nói rằng điều này là cần thiết hoặc hữu ích, tuy nhiên? Và hữu ích cho dự đoán hoặc suy luận tham số? Và bạn có biết một lệnh Python cho miền đa poly không?
Dave

Các khía cạnh khác nhau của hồi quy đa thức trực giao đã được giải quyết ở đâyở đây và nhiều hơn nữa.
Jason

Câu trả lời tuyệt vời, và cảm ơn vì đã đưa nó lên tốt hơn bài tôi đã nghĩ. :)
Jason

1
@Ingolifs: Đây là lời giải thích tốt nhất về đa thức trực giao mà tôi đã đọc cho đến nay trên trang web này! Tôi đồng ý với Dave rằng sẽ rất hữu ích khi bình luận trong câu trả lời của bạn về tính hữu ích của đa thức trực giao cho dự đoán hoặc suy luận tham số.
Isabella Ghement

1
+1 nhưng hãy cẩn thận polyvì nếu bạn cố gắng predictvới nó, nó sẽ chỉnh lại các đa thức trên mẫu dự đoán; tức là chúng ta nhận được rác.
usεr11852

0

Không có quy tắc nào nói rằng bạn phải sử dụng tất cả các biến của mình. Nếu bạn đang cố gắng dự đoán thu nhập và các biến số tính năng của bạn là SSN, số năm đi học và độ tuổi và bạn muốn bỏ SSN vì bạn mong muốn bất kỳ mối tương quan nào giữa nó và thu nhập sẽ là giả mạo, đó là lời phán xét của bạn. Một mô hình không hợp lệ đơn giản vì có những biến khác mà về mặt lý thuyết bạn có thể đưa vào, nhưng không. Quyết định các điều khoản đa thức bao gồm chỉ là một trong nhiều quyết định liên quan đến lựa chọn tính năng.

Mặc dù các mô hình đa thức thường bắt đầu với tất cả các thuật ngữ được bao gồm, điều đó chỉ để tất cả chúng có thể được đánh giá về mức độ chúng được thêm vào mô hình. Nếu có vẻ như một thuật ngữ cụ thể chủ yếu chỉ là quá mức, nó có thể được loại bỏ trong các lần lặp lại sau của mô hình. Chính quy hóa, chẳng hạn như hồi quy lasso, có thể tự động loại bỏ các biến ít hữu ích hơn. Nói chung, tốt hơn là bắt đầu một mô hình có quá nhiều biến số và biến nó thành mô hình hữu ích nhất, thay vì chỉ bắt đầu với các biến bạn nghĩ rằng mô hình nên dựa vào và có thể bỏ lỡ mối quan hệ bạn không mong đợi.

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.