Giải pháp rõ ràng cho hồi quy tuyến tính với hai yếu tố dự đoán


8

Tôi có một số mẫu dữ liệu có dạng và . Tôi muốn đặt một mặt phẳng vào dữ liệu có sai số bình phương trung bình nhỏ nhất.x,yz=f(x,y)

z=Ax+By+C

Tôi đã tìm thấy một "câu trả lời" trong phần 3 của tài liệu này , nhưng nó được để lại dưới dạng một số phương trình còn lại để giải. Tôi chỉ có khả năng giải các phương trình này, nhưng quá trình trở nên lộn xộn đến mức khả năng tôi mắc lỗi là khá cao. Chắc chắn ai đó đã viết ra giải pháp đầy đủ từ lâu ở đâu đó (có thể được gọi là "dạng đóng"), ở dạng

A=,
B=,
C=.

EDIT: Có thể "dạng đóng" là cụm từ sai. Vì vậy, hãy để tôi được rõ ràng. Tôi muốn một giải pháp rõ ràng cho , và , và không phải là một giải pháp kết thúc bằng "Vì vậy, bây giờ nếu bạn có thể giải các phương trình này thì bạn có thể khám phá các giá trị của , và ".ABCABC


1
Chỉnh sửa của bạn không rõ ràng. Bạn đang hỏi về giải pháp dạng đóng cho hồi quy tuyến tính. Nó được đưa ra trong các chủ đề liên kết. Nếu bạn sử dụng công thức, bạn sẽ nhận được câu trả lời. Bạn cần gì nữa?
Tim

1
Các câu trả lời trong các liên kết của bạn khiến tôi phải giải ba phương trình đồng thời để tìm A, B và C. Tôi lo ngại tôi sẽ phạm sai lầm.
Mick

1
Thật vậy, có một giải pháp dạng đóng trong tài liệu tham khảo của bạn. Lùi lại một bước và nhìn vào những gì bạn đang thực sự làm. Bạn đang giải một hệ phương trình tuyến tính - thứ hạng của ma trận này sẽ bằng số lượng điểm dữ liệu bạn có. Tại sao bạn sẽ đi xa hơn vào thời điểm này? Bằng cách này, bạn không bị mắc kẹt với ba biến. Tất cả những gì bạn cần làm là giải hệ phương trình tuyến tính mà bạn có thể làm ở Wolfram Alpha nếu muốn. Giải pháp cho các phương trình này cũng là giải pháp dạng đóng mà bạn đang tìm kiếm nhưng luôn phụ thuộc vào số lượng tham số miễn phí trong mô hình này.
pAt84

1
Chúng tôi có thể làm điều đó cho bạn và sẽ nhận được câu trả lời của bạn nhưng đây là điều bạn thực sự nên tự làm như một kinh nghiệm học tập. Tôi có thể thấy bạn đấu tranh với chính xác điều đó nhưng vượt qua cuộc đấu tranh này sẽ mang lại nhiều phần thưởng hơn là nếu chúng tôi chỉ đưa ra câu trả lời cho bạn.
pAt84

1
Tôi tiếp tục chạy ra khỏi không gian trên bảng trắng 2ftx3ft của mình ... đúng theo nghĩa đen. Ngay cả khi tôi giải quyết nó, tôi sẽ không tự tin rằng mình đã không phạm sai lầm trên đường đi.
Mick

Câu trả lời:


13

Ở những nơi khác trên trang web này, các giải pháp rõ ràng cho hồi quy bình phương nhỏ nhất bình thường

E(zi)=Axi+Byi+C

có sẵn ở dạng ma trận như

(1)(C,A,B)=(XX)1Xz

Trong đó là "ma trận mô hình"X

X=(1x1y11x2y21xnyn)

và là vectơ đáp ứngz

z=(z1,z2,,zn).

Đó là một câu trả lời hoàn toàn tốt, rõ ràng, có thể tính toán. Nhưng có lẽ có một số hiểu biết bổ sung có thể được rút ra khỏi nó bằng cách kiểm tra các hệ số. Điều này có thể đạt được bằng cách chọn các đơn vị thích hợp để thể hiện các biến.

Các đơn vị tốt nhất cho mục đích này tập trung vào từng biến ở mức trung bình của nó và sử dụng độ lệch chuẩn của nó làm đơn vị đo lường. Một cách rõ ràng, hãy để ba phương tiện là và và ba độ lệch chuẩn là và . (Hóa ra bạn không chia cho hay khi tính toán độ lệch chuẩn. Chỉ cần đảm bảo bạn sử dụng quy ước nhất quán khi bạn tính bất kỳ giây thứ hai nào của dữ liệu.) Các giá trị của các biến trong các đơn vị mới này. đo lường làmx,my,mzsx,sy,sznn1

