Chuyển đến nội dung
MINH VO Ghi chép từ công việc
của một kỹ sư tại Việt Nam
Cơ bản11 phút đọc

Đọc phần dư trước khi thêm mô hình khác

Tự khớp đường thẳng, phân biệt độ cong với độ phân tán và kiểm tra vì sao điểm có ảnh hưởng lớn vẫn có phần dư nhỏ.

Các điểm màu ô liu và cam được phân chia bởi một đường cong, kèm một nhóm điểm nhỏ trong khung

Phần dư là nhãn quan sát trừ dự đoán đã khớp. Vẽ phần dư theo đầu vào hoặc giá trị dự đoán có thể làm lộ cấu trúc mà điểm số tổng hợp che khuất. Dạng cong gợi ý hàm trung bình còn thiếu cấu trúc; độ phân tán theo chiều dọc thay đổi gợi ý bất định phụ thuộc đầu vào.

Nếu bạn đã khớp một mô hình hồi quy và muốn hiểu các sai sót của nó, hãy bắt đầu từ phần dư trong đơn vị gốc.

Chẩn đoán này có giới hạn: nhiều nguyên nhân khác nhau có thể tạo hình dạng tương tự. Lỗi dữ liệu, biến bị bỏ sót, sự phụ thuộc và cách chia dữ liệu không phù hợp đều có thể tạo mẫu hình. Trước hết cần truy rõ mỗi điểm trên hình đại diện cho điều gì.

Khớp đường thẳng vào nhãn có dạng cong

Dùng năm quan sát giả định với x = -2, -1, 0, 1, 2 và y = 4, 1, 0, 1, 4. Nhãn bằng chính xác x². Khớp bình phương tối thiểu thông thường với hệ số chặn và một hạng tuyến tính theo x.

Trung bình của x bằng không, trung bình của y bằng 2. Hệ số góc bằng tổng tích chéo đã trừ trung bình chia cho tổng bình phương đầu vào đã trừ trung bình. Tính đối xứng làm tử số bằng không:

sum x_i (y_i - 2) = (-2)(2) + (-1)(-1) + 0(-2) + 1(-1) + 2(2)
                  = 0
slope = 0 / 10 = 0
intercept = 2

Đường đã khớp dự đoán 2 ở mọi nơi. Phần dư là 2, -1, -2, -1, 2. Tổng bằng không, đúng ràng buộc của bình phương tối thiểu có hệ số chặn trên tập huấn luyện. Tổng bằng không không có nghĩa phần dư không còn cấu trúc.

Đường ngang đã khớp tại 2 để lại phần dư 2, âm 1, âm 2, âm 1, 2 cho nhãn bậc hai trên đầu vào từ âm 2 đến 2.Mở ảnh kích thước đầy đủ ↗

Hai đầu nằm trên đường đã khớp, còn vùng giữa nằm dưới. Thêm đặc trưng x² giúp hồi quy tuyến tính theo tham số biểu diễn chính xác nhãn trong bộ giả định không nhiễu này. Mô hình tuyến tính theo hệ số dù đặc trưng là hàm phi tuyến của đầu vào ban đầu.

Tách cấu trúc trung bình khỏi cấu trúc nhiễu

Độ cong của ví dụ liên quan trung bình có điều kiện. Một mẫu hình khác liên quan độ phân tán phần dư. Hình dung có nhiều phép đo ở mỗi đầu vào, độ lệch chuẩn nhiễu bằng 1 gần không và bằng 4 ở hai biên, trong khi hàm trung bình đã được chỉ định đúng. Phần dư có thể trung bình gần không tại mọi đầu vào nhưng xòe rộng ra ở biên.

Hình quạt giả định ấy gợi ý phương sai không đồng nhất, tức phương sai nhiễu có điều kiện thay đổi theo đầu vào. Thêm hạng trung bình bậc hai không nhất thiết sửa được nó. Có thể cần mô hình phương sai có điều kiện, phép biến đổi có cơ sở từ đại lượng đích hoặc phương pháp bất định tính đến độ phân tán thay đổi.

Đừng tự tin suy các tính chất ấy từ năm quan sát đơn lẻ. Ví dụ nhỏ chỉ minh họa hình học. Với dữ liệu thực, cần quan sát lặp hoặc đủ bao phủ cục bộ để tách nhiễu khỏi cấu trúc hệ thống. Đường làm trơn phần dư cũng có thể khớp quá mức khi dữ liệu ít.

Phần dư huấn luyện chịu ràng buộc từ phép khớp

Bình phương tối thiểu chọn hệ số bằng nhãn huấn luyện, nên phần dư có quan hệ đại số với các cột đặc trưng được dùng. Khi có hệ số chặn, trung bình phần dư bằng không trong giới hạn độ chính xác số. Với thiết kế đầy hạng, phần dư bình phương tối thiểu trực giao với các cột của ma trận thiết kế.

