Nền tảnggiáo trình tự học
Chương 423 phút đọcMô hình tuyến tính

4Hồi quy tuyến tính#

Ta bắt đầu với một bài toán quen thuộc: định giá căn hộ. Bảng dưới ghi diện tích và giá bán của bốn căn hộ trong cùng một khu, chính là bốn căn hộ của ma trận dữ liệu ở Mục 2.1. Đây là số liệu minh hoạ, chọn tròn để tính tay được.

Căn hộ Diện tích xx (m²) Giá yy (tỉ đồng)
A 40 1,5
B 60 2,1
C 80 2,4
D 100 3,0

Nếu được hỏi một căn 90 m² trong khu này đáng giá bao nhiêu, hầu hết mọi người sẽ trả lời khoảng 2,7 tỉ, vì giá tăng gần đều theo diện tích. Hồi quy tuyến tính biến trực giác "tăng gần đều" đó thành một quy trình chính xác: chọn một đường thẳng, đo xem đường thẳng khớp dữ liệu tới mức nào, rồi tìm đường khớp nhất. Đây là thuật toán học có giám sát đơn giản nhất, nhưng đáng học kỹ vì bài toán có nghiệm dạng đóng. Nhờ vậy, những hiện tượng sẽ gặp lại ở mọi mô hình phức tạp hơn, như overfitting, regularization, ảnh hưởng của số điều kiện và đánh đổi độ chệch – phương sai, đều quan sát được trực tiếp mà không bị lẫn với câu hỏi thuật toán tối ưu có hội tụ hay không.

4.1Bài toán hồi quy tuyến tính#

Mô hình đơn giản nhất cho bảng trên là một đường thẳng,

f(x)=w0+w1x.f(x) = w_0 + w_1 x.

Hệ số w1w_1 là phần giá tăng thêm khi diện tích tăng 1 m², còn w0w_0 là điểm đường thẳng cắt trục tung. Học từ dữ liệu ở đây nghĩa là chọn w0w_0 và w1w_1. Nhưng trước khi chọn, ta cần một cách nói đường thẳng nào tốt hơn đường thẳng nào.

Với mỗi căn hộ, đường thẳng mắc một sai số yi−f(xi)y_i - f(x_i), tức chênh lệch giữa giá thật và giá dự đoán. Cộng thẳng các sai số thì không dùng được, vì sai số dương và sai số âm triệt tiêu nhau: một đường dự đoán quá cao cho nửa số căn và quá thấp cho nửa còn lại vẫn có thể cho tổng bằng 0. Cách phổ biến nhất là lấy trung bình bình phương sai số,

L(w0,w1)=1n∑i=1n(yi−w0−w1xi)2.L(w_0, w_1) = \frac1n\sum_{i=1}^{n}\big(y_i - w_0 - w_1 x_i\big)^2.

Bình phương làm mọi sai số thành số dương, phạt sai số lớn nặng hơn nhiều so với sai số nhỏ, và cho một hàm trơn, dễ lấy đạo hàm. Còn vì sao là bình phương mà không phải trị tuyệt đối thì có một câu trả lời chính xác hơn, trình bày ở Mục 10.2: bình phương sai số là hệ quả của giả thiết nhiễu có phân phối Gauss.

Có hàm LL, ta so sánh được các đường thẳng bằng số. Đường f(x)=0,03xf(x) = 0{,}03x, tức giá 30 triệu đồng mỗi mét vuông, dự đoán 1,2; 1,8; 2,4 và 3,0 tỉ cho bốn căn. Sai số là 0,3; 0,3; 0 và 0, nên L=(0,09+0,09)/4=0,045L = (0{,}09 + 0{,}09)/4 = 0{,}045. Đường f(x)=0,6+0,024xf(x) = 0{,}6 + 0{,}024x dự đoán 1,56; 2,04; 2,52 và 3,0 tỉ, với sai số −0,06-0{,}06; 0,060{,}06; −0,12-0{,}12 và 00, nên L=0,0216/4=0,0054L = 0{,}0216/4 = 0{,}0054, nhỏ hơn khoảng tám lần. Đường thứ hai tốt hơn hẳn. Câu hỏi còn lại là có đường nào tốt hơn nữa không, và đường tốt nhất là đường nào. Mục 4.2 trả lời câu hỏi đó.