ξi=ximxsx, ηi=yimysy, ζi=zimzsz.

Quá trình này được gọi là chuẩn hóa dữ liệu. Các biến , và là các phiên bản được tiêu chuẩn hóa của các biến ban đầu , và .ξηζxyz

Những mối quan hệ này là không thể đảo ngược:

xi=sxξi+mx, yi=syηi+my, zi=szζi+mz.

Cắm những thứ này vào mối quan hệ xác định

E(zi)=C+Axi+Byi

và đơn giản hóa sản lượng

E(szζi+mz)=C+A(sxξi+mx)+B(syηi+my).

Giải quyết kỳ vọng của biến phụ thuộc mang lạiζi

E(ζi)=(C+Amx+Bmymzsz)+(Asxsz)ξi+(Bsysz)ηi.

Nếu chúng ta viết các hệ số này lần lượt là , thì chúng ta có thể khôi phục bằng cách so sánh và giải. Đối với hồ sơ này choβ0,β1,β2A,B,C

(2)A=szβ1sx, B=szβ2sy, and C=szβ0+mzAmxBmy.

Điểm của điều này trở nên rõ ràng khi chúng ta xem xét ma trận mô hình mới

Ξ=(1ξ1ηi1ξ2η21ξnηn)

và ma trận phản hồi mới , bởi vì bây giờζ=(ζ1,ζ2,,ζn)

ΞΞ=(n000nnρ0nρn)

Ξζ=(0,nτ,nυ)

Trong đó là hệ số tương quan , là hệ số tương quan và là hệ số tương quan .ρ1ni=1nξiηiτ1ni=1nξiζiυ1ni=1nηiζi

Để giải các phương trình bình thường chúng ta có thể chia cả hai vế cho , cho(1)n

(10001ρ0ρ1)(β0β1β2)=(0τυ).

Những gì ban đầu trông giống như một công thức ma trận ghê gớm đã được giảm xuống thành một bộ ba phương trình thực sự đồng thời. Cung cấp , giải pháp của nó dễ dàng được tìm thấy|ρ|<1

(β^0β^1β^2)=11ρ2(0τρυυρτ).

Cắm này vào các hệ số trong sản xuất dự toán và .(2)A^,B^,C^

Trong thực tế, thậm chí nhiều hơn đã đạt được:

  • Bây giờ rõ ràng là tại sao các trường hợp có vấn đề: họ đưa ra một điều kiện chia cho 0 trong giải pháp.|ρ|=1

  • Rõ ràng là làm thế nào để xác định xem một giải pháp có tồn tại khivà làm thế nào để có được nó. Nó sẽ tồn tại khi phương trình bình thường thứ hai và thứ ba trong là dư thừa và nó sẽ được lấy chỉ bằng cách bỏ qua một trong các biến và ở vị trí đầu tiên.|ρ=1|Ξxy

  • Chúng ta có thể rút ra một số cái nhìn sâu sắc về giải pháp nói chung. Chẳng hạn, từ trong mọi trường hợp, chúng tôi có thể kết luận rằng mặt phẳng được trang bị phải đi qua điểm trung bình .β^0=0(mx,my,mz)

  • Bây giờ rõ ràng là giải pháp có thể được tìm thấy trong hai thời điểm đầu tiên của bộ dữ liệu trivariate . Điều này làm sáng tỏ thêm về thực tế rằng các ước tính hệ số có thể được tìm thấy từ các phương tiện và ma trận hiệp phương sai một mình .(x,y,z)

  • Bên cạnh đó, phương trình cho thấy các phương tiện cần thiết chỉ để ước tính hạn chặn . Ước tính của hai sườn và chỉ cần khoảnh khắc thứ hai.(2)CAB

  • Khi các biến hồi quy không tương quan, và giải pháp là chặn là 0 và độ dốc là các hệ số tương quan giữa phản hồi và biến hồi quy và khi chúng ta chuẩn hóa dữ liệu. Điều này vừa dễ nhớ vừa cung cấp cái nhìn sâu sắc về cách các hệ số hồi quy có liên quan đến các hệ số tương quan.ρ=0zxy


Đặt tất cả những thứ này lại với nhau, chúng ta thấy rằng (ngoại trừ trong các trường hợp suy biến ) các ước tính có thể được viết|ρ|=1

