Phụ lục 4: Sơ đồ ứng dụng phương pháp hồi quy nhiều biến
Giả sử có n size 12{n} {} quan trắc đối với biến phụ thuộc y size 12{y} {} và các biến độc lập x1,x2,...,xm size 12{x rSub { size 8{1} } , x rSub { size 8{2} } , "." "." "." , x rSub { size 8{m} } } {}. Phương trình hồi quy được thiết lập như sau: ...
Giả sử có n size 12{n} {} quan trắc đối với biến phụ thuộc y size 12{y} {} và các biến độc lập x1,x2,...,xm size 12{x rSub { size 8{1} } , x rSub { size 8{2} } , "." "." "." , x rSub { size 8{m} } } {}. Phương trình hồi quy được thiết lập như sau:
y=a0+a1x1+a2x2+...+amxm size 12{y=a rSub { size 8{0} } +a rSub { size 8{1} } x rSub { size 8{1} } +a rSub { size 8{2} } x rSub { size 8{2} } + "." "." "." +a rSub { size 8{m} } x rSub { size 8{m} } } {}.
Các hệ số hồi quy ai(i=1,...,m) size 12{a rSub { size 8{i} } ( i=1, "." "." "." ,m ) } {} được chọn sao cho thỏa mãn
Lần lượt lấy đạo hàm biểu thức trên theo a0,a1,a2,...,am size 12{a rSub { size 8{0} } , a rSub { size 8{1} } , a rSub { size 8{2} } , "." "." "." ," "a rSub { size 8{m} } } {} và cho các đạo hàm bằng không, ta có hệ m+1 size 12{m+1} {} phương trình để xác định các hệ số a size 12{a} {}
na 0 + x 1 a 1 + x 2 a 2 + . . . + x m a m y x 1 a 0 + x 1 x 1 a 1 + x 2 x 1 a 2 + . . . + x m x 1 a m yx 1 x 2 a 0 + x 1 x 2 a 1 + x 2 x 2 a 2 + . . . + x m x 2 a m yx 2 . . . . . . . . . . . . . . . . . . x m a 0 + x 1 x m a 1 + x 2 x m a 2 + . . . + x m x m a m yx m size 12{ matrix { ital "na" rSub { size 8{0} } {} # +{} {} # left [x rSub { size 8{1} } right ] size 6{ }a rSub { size 8{1} } {} # +{} {} # left [x rSub { size 8{2} } right ] size 6{ }a rSub { size 8{2} } {} # +{} {} # "." "." "." {} # +{} {} # left [x rSub { size 8{m} } right ] size 6{ }a rSub { size 8{m} } {} # ={} {} # left [y right ] {} ## left [x rSub { size 8{1} } right ] size 6{ }a rSub { size 8{0} } {} # +{} {} # left [x rSub { size 8{1} } x rSub { size 8{1} } right ] size 6{ }a rSub { size 8{1} } {} # +{} {} # left [x rSub { size 8{2} } x rSub { size 8{1} } right ] size 6{ }a rSub { size 8{2} } {} # +{} {} # "." "." "." {} # +{} {} # left [x rSub { size 8{m} } x rSub { size 8{1} } right ] size 6{ }a rSub { size 8{m} } {} # ={} {} # left [ ital "yx" rSub { size 8{1} } right ] {} ## left [x rSub { size 8{2} } right ] size 6{ }a rSub { size 8{0} } {} # +{} {} # left [x rSub { size 8{1} } x rSub { size 8{2} } right ] size 6{ }a rSub { size 8{1} } {} # +{} {} # left [x rSub { size 8{2} } x rSub { size 8{2} } right ] size 6{ }a rSub { size 8{2} } {} # +{} {} # "." "." "." {} # +{} {} # left [x rSub { size 8{m} } x rSub { size 8{2} } right ] size 6{ }a rSub { size 8{m} } {} # ={} {} # left [ ital "yx" rSub { size 8{2} } right ] {} ## "." "." "." {} # {} # "." "." "." {} # {} # "." "." "." {} # {} # "." "." "." {} # {} # "." "." "." {} # {} # "." "." "." {} ## left [x rSub { size 8{m} } right ] size 6{ }a rSub { size 8{0} } {} # +{} {} # left [x rSub { size 8{1} } x rSub { size 8{m} } right ] size 6{ }a rSub { size 8{1} } {} # +{} {} # left [x rSub { size 8{2} } x rSub { size 8{m} } right ] size 6{ }a rSub { size 8{2} } {} # +{} {} # "." "." "." {} # +{} {} # left [x rSub { size 8{m} } x rSub { size 8{m} } right ] size 6{ }a rSub { size 8{m} } {} # ={} {} # left [ ital "yx" rSub { size 8{m} } right ]{} } } {}
(33)
Hệ phương trình này gọi là hệ phương trình chính tắc để xác định các hệ số hồi quy. Dưới dạng ma trận ta viết hệ này như sau:
n x 1 x 2 . . . x m x 1 x 1 x 1 x 2 x 1 . . . x m x 1 x 2 x 1 x 2 x 2 x 2 . . . x m x 2 . . . . . . . . . . . . . . . x m x 1 x m x 2 x m . . . x m x m . a 0 a 1 a 2 . . . a m = b 0 b 1 b 2 . . . b m size 12{ left ( matrix { n {} # left [x rSub { size 8{1} } right ] {} # left [x rSub { size 8{2} } right ] {} # "." "." "." {} # left [x rSub { size 8{m} } right ] {} ## left [x rSub { size 8{1} } right ] {} # left [x rSub { size 8{1} } x rSub { size 8{1} } right ] {} # left [x rSub { size 8{2} } x rSub { size 8{1} } right ] {} # "." "." "." {} # left [x rSub { size 8{m} } x rSub { size 8{1} } right ] {} ## left [x rSub { size 8{2} } right ] {} # left [x rSub { size 8{1} } x rSub { size 8{2} } right ] {} # left [x rSub { size 8{2} } x rSub { size 8{2} } right ] {} # "." "." "." {} # left [x rSub { size 8{m} } x rSub { size 8{2} } right ] {} ## "." "." "." {} # "." "." "." {} # "." "." "." {} # "." "." "." {} # "." "." "." {} ## left [x rSub { size 8{m} } right ] {} # left [x rSub { size 8{1} } x rSub { size 8{m} } right ] {} # left [x rSub { size 8{2} } x rSub { size 8{m} } right ] {} # "." "." "." {} # left [x rSub { size 8{m} } x rSub { size 8{m} } right ]{} } right )" " "." " " left ( matrix { a rSub { size 8{0} } {} ## a rSub { size 8{1} } {} ## a rSub { size 8{2} } {} ## "." "." "." {} ## a rSub { size 8{m} } } right )" "=" " left ( matrix { b rSub { size 8{0} } {} ## b rSub { size 8{1} } {} ## b rSub { size 8{2} } {} ## "." "." "." {} ## b rSub { size 8{m} } } right )} {}
(34)
với dấu size 12{ left [" " right ]} {} ký hiệu phép lấy tổng ∑1n. size 12{ Sum cSub { size 8{1} } cSup { size 8{n} } { "." } } {}
Để tìm các hệ số hồi quy a0,a1,a2,...,am size 12{a rSub { size 8{0} } , a rSub { size 8{1} } , a rSub { size 8{2} } , "." "." "." ," "a rSub { size 8{m} } } {} ta phải giải hệ phương trình chính tắc theo phương pháp loại biến Gauss hoặc phương pháp căn bậc hai đã mô tả trong phụ lục 2 vì ma trận hệ số của các phương trình chính tắc là ma trận đối xứng. Dưới đây dẫn hai thủ tục hỗ trợ cho việc lập hệ phương trình đại số tuyến tính chuẩn tắc (34) - SUBROUTINE LHPTCT và giải hệ phương trình đó bằng phương pháp loại biến Gauss - SUBROUTINE GAUSS.
SUBROUTINE LHPTCT (Y, X, A, N, M) | |
INTEGER N, M, I, J, K | |
REAL Y (10000), X (10000, 50), A (0 : 50, 0 : 51) | |
A (0, 0) = N | |
DO J = 1, M | |
A (0, J) = 0.0 | |
DO K = 1, N | |
A (0, J) = A (0, J) + X (K, J) | |
END DO | |
END DO | |
A (0, M + 1) = 0.0 | |
DO K = 1, N | |
A (0, M + 1) = A (0, M + 1) + Y (K) | |
END DO | |
DO I = 1, M | |
A (I, M + 1) = 0.0 | |
DO K = 1, N | |
A (I, M + 1) = A (I, M + 1) + Y (K) * X(K, I) | |
END DO | |
END DO | |
DO I = 1, M | |
DO J = I, M | |
A (I, J) = 0.0 | |
DO K = 1, N | |
A (I, J) = A (I, J) + X (K, I) * X (K, J) | |
END DO | |
ENDDO | |
ENDDO | |
DO I = 1, M | |
DO J = 0, I - 1 | |
A (I, J) = A (J, I) | |
END DO | |
END DO | |
RETURN | |
END | |
SUBROUTINE GAUSS (M, A, X) | |
INTEGER M | |
REAL A (0 : 50, 0 : 51), X (0 : 50) | |
DO I = 0, M - 1 | |
K = I | |
AMAX = ABS (A (K, K)) | |
DO J = I + 1, M | |
R = ABS (A (J, I)) | |
IF (AMAX .LT. R) THEN | |
AMAX = R | |
K = J | |
END IF | |
END DO | |
IF (K .NE. I) THEN | |
DO J = I, M + 1 | |
AMAX = A (I, J) | |
A (I, J) =A (K, J) | |
A (K, J) = AMAX | |
END DO | |
END IF | |
DO J = I + 1, M + 1 | |
A (I, J) = A (I, J) / A (I, I) | |
END DO | |
DO J = I + 1, M | |
DO K = I + 1, M + 1 | |
A (J, K) = A (J, K) - A (J, I) * A (I, K) | |
END DO | |
END DO | |
END DO | |
X (M) = A (M, M + 1) / A (M, M) | |
DO I = M - 1, 0, -1 | |
X (I) = A (I, M + 1) | |
DO J = I + 1, M | |
X (I) = X (I) - A (I, J) * X (J) | |
END DO | |
END DO | |
RETURN | |
END |