Trước khi giải, ta viết bài toán ở dạng tổng quát. Giá căn hộ còn phụ thuộc số phòng, tầng và khoảng cách tới trung tâm, nên mỗi điểm dữ liệu thường là một vector đặc trưng xi∈Rdx_i \in \mathbb{R}^d chứ không phải một số. Để công thức gọn, ta thêm vào mỗi xix_i một thành phần hằng bằng 1 ở vị trí đầu. Khi đó hệ số chặn trở thành trọng số w0w_0 ứng với thành phần này, và mô hình viết được là fw(x)=w⊤xf_w(x) = w^\top x. Xếp các xix_i thành các hàng của ma trận XX và các nhãn thành vector yy, toàn bộ dự đoán trên tập dữ liệu là XwXw. Giáo trình dùng quy ước này ở mọi chỗ: cột đầu tiên của ma trận dữ liệu XX gồm toàn số 1.

Một cách tốt để nắm ký hiệu là tự kiểm tra kích thước. Với nn điểm dữ liệu, XX có nn hàng và dd cột, vector ww có dd thành phần, nên XwXw là vector nn chiều, cùng kích thước với yy, đúng như cần để so từng dự đoán với nhãn của nó. Trong ví dụ căn hộ, n=4n = 4, d=2d = 2, và hàng đầu tiên của XX là (1; 40)(1;\ 40).

Định nghĩa 4.1 (Hồi quy tuyến tính bình phương tối thiểu)

Với ma trận dữ liệu X∈Rn×dX \in \mathbb{R}^{n\times d} và vector nhãn y∈Rny \in \mathbb{R}^n, hồi quy tuyến tính tìm

w^=arg⁡min⁡wL(w),L(w)=1n∑i=1n(yi−w⊤xi)2=1n ∥y−Xw∥22.\begin{aligned} \hat w &= \arg\min_w L(w), \\ L(w) &= \frac1n\sum_{i=1}^{n}\big(y_i - w^\top x_i\big)^2 = \frac1n\,\|y - Xw\|_2^2. \end{aligned}

Phương pháp này còn gọi là bình phương tối thiểu thông thường (ordinary least squares, OLS).

Theo khung ở Hình 1, đây là đủ ba thành phần của một thuật toán học: mô hình là họ hàm tuyến tính w⊤xw^\top x, hàm mất mát là bình phương sai số, còn thuật toán tối ưu là cách tìm w^\hat w mà Mục 4.2 sẽ trình bày.

Bài toán còn có một cách hiểu hình học, sẽ dùng nhiều ở các mục sau. Khi ww chạy khắp Rd\mathbb{R}^d, vector dự đoán XwXw chạy khắp không gian cột của XX (Mục 2.1). Trong ví dụ căn hộ, yy là một vector trong R4\mathbb{R}^4, còn không gian cột là mặt phẳng hai chiều sinh bởi (1;1;1;1)(1; 1; 1; 1) và (40;60;80;100)(40; 60; 80; 100): dự đoán của mọi đường thẳng đều nằm trên mặt phẳng này. Cực tiểu ∥y−Xw∥2\|y - Xw\|_2 nghĩa là tìm điểm trên mặt phẳng gần yy nhất, tức hình chiếu vuông góc của yy lên không gian cột. Vector phần dư r=y−Xw^r = y - X\hat w vì thế phải vuông góc với mọi cột của XX.

4.2Phương trình chuẩn#

Ta tìm đường thẳng tốt nhất cho ví dụ căn hộ trước, rồi mới tổng quát hoá. Hàm L(w0,w1)L(w_0, w_1) là hàm bậc hai của hai biến và có dạng một cái chén: đi xa theo hướng nào nó cũng tăng. Đáy chén là điểm mà đạo hàm riêng theo cả hai biến đều bằng 0.

Đạo hàm theo w0w_0 cho

∂L∂w0=−2n∑i=1n(yi−w0−w1xi)=0⟺yˉ=w0+w1xˉ,\frac{\partial L}{\partial w_0} = -\frac2n\sum_{i=1}^{n}\big(y_i - w_0 - w_1 x_i\big) = 0 \quad\Longleftrightarrow\quad \bar y = w_0 + w_1 \bar x,

với xˉ\bar x và yˉ\bar y là trung bình của các xix_i và các yiy_i. Phương trình này đã cho biết một điều cụ thể: đường thẳng tốt nhất luôn đi qua điểm trung bình (xˉ,yˉ)(\bar x, \bar y) của dữ liệu. Đạo hàm theo w1w_1 cho

∂L∂w1=−2n∑i=1nxi(yi−w0−w1xi)=0.\frac{\partial L}{\partial w_1} = -\frac2n\sum_{i=1}^{n}x_i\big(y_i - w_0 - w_1 x_i\big) = 0.

Thay w0=yˉ−w1xˉw_0 = \bar y - w_1\bar x vào phương trình thứ hai, mỗi số hạng trong tổng trở thành xi[(yi−yˉ)−w1(xi−xˉ)]x_i\big[(y_i - \bar y) - w_1(x_i - \bar x)\big], và giải ra

w1=∑i(xi−xˉ)(yi−yˉ)∑i(xi−xˉ)2,w0=yˉ−w1xˉ.w_1 = \frac{\sum_i (x_i - \bar x)(y_i - \bar y)}{\sum_i (x_i - \bar x)^2}, \qquad w_0 = \bar y - w_1\bar x.

Ở bước cuối, thừa số xix_i đứng trước được thay bằng xi−xˉx_i - \bar x. Phép thay không làm đổi tử số và mẫu số, vì ∑ixˉ (yi−yˉ)=0\sum_i \bar x\,(y_i - \bar y) = 0 và ∑ixˉ (xi−xˉ)=0\sum_i \bar x\,(x_i - \bar x) = 0.

Công thức có một cách đọc quen thuộc từ Chương 3. Chia cả tử và mẫu cho n−1n - 1, hệ số góc chính là hiệp phương sai mẫu giữa xx và yy chia cho phương sai mẫu của xx; với bốn căn hộ, đó là tỉ số 16/666,716/666{,}7 ở Mục 3.3. Hệ số góc lớn khi yy biến thiên cùng chiều với xx và mạnh so với độ phân tán của xx.

Với bốn căn hộ, xˉ=70\bar x = 70 và yˉ=2,25\bar y = 2{,}25. Các độ lệch xi−xˉx_i - \bar x là −30-30; −10-10; 1010; 3030 và các độ lệch yi−yˉy_i - \bar y là −0,75-0{,}75; −0,15-0{,}15; 0,150{,}15; 0,750{,}75, nên tử số bằng 22,5+1,5+1,5+22,5=4822{,}5 + 1{,}5 + 1{,}5 + 22{,}5 = 48 và mẫu số bằng 900+100+100+900=2 000900 + 100 + 100 + 900 = 2\,000. Do đó w1=0,024w_1 = 0{,}024 tỉ đồng mỗi mét vuông, tức 24 triệu đồng, và w0=2,25−0,024⋅70=0,57w_0 = 2{,}25 - 0{,}024 \cdot 70 = 0{,}57. Đường thẳng này dự đoán 1,53; 2,01; 2,49 và 2,97 tỉ cho bốn căn, với sai số −0,03-0{,}03; 0,090{,}09; −0,09-0{,}09; 0,030{,}03 và L=0,018/4=0,0045L = 0{,}018/4 = 0{,}0045, nhỏ hơn cả đường thứ hai ở Mục 4.1. Căn 90 m² được định giá 0,57+0,024⋅90=2,730{,}57 + 0{,}024 \cdot 90 = 2{,}73 tỉ, khớp với ước đoán bằng mắt ở đầu chương.