A^=τρυ1ρ2szsxB^=υρτ1ρ2szsyC^=mzmxA^myB^.

Trong các công thức này, là phương tiện mẫu, là độ lệch chuẩn mẫu và các chữ cái Hy Lạp và đại diện cho ba hệ số tương quan (giữa và , và , và và , tương ứng).msρ,τ,υxyxzyz

Xin lưu ý rằng các công thức này không phải là cách tốt nhất để thực hiện các phép tính. Tất cả đều liên quan đến việc trừ các đại lượng có thể có kích thước tương đương, chẳng hạn như , và . Phép trừ như vậy liên quan đến mất độ chính xác. Công thức ma trận cho phép các nhà phân tích số có được các giải pháp ổn định hơn, bảo toàn độ chính xác nhất có thể. Đây là lý do tại sao mọi người hiếm khi có bất kỳ quan tâm đến các công thức kỳ hạn. Một lý do khác ít được quan tâm là khi số lượng hồi quy tăng lên, độ phức tạp của các công thức tăng theo cấp số nhân, nhanh chóng trở nên quá khó sử dụng.τρυυρτmz(mxA^myB^)


Để chứng minh thêm về tính chính xác của các công thức này, chúng tôi có thể so sánh câu trả lời của họ với câu trả lời của người giải bình phương nhỏ nhất, lmhàm trong R.

#
# Generate trivariate data.
#
library(MASS)
set.seed(17)
n <- 20
mu <- 1:3
Sigma <- matrix(1, 3, 3)
Sigma[lower.tri(Sigma)] <- Sigma[upper.tri(Sigma)] <- c(.8, .5, .6)
xyz <- data.frame(mvrnorm(n, mu, Sigma))
names(xyz) <- c("x", "y", "z")
#
# Obtain the least squares coefficients.
#
beta.hat <- coef(lm(z ~ x + y, xyz))
#
# Compute the first two moments via `colMeans` and `cov`.
#
m <- colMeans(xyz)
sigma <- cov(xyz)
s <- sqrt(diag(sigma))
rho <- t(t(sigma/s)/s); rho <- as.vector(rho[lower.tri(rho)])
#
# Here are the least squares coefficient estimates in terms of the moments.
#
A.hat <- (rho[2] - rho[1]*rho[3]) / (1 - rho[1]^2) * s[3] / s[1]
B.hat <- (rho[3] - rho[1]*rho[2]) / (1 - rho[1]^2) * s[3] / s[2]
C.hat <- m[3] - m[1]*A.hat - m[2]*B.hat
#
# Compare the two solutions.
#
rbind(beta.hat, formulae=c(C.hat, A.hat, B.hat))

Đầu ra thể hiện hai hàng ước tính giống hệt nhau, như mong đợi:

         (Intercept)         x        y
beta.hat    1.522571 0.3013662 0.403636
formulae    1.522571 0.3013662 0.403636

2

Tìm thấy rồi...

A=(zx¯z¯x¯)(y2¯y¯2)(zy¯z¯y¯)(xy¯x¯y¯)(x2¯x¯2)(y2¯y¯2)(xy¯x¯y¯)2B=(x2¯x¯2)(zy¯z¯y¯)(zx¯z¯x¯)(xy¯x¯y¯)(x2¯x¯2)(y2¯y¯2)(xy¯x¯y¯)2C=z¯Ax¯By¯.

Tôi đã đưa ra câu trả lời thứ hai vì ma trận sẽ không phù hợp với một nhận xét.
pAt84

@MarcoB thiết lập một câu trả lời tại mathematica.stackexchange.com/questions/107426 rằng vẻ bề ngoài tương tự, vì vậy tôi nghĩ rằng chúng tôi tốt ở đây.
barrycarter 16/2/2016

0

Nhưng bạn nên hiểu nó! Hãy xem lại ma trận thiết kế của bạn (phương trình đầu tiên trang 4). Các phần tử được viết là (x, y).

Phần tử (3,1) = Phần tử (1,3)

Phần tử (2,1) = Phần tử (1,2)

Phần tử (3,2) = Phần tử (2,3)

và phần tử (3,3) là m.

Ma trận thiết kế thông thường của bạn phân giải thành (tất cả các khoản tiền được thay thế) Điều này thực sự giúp giải quyết mach dễ dàng hơn, đặc biệt nếu bạn nghĩ thêm một vài bước phía trước. Trong trường hợp bạn đã làm điều đó, bravo! Trong trường hợp bạn chưa đi, bạn đã không nhìn chằm chằm vào ma trận thiết kế đủ lâu.

(KLMLRSMSm)
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.