Một lưu ý nhỏ về lý thuyết so với thực hành. Về mặt toán học có thể được ước tính bằng công thức sau:β0,β1,β2...βn
β^=(X′X)−1X′Y
Trong đó là dữ liệu đầu vào ban đầu và là biến mà chúng tôi muốn ước tính. Điều này sau khi giảm thiểu lỗi. Tôi sẽ chứng minh điều này trước khi đưa ra một điểm thực tế nhỏ.XY
Đặt là lỗi hồi quy tuyến tính tạo ra tại điểm . Sau đó:eii
ei=yi−yi^
Tổng số lỗi bình phương chúng tôi thực hiện là:
∑i=1ne2i=∑i=1n(yi−yi^)2
Bởi vì chúng tôi có một mô hình tuyến tính, chúng tôi biết rằng:
yi^=β0+β1x1,i+β2x2,i+...+βnxn,i
Mà có thể được viết lại trong ký hiệu ma trận như:
Y^=Xβ
Chúng ta biết rằng
∑i=1ne2i=E′E
Chúng tôi muốn giảm thiểu tổng lỗi vuông, sao cho biểu thức sau phải càng nhỏ càng tốt
E′E=(Y−Y^)′(Y−Y^)
Điều này tương đương với:
E′E=(Y−Xβ)′(Y−Xβ)
Việc viết lại có vẻ khó hiểu nhưng nó xuất phát từ đại số tuyến tính. Lưu ý rằng các ma trận hoạt động tương tự như các biến khi chúng ta nhân chúng trong một số liên quan.
Chúng tôi muốn tìm các giá trị của sao cho biểu thức này càng nhỏ càng tốt. Chúng ta sẽ cần phân biệt và đặt đạo hàm bằng 0. Chúng tôi sử dụng quy tắc chuỗi ở đây.β
dE′Edβ=−2X′Y+2X′Xβ=0
Điều này mang lại:
X′Xβ=X′Y
Cuối cùng cũng vậy:
β=(X′X)−1X′Y
Về mặt toán học, chúng ta dường như đã tìm ra một giải pháp. Tuy nhiên, có một vấn đề và đó là rất khó tính nếu ma trận rất lớn. Điều này có thể cung cấp cho các vấn đề chính xác số. Một cách khác để tìm các giá trị tối ưu cho trong tình huống này là sử dụng loại phương thức giảm độ dốc. Hàm mà chúng ta muốn tối ưu hóa là không giới hạn và lồi, vì vậy chúng ta cũng sẽ sử dụng một phương thức gradient trong thực tế nếu cần. (X′X)−1Xβ