25/05/2018, 09:36

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

δ = ∑ i = 1 n y − a 0 − a 1 x 1 − a 2 x 2 − . . . − a m x m 2 = min size 12{δ= Sum cSub { size 8{i=1} } cSup { size 8{n} } { left (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} } right ) rSup { size 8{2} } ="min"} } {}

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
0