Các quan hệ ấy không bảo đảm tổng quát hóa. Hãy vẽ cả sai số trên dữ liệu giữ riêng, với dự đoán tạo dưới cách chia phù hợp triển khai. Dự đoán chéo, trong đó mỗi quan sát được dự đoán bởi mô hình không học từ chính nó, có thể cho góc chẩn đoán rộng hơn.

Hướng dẫn mô hình tuyến tính của scikit-learn mô tả bình phương tối thiểu và lưu ý độ nhạy với các cột thiết kế tương quan. Biểu đồ phần dư bổ sung cho định nghĩa mô hình bằng cách cho thấy dự đoán đã để lại điều gì chưa giải thích.

Kiểm tra trục trước khi diễn giải mẫu hình

Phần dư theo thời gian có thể làm lộ dịch chuyển hoặc đặc trưng đến muộn. Phần dư theo dự đoán có thể làm lộ cấu trúc trung bình hay phương sai trong các khoảng đầu ra. Phần dư theo đặc trưng có thể gợi ý tương tác bị thiếu. Mỗi hình trả lời câu hỏi khác nhau, nên giữ rõ nhãn trục và đơn vị.

Đầu vào có đòn bẩy cao cần được chú ý vì có thể tác động mạnh lên phép khớp. Điểm nằm xa đám đầu vào còn lại có thể kéo đường về phía mình và cuối cùng có phần dư vừa phải. Độ lớn phần dư không tự đo ảnh hưởng. Hãy điều tra vị trí đầu vào, nguồn phép đo và tác động khi bỏ điểm khỏi phép khớp trước khi xem nó là ngoại lệ cần xóa.

Một điểm có thể kéo phần dư đã khớp của chính nó về gần không

Xét bốn quan sát được xây dựng: (0,0), (1,1), (2,2) và (10,20). Ba điểm đầu nằm chính xác trên y=x. Đầu vào cuối xa những điểm khác nên có thể tác động mạnh lên hệ số góc. Tính cả đường dùng bốn quan sát và đường chỉ dùng ba quan sát đầu.

from fractions import Fraction as F

def fit_line(xs, ys):
    xbar = sum(xs) / len(xs)
    ybar = sum(ys) / len(ys)
    spread = sum((x-xbar)**2 for x in xs)
    slope = sum((x-xbar)*(y-ybar) for x, y in zip(xs, ys)) / spread
    return ybar-slope*xbar, slope

xs = list(map(F, [0, 1, 2, 10]))
ys = list(map(F, [0, 1, 2, 20]))
a, b = fit_line(xs, ys)
predictions = [a+b*x for x in xs]
residuals = [y-p for y, p in zip(ys, predictions)]
print('full coefficients:', str(a), str(b))
print('full residuals:', [str(e) for e in residuals])
a_other, b_other = fit_line(xs[:-1], ys[:-1])
print('other-three prediction at 10:', str(a_other+b_other*xs[-1]))
print('left-out error:', str(ys[-1]-a_other-b_other*xs[-1]))
assert sum(residuals) == 0
assert sum(x*e for x, e in zip(xs, residuals)) == 0

Hệ số chặn của phép khớp đầy đủ là -250/251, hệ số góc là 521/251, xấp xỉ 2,076. Các phần dư là 250/251, -20/251, -290/251, 60/251. Điểm cuối chỉ có phần dư khoảng 0,239. Điểm tại x=2 có độ lớn phần dư cao hơn, khoảng 1,155, dù ba điểm đầu cùng nằm trên một đường thẳng hoàn hảo.

Bỏ điểm cuối khỏi phép khớp, ba điểm còn lại cho hệ số chặn không và hệ số góc một. Dự đoán của chúng tại x=10 là 10, nên sai số dự đoán quan sát bị bỏ bằng 10. Phần dư nhỏ của phép khớp đầy đủ đã che mức độ quan sát ấy giúp quyết định giá trị khớp của chính nó. Chỉ đặt ngưỡng phần dư sẽ hướng chú ý vào sai câu hỏi hình học.

Trong ví dụ toán học bốn điểm, đường dùng mọi điểm dịch gần quan sát xa tại 10,20; đường khớp từ ba điểm còn lại dự đoán 10 ở đầu vào đó.Mở ảnh kích thước đầy đủ ↗

Bỏ một điểm ở đây là cách chẩn đoán, không phải khuyến nghị xóa dữ liệu. Quan sát có thể hợp lệ và cho thấy quan hệ thay đổi ở đầu vào lớn. Nó cũng có thể sai nhãn, đơn vị hoặc dấu thời gian đặc trưng. Kiểm tra nguồn gốc và thu thêm ví dụ liên quan trước khi quyết định. Dự đoán từ ba điểm tại x=10 còn ngoại suy xa khỏi khoảng quan sát của chúng, từ không đến hai. Sai số lớn cho thấy độ nhạy, không chứng nhận y=x là quy luật thật tại mười.

Diễn giải đòn bẩy bằng một thay đổi cụ thể