Hệ số chặn w0=0,57w_0 = 0{,}57 tỉ không có nghĩa một căn hộ 0 m² đáng giá 570 triệu đồng. Nó chỉ là điểm đường thẳng cắt trục tung, cần có để đường thẳng khớp dữ liệu trong khoảng 40 tới 100 m². Dùng mô hình cho những điểm nằm xa ngoài khoảng dữ liệu đã thấy, gọi là ngoại suy (extrapolation), luôn cần thận trọng.

Cách làm vừa rồi tổng quát hoá trực tiếp sang dd đặc trưng nhờ ký hiệu ma trận. Viết bình phương chuẩn thành tích vô hướng rồi khai triển như khai triển (a−b)2(a - b)^2:

L(w)=1n(y−Xw)⊤(y−Xw)=1n(y⊤y−2 w⊤X⊤y+w⊤X⊤X w).\begin{aligned} L(w) &= \frac1n(y - Xw)^\top(y - Xw) \\ &= \frac1n\big(y^\top y - 2\,w^\top X^\top y + w^\top X^\top X\,w\big). \end{aligned}

Hai số hạng chéo y⊤Xwy^\top X w và w⊤X⊤yw^\top X^\top y gộp được làm một vì chúng là cùng một số: một số thực bằng chuyển vị của chính nó. Áp dụng hai quy tắc đạo hàm ở Mục 2.7, ∇w(w⊤a)=a\nabla_w(w^\top a) = a và ∇w(w⊤Aw)=2Aw\nabla_w(w^\top A w) = 2Aw với AA đối xứng, ta được

∇wL=1n(2X⊤X w−2X⊤y)=−2nX⊤(y−Xw).\nabla_w L = \frac1n\big(2X^\top X\,w - 2X^\top y\big) = -\frac{2}{n}X^\top(y - Xw).

Cho gradient bằng 0:

X⊤X w=X⊤y.X^\top X\,w = X^\top y.

Hệ phương trình tuyến tính này gọi là phương trình chuẩn (normal equations). Nó có đúng dd phương trình và dd ẩn, bất kể có bao nhiêu điểm dữ liệu. Với một đặc trưng, hai phương trình của nó chính là hai phương trình đạo hàm riêng ở trên.

Viết dưới dạng X⊤(y−Xw)=0X^\top(y - Xw) = 0, phương trình chuẩn giải thích được tên gọi của nó và cho thấy nghiệm có tính chất gì. Đặt r=y−Xwr = y - Xw là vector phần dư. Thành phần thứ jj của X⊤rX^\top r bằng ∑ixijri\sum_i x_{ij} r_i, tích vô hướng giữa cột đặc trưng thứ jj và phần dư. Phương trình chuẩn đòi hỏi mọi tích vô hướng này bằng 0, tức phần dư vuông góc (normal) với mọi cột của XX, đúng như cách hiểu hình học ở Mục 4.1. Theo cách nhìn thống kê, ở nghiệm tối ưu phần dư không còn tương quan tuyến tính với đặc trưng nào. Nếu còn, ta chưa ở điểm tốt nhất: chỉnh trọng số theo đặc trưng đó còn giảm được sai số. Riêng cột hằng số cho ∑iri=0\sum_i r_i = 0, nên với mọi mô hình có hệ số chặn, tổng phần dư bằng 0. Bốn sai số −0,03-0{,}03; 0,090{,}09; −0,09-0{,}09; 0,030{,}03 ở ví dụ căn hộ đúng là có tổng bằng 0.

Định lý 4.1 (Nghiệm của bình phương tối thiểu)

Nếu XX đủ hạng cột thì X⊤XX^\top X khả nghịch và bài toán ở Định nghĩa 4.1 có nghiệm duy nhất

w^=(X⊤X)−1X⊤y.\hat w = (X^\top X)^{-1}X^\top y.

Nghiệm này là cực tiểu chứ không phải cực đại hay điểm yên ngựa, vì ma trận Hessian của LL bằng 2nX⊤X\tfrac{2}{n}X^\top X, nửa xác định dương theo Mục 2.5. Do đó LL là hàm lồi và mọi điểm có gradient bằng 0 đều là cực tiểu toàn cục. Khi XX đủ hạng cột, Hessian xác định dương và cực tiểu là duy nhất. Chương 11 trình bày tính lồi một cách đầy đủ.

Ví dụ 4.1

Với bốn căn hộ ở đầu chương, ma trận dữ liệu và các tích cần thiết là

X=(1401601801100),X⊤X=(428028021 600),X⊤y=(9678).\begin{gathered} X = \begin{pmatrix}1&40\\1&60\\1&80\\1&100\end{pmatrix}, \\ X^\top X = \begin{pmatrix}4&280\\280&21\,600\end{pmatrix}, \qquad X^\top y = \begin{pmatrix}9\\678\end{pmatrix}. \end{gathered}

Định thức của X⊤XX^\top X là 4⋅21 600−2802=8 0004 \cdot 21\,600 - 280^2 = 8\,000, nên

w^=18 000(21 600−280−2804)(9678)=18 000(4 560192)=(0,570,024),\begin{aligned} \hat w &= \frac{1}{8\,000}\begin{pmatrix}21\,600&-280\\-280&4\end{pmatrix}\begin{pmatrix}9\\678\end{pmatrix} \\ &= \frac{1}{8\,000}\begin{pmatrix}4\,560\\192\end{pmatrix} = \begin{pmatrix}0{,}57\\0{,}024\end{pmatrix}, \end{aligned}

trùng với kết quả tính bằng trung bình, hiệp phương sai và phương sai ở trên.

Trên dữ liệu lớn hơn, ta có thể kiểm tra rằng các cách tính khác nhau cho cùng một nghiệm. Thí nghiệm trong code/nentang/experiments.py sinh 200 điểm với bốn hệ số thật (2;−1,5;0,8;3)(2; -1{,}5; 0{,}8; 3) cộng nhiễu, rồi giải bằng ba cách.

Cách giải w0w_0 w1w_1 w2w_2 w3w_3
Phương trình chuẩn 1,9906 −1,4985 0,7992 2,9749
Giả nghịch đảo Moore–Penrose 1,9906 −1,4985 0,7992 2,9749
lstsq (phân tích QR/SVD) 1,9906 −1,4985 0,7992 2,9749

Ba cách lệch nhau lớn nhất 1,2×10−151{,}2 \times 10^{-15}, tức bằng nhau tới sai số làm tròn của máy tính. Các hệ số ước lượng cũng gần hệ số thật, và sai lệch còn lại là do nhiễu.

Lưu ý

Công thức (X⊤X)−1X⊤y(X^\top X)^{-1}X^\top y dùng để suy luận, không nên dùng để tính trong mã. Theo Mục 2.6, κ(X⊤X)=κ(X)2\kappa(X^\top X) = \kappa(X)^2, nên lập ma trận X⊤XX^\top X làm mất khoảng gấp đôi số chữ số có nghĩa so với làm việc trực tiếp với XX. Hàm np.linalg.lstsq giải bài toán bằng phân tích SVD của XX và tránh được vấn đề này.

4.3Trường hợp ma trận X⊤XX^\top X suy biến#

Định lý 4.1 cần một điều kiện: XX đủ hạng cột, tức không cột nào biểu diễn được qua các cột còn lại. Theo Mục 2.5, đó cũng là điều kiện để X⊤XX^\top X khả nghịch. Trong thực tế có hai tình huống khiến điều kiện này không thoả. Tình huống thứ nhất là số đặc trưng lớn hơn số điểm dữ liệu (d>nd > n): hạng của XX không vượt quá n<dn < d, nên XX không thể đủ hạng cột. Tình huống thứ hai là có đặc trưng phụ thuộc tuyến tính vào các đặc trưng khác. Nếu bảng căn hộ có thêm cột diện tích tính bằng feet vuông, cột đó đúng bằng 10,764 lần cột diện tích tính bằng mét vuông, và dữ liệu không có cách nào tách ảnh hưởng của hai cột ra khỏi nhau. Một trường hợp hay gặp hơn là mã hoá one-hot một biến hạng mục có KK giá trị thành đủ KK cột trong khi vẫn giữ cột hằng số, vì tổng KK cột one-hot đúng bằng cột hằng số; cách xử lý thông thường là bỏ một cột one-hot, hoặc bỏ cột hằng số.

Thí nghiệm sau sao chép một cột của XX rồi thử giải.

Văn bản
hang cua X = 4 nhung X co 5 cot  ->  X^T X suy bien
  solve: BAO LOI 'Singular matrix'
  pinv : van cho mot nghiem, chuan ||w|| = 3.8176
  mot nghiem khac cung du bao y het: ||w|| = 4.0711 (sai so du bao lech 0.00e+00)

Dòng cuối cho thấy bản chất của trường hợp suy biến. Bài toán không vô nghiệm mà có vô số nghiệm cho cùng một dự đoán: cộng một lượng tt vào hệ số của cột gốc và trừ đi đúng lượng đó ở cột bản sao thì XwXw không đổi. Tập nghiệm là một đường thẳng, tổng quát là một không gian affine, trong không gian tham số.

Khi có nhiều nghiệm, ta cần một quy tắc chọn. Giả nghịch đảo Moore–Penrose X+X^{+} chọn nghiệm có chuẩn ℓ2\ell_2 nhỏ nhất: X+yX^{+}y là nghiệm của phương trình chuẩn có ∥w∥2\|w\|_2 nhỏ nhất trong mọi nghiệm. Trong thí nghiệm, nghiệm của pinv có chuẩn 3,8176, nhỏ hơn nghiệm khác có chuẩn 4,0711 dù hai nghiệm cho cùng dự đoán. Quy tắc này hợp lý, và Mục 9.2 sẽ cho thấy nó trùng với giới hạn của hồi quy ridge khi hệ số regularization λ\lambda tiến về 0 từ phía dương.

4.4Đa cộng tuyến#

Phụ thuộc tuyến tính chính xác dễ phát hiện, vì thuật toán giải báo lỗi. Khó hơn là trường hợp các cột gần phụ thuộc tuyến tính mà không phụ thuộc hẳn, như diện tích sàn xây dựng và diện tích sử dụng của một căn hộ: hai con số gần tỉ lệ với nhau nhưng không đúng tỉ lệ. Khi đó XX vẫn đủ hạng cột và nghiệm vẫn duy nhất, nhưng không ổn định. Hiện tượng này gọi là đa cộng tuyến (multicollinearity). Thí nghiệm sau dựng hai đặc trưng có hệ số tương quan ρ\rho tăng dần. Với mỗi ρ\rho, ma trận XX được giữ cố định và nhãn được sinh lại 300 lần với nhiễu khác nhau, để đo xem hệ số và dự đoán dao động bao nhiêu.

Hình 2
Hình 2. Trái: số điều kiện của X⊤XX^\top X theo mức tương quan giữa hai cột. Phải: độ lệch chuẩn của hệ số w1w_1 và của dự đoán qua 300 lần sinh lại nhiễu.
Tương quan hai cột cond(X⊤X)\mathrm{cond}(X^\top X) Độ lệch chuẩn của w1w_1 Độ lệch chuẩn của dự đoán
0,000 1,3 0,0324 0,0586
0,900 20,0 0,0772 0,0588
0,990 180,3 0,2373 0,0590
0,999 1958,9 0,8196 0,0585

Khi tương quan tăng từ 0 lên 0,999, độ lệch chuẩn của hệ số w1w_1 tăng khoảng 25 lần, trong khi độ lệch chuẩn của dự đoán gần như không đổi, từ 0,0586 xuống 0,0585.

Nguyên nhân nằm ở chỗ khi hai cột gần trùng nhau, dữ liệu chỉ xác định được tổng ảnh hưởng của hai đặc trưng, còn cách chia ảnh hưởng đó cho từng đặc trưng thì gần như tuỳ ý. Tổng ảnh hưởng ổn định nên dự đoán ổn định; cách chia phụ thuộc vào nhiễu nên từng hệ số dao động mạnh.

Mức tăng này có thể dự đoán bằng lý thuyết. Với mô hình có hệ số chặn, phương sai của hệ số wjw_j bằng phương sai khi các đặc trưng không tương quan nhân với hệ số phóng đại phương sai (variance inflation factor)

VIFj=11−Rj2,\text{VIF}_j = \frac{1}{1 - R_j^2},

trong đó Rj2R_j^2 là hệ số xác định khi hồi quy đặc trưng jj theo các đặc trưng còn lại. Với hai đặc trưng có tương quan ρ\rho thì Rj2=ρ2R_j^2 = \rho^2, nên độ lệch chuẩn của hệ số tăng theo VIF=1/1−ρ2\sqrt{\text{VIF}} = 1/\sqrt{1-\rho^2}, tức khoảng 2,3; 7,1 và 22,4 lần tại ρ=0,9\rho = 0{,}9; 0,990{,}99; 0,9990{,}999. Số đo trong bảng là 2,4; 7,3 và 25,3 lần. Chênh lệch nhỏ đến từ việc mỗi hàng dùng một ma trận XX sinh ngẫu nhiên riêng, nên tương quan mẫu và phương sai mẫu của các cột không đúng bằng giá trị danh nghĩa.

Như vậy đa cộng tuyến là vấn đề của việc diễn giải hệ số, không phải của dự đoán. Nếu mô hình chỉ dùng để dự đoán trên dữ liệu có cùng cấu trúc tương quan, không cần xử lý gì. Nếu cần đọc hệ số để kết luận "đặc trưng này ảnh hưởng bao nhiêu", các hệ số đó không đáng tin, và cách xử lý là dùng hồi quy ridge (Chương 9), gộp các đặc trưng tương quan thành một, hoặc bỏ bớt đặc trưng. Quy tắc kinh nghiệm thường dùng là VIF lớn hơn 10 cho thấy đa cộng tuyến đáng kể.

4.5Các giả định của mô hình#

Phương pháp bình phương tối thiểu luôn cho ra một nghiệm, nhưng việc diễn giải nghiệm đó, như khoảng tin cậy của hệ số hay kiểm định ý nghĩa thống kê, dựa trên ba giả định.

Giả định đầu tiên là mô hình tuyến tính theo tham số, tức kỳ vọng của yy là hàm tuyến tính của ww. Cần chú ý là tuyến tính theo tham số chứ không nhất thiết theo đầu vào: y=w0+w1x+w2x2y = w_0 + w_1 x + w_2 x^2 vẫn là hồi quy tuyến tính vì nó tuyến tính theo ww, chỉ cần coi x2x^2 là một đặc trưng mới. Để kiểm tra, ta vẽ phần dư theo giá trị dự đoán; nếu thấy dạng cong có hệ thống thì giả định bị vi phạm và cần thêm đặc trưng phi tuyến. Chẳng hạn, nếu giá căn hộ tăng nhanh dần theo diện tích, một đường thẳng sẽ dự đoán thấp ở hai đầu và cao ở giữa, và đồ thị phần dư có dạng chữ U.

Giả định thứ hai là phương sai của nhiễu không đổi. Độ lớn của nhiễu thay đổi theo xx, hiện tượng gọi là phương sai thay đổi, rất hay gặp với dữ liệu tiền tệ: sai số dự đoán giá một căn nhà đắt lớn hơn sai số với căn nhà rẻ. Khi đó bình phương tối thiểu vẫn cho ước lượng không chệch, nhưng không còn là ước lượng có phương sai nhỏ nhất, và các khoảng tin cậy tính theo công thức chuẩn bị sai. Cách xử lý thường dùng là lấy logarit của yy, hoặc dùng bình phương tối thiểu có trọng số.

Giả định thứ ba là các quan sát độc lập. Dữ liệu chuỗi thời gian hầu như luôn vi phạm giả định này, vì sai số ở các thời điểm liền nhau thường tương quan.

Giả định thứ hai và thứ ba không ảnh hưởng tới giá trị của w^\hat w, mà ảnh hưởng tới độ tin cậy ta gán cho nó. Khi mục tiêu chỉ là dự đoán, vi phạm hai giả định này ít nghiêm trọng hơn; khi mục tiêu là suy luận thống kê về hệ số, chúng cần được kiểm tra.

4.6Tóm tắt#

Hồi quy tuyến tính chọn đường thẳng, hay tổng quát là siêu phẳng, có trung bình bình phương sai số nhỏ nhất. Với một đặc trưng, đường tốt nhất đi qua điểm trung bình của dữ liệu và có hệ số góc bằng hiệp phương sai chia phương sai; trong ví dụ căn hộ, hệ số góc là 24 triệu đồng mỗi mét vuông. Với nhiều đặc trưng, cho gradient bằng 0 được phương trình chuẩn X⊤Xw=X⊤yX^\top X w = X^\top y, nói rằng phần dư vuông góc với mọi cột của XX, tức Xw^X\hat w là hình chiếu vuông góc của yy lên không gian cột. Phương trình có nghiệm duy nhất khi XX đủ hạng cột; trong mã nên giải bằng lstsq thay vì lập X⊤XX^\top X, vì số điều kiện bị bình phương. Khi XX không đủ hạng cột, bài toán có vô số nghiệm cho cùng dự đoán, và giả nghịch đảo chọn nghiệm có chuẩn nhỏ nhất. Khi các cột gần phụ thuộc tuyến tính, hệ số dao động mạnh, gấp khoảng 25 lần ở tương quan 0,999 trong thí nghiệm, trong khi dự đoán gần như không đổi; hệ số phóng đại phương sai dự đoán được mức tăng này. Việc diễn giải hệ số còn dựa trên các giả định về tính tuyến tính, phương sai không đổi và tính độc lập của nhiễu.

Hồi quy tuyến tính giải được bằng một công thức, nhưng công thức đó đòi hỏi giải một hệ dd phương trình, còn hầu hết các mô hình khác không có công thức nào cả. Chương 5 trình bày phương pháp lặp được dùng cho gần như mọi mô hình học máy: gradient descent.


Tự kiểm tra

4 câu. Chọn đáp án để xem ngay lời giải thích.

  1. 1Khi nào phương trình chuẩn không có nghiệm duy nhất?

  2. 2Khi X⊤XX^\top X suy biến, bài toán bình phương tối thiểu có đặc điểm gì?

  3. 3Đa cộng tuyến ảnh hưởng chủ yếu tới điều gì?

  4. 4Trong hồi quy tuyến tính có hệ số chặn, tổng các phần dư trên tập huấn luyện bằng bao nhiêu?

Đã trả lời 0/4