Với hồi quy tuyến tính đơn có hệ số chặn, đòn bẩy của quan sát i là h_i = 1/n + (x_i-xbar)² / sum_j (x_j-xbar)². Nó phụ thuộc các đầu vào quan sát được, không phụ thuộc nhãn. Có thể suy trực tiếp một cách hiểu từ công thức khớp: nếu chỉ nhãn i đổi một đơn vị còn đầu vào giữ nguyên, giá trị khớp tại chính điểm ấy đổi h_i đơn vị.

Trong ví dụ này, đòn bẩy tại x=10 là 245/251, khoảng 0,976. Vì thế phần dư của nó chỉ đổi 6/251 khi nhãn đổi một đơn vị. Phần lớn thay đổi nhãn đã được hấp thụ vào dự đoán đã khớp. Đây là lý do một điểm xa có thể vừa có phần dư huấn luyện nhỏ, vừa ảnh hưởng đáng kể lên đường hồi quy.

Tài liệu ảnh hưởng OLS của statsmodels phân biệt đường chéo ma trận hat, các đại lượng phần dư và phép khớp bỏ từng quan sát. Chúng đo những tính chất liên quan nhưng khác nhau. Phép tính trên dùng số học vô hướng chính xác, không tuyên bố đã chạy thư viện ấy hoặc biến ngưỡng chẩn đoán thành quy tắc xóa dữ liệu.

Hàm giả định đầu vào hữu hạn có độ dài khớp nhau, ít nhất hai quan sát và độ phân tán đầu vào dương. Nếu mọi đầu vào bằng nhau, hệ số chặn và hệ số góc riêng không được xác định duy nhất. Bỏ một điểm cũng có thể khiến thiết kế suy biến. Nhận ra việc mất khả năng xác định tham số thay vì diễn giải lỗi chia cho không là bằng chứng điểm bị bỏ sai.

Bài tập tách ràng buộc phép khớp khỏi bằng chứng dự đoán

Chỉ đổi nhãn cuối từ 20 thành 21 rồi khớp lại. Xác minh giá trị khớp tại đó tăng 245/251, còn phần dư tăng 6/251. Sau đó khớp đủ bốn mô hình bỏ lần lượt từng điểm. Mỗi dự đoán chẩn đoán phải đến từ ba điểm khác, không phải mô hình đã dùng nhãn của chính điểm đang xem. Với bốn đầu vào khác nhau này, mọi thiết kế sau khi bỏ một điểm vẫn có độ phân tán dương.

Trở lại ví dụ bậc hai và cộng 5 vào mọi nhãn. Hệ số chặn tăng từ 2 lên 7, hệ số góc vẫn không, phần dư huấn luyện giữ nguyên chính xác. Vì vậy biểu đồ phần dư có thể che thay đổi mức chung của nhãn khi mô hình đã khớp lại theo nó. Nếu giữ nguyên đường cũ tại 2 rồi dùng trên nhãn đã dịch, mọi sai số dự đoán lại tăng thêm 5. Hãy nêu liệu mô hình trên hình đã được huấn luyện lại hay chưa trước khi quy việc phần dư đổi hoặc không đổi cho tính ổn định.

Cuối cùng, tạo hai quan sát ở mỗi x=-1,0,1 với nhãn x-2 và x+2. Quan hệ trung bình đã khớp là y=x; độ phân tán phần dư giống nhau tại mọi đầu vào. Thay hai cặp ở biên bằng x-4 và x+4, giữ cặp ở giữa nguyên trạng. Quan hệ trung bình vẫn khớp nhưng độ lớn phần dư biên gấp đôi. Cách xây dựng đã chỉ định này tách thay đổi độ phân tán khỏi độ cong bị thiếu, không giả vờ rằng sáu giá trị thực có thể xác lập quy luật nhiễu của ứng dụng.

Biến mẫu hình thành sửa đổi có thể kiểm chứng

Với ví dụ bậc hai, sửa đổi đề xuất rất cụ thể: thêm x², khớp từ dữ liệu huấn luyện rồi so sai số bình phương trên tập giữ riêng theo cùng cách chia. Với tương tác nghi bị thiếu, nêu rõ các biến tương tác và quan sát thúc đẩy giả thuyết. Tránh thử nhiều phép biến đổi dựa vào tập kiểm tra cuối.

Giữ mô hình đơn giản làm đối chứng. Phép khớp linh hoạt hơn có thể giảm độ cong nhìn thấy trên huấn luyện nhưng trở nên không ổn định ngoài khoảng đã quan sát. Ví dụ năm điểm không hỗ trợ kết luận về dự đoán xa ngoài x = -2 đến 2. Chẩn đoán hoàn thành vai trò khi dẫn tới giả thuyết cụ thể và cách đánh giá có khả năng bác bỏ giả thuyết đó.

Nguồn tham khảo & đọc thêm

  1. scikit-learn: Linear models
  2. statsmodels: OLS influence and outlier measures
← Về trang bài viết

Hình minh họa

100%