Thiếu thứ hạng trong ngữ cảnh này cho biết không có đủ thông tin trong dữ liệu của bạn để ước tính mô hình mà bạn mong muốn. Nó bắt nguồn từ nhiều nguồn gốc. Tôi sẽ nói ở đây về mô hình hóa trong một bối cảnh khá chung chung, thay vì hồi quy logistic rõ ràng, nhưng mọi thứ vẫn áp dụng cho bối cảnh cụ thể.
Sự thiếu hụt có thể xuất phát từ đơn giản là quá ít dữ liệu. Nói chung, bạn không thể ước tính duy nhất n tham số có ít hơn n điểm dữ liệu. Điều đó không có nghĩa là tất cả những gì bạn cần là n điểm, vì nếu có bất kỳ tiếng ồn nào trong quá trình, bạn sẽ nhận được kết quả khá kém. Bạn cần thêm dữ liệu để giúp thuật toán chọn một giải pháp sẽ đại diện cho tất cả dữ liệu, theo nghĩa lỗi tối thiểu. Đây là lý do tại sao chúng tôi sử dụng các công cụ bình phương tối thiểu. Bạn cần bao nhiêu dữ liệu? Tôi luôn được hỏi câu hỏi đó trong kiếp trước, và câu trả lời là nhiều hơn bạn có, hoặc nhiều nhất bạn có thể nhận được. :)
Đôi khi bạn có thể có nhiều dữ liệu hơn bạn cần, nhưng một số (quá nhiều) điểm là bản sao. Tái tạo là TỐT theo nghĩa là nó giúp giảm tiếng ồn, nhưng nó không giúp tăng thứ hạng số. Do đó, giả sử bạn chỉ có hai điểm dữ liệu. Bạn không thể ước tính một mô hình bậc hai duy nhất thông qua các điểm. Một triệu bản sao của mỗi điểm sẽ vẫn không cho phép bạn khớp nhiều hơn một đường thẳng, thông qua những gì vẫn chỉ là một cặp điểm hiệu quả. Về cơ bản, nhân rộng không thêm nội dung thông tin. Tất cả những gì nó làm là giảm tiếng ồn tại các địa điểm mà bạn đã có thông tin.
Đôi khi bạn có thông tin ở những nơi sai. Ví dụ: bạn không thể phù hợp với mô hình bậc hai hai chiều nếu tất cả những gì bạn có là những điểm mà tất cả nằm trên một đường thẳng trong hai chiều. Nghĩa là, giả sử bạn có các điểm nằm rải rác dọc theo đường thẳng x = y trong mặt phẳng và bạn muốn điều chỉnh mô hình cho bề mặt z (x, y). Ngay cả với hàng trăm điểm (thậm chí không lặp lại), bạn sẽ có đủ thông tin để ước tính thông minh hơn một mô hình không đổi. Thật đáng ngạc nhiên, đây là một vấn đề phổ biến mà tôi đã thấy trong dữ liệu được lấy mẫu. Người dùng tự hỏi tại sao họ không thể xây dựng một mô hình tốt. Vấn đề được xây dựng trong chính dữ liệu họ đã lấy mẫu.
Đôi khi nó chỉ đơn giản là sự lựa chọn của mô hình. Điều này có thể được xem là "không đủ dữ liệu", nhưng từ phía bên kia. Bạn muốn ước tính một mô hình phức tạp, nhưng đã cung cấp không đủ dữ liệu để làm như vậy.
Trong tất cả các trường hợp trên, câu trả lời là lấy thêm dữ liệu, được lấy mẫu một cách thông minh từ những nơi sẽ cung cấp thông tin về quy trình mà bạn hiện đang thiếu. Thiết kế các thí nghiệm là một nơi tốt để bắt đầu.
Tuy nhiên, ngay cả dữ liệu tốt đôi khi không đầy đủ, ít nhất là như vậy. (Tại sao điều xấu xảy ra với dữ liệu tốt?) Vấn đề ở đây có thể liên quan đến mô hình. Nó có thể nằm trong không có gì nhiều hơn một sự lựa chọn nghèo nàn của các đơn vị. Nó có thể xuất phát từ việc lập trình máy tính được thực hiện để giải quyết vấn đề. (Ugh! Bắt đầu từ đâu?)
Đầu tiên, hãy nói về các đơn vị và nhân rộng. Giả sử tôi cố gắng giải quyết một vấn đề trong đó một biến là NHIỀU lệnh có độ lớn lớn hơn biến khác. Ví dụ: giả sử tôi có một vấn đề liên quan đến chiều cao và cỡ giày của tôi. Tôi sẽ đo chiều cao của tôi bằng nanomet. Vì vậy, chiều cao của tôi sẽ vào khoảng 1,78 tỷ (1,78e9) nanomet. Tất nhiên, tôi sẽ chọn cách đo cỡ giày của mình theo kilo-Parsec, vì vậy 9,14e-21 kilo-Parsec. Khi bạn thực hiện mô hình hồi quy, hồi quy tuyến tính là tất cả về đại số tuyến tính, bao gồm các tổ hợp biến tuyến tính. Vấn đề ở đây là những con số này khác nhau bởi rất nhiều bậc độ lớn (và thậm chí không phải cùng một đơn vị.) Toán học sẽ thất bại khi một chương trình máy tính cố gắng cộng và trừ các số thay đổi theo nhiều bậc độ lớn (cho độ chính xác gấp đôi con số,
Thủ thuật thường là sử dụng các đơn vị phổ biến, nhưng trên một số vấn đề thậm chí đó là vấn đề khi các biến thay đổi theo quá nhiều thứ tự cường độ. Quan trọng hơn là quy mô các số của bạn có độ lớn tương tự nhau.
Tiếp theo, bạn có thể thấy các vấn đề với số lớn và biến thể nhỏ trong các số đó. Do đó, giả sử bạn cố gắng xây dựng một mô hình đa thức bậc cao vừa phải với dữ liệu trong đó tất cả các đầu vào của bạn nằm trong khoảng [1,2]. Số bình phương, hình khối, v.v., các số theo thứ tự 1 hoặc 2 sẽ không gây ra vấn đề gì khi làm việc trong số học chính xác kép. Ngoài ra, thêm 1e12 vào mỗi số. Về lý thuyết, toán học sẽ cho phép điều này. Tất cả những gì nó làm là thay đổi bất kỳ mô hình đa thức nào mà chúng ta xây dựng trên trục x. Nó sẽ có hình dạng giống hệt nhau, nhưng được dịch bởi 1e12 sang phải. Trong thực tế, đại số tuyến tính sẽ thất bại thảm hại do các vấn đề thiếu thứ hạng. Bạn đã không làm gì ngoài việc dịch dữ liệu, nhưng đột nhiên bạn bắt đầu thấy các ma trận số ít xuất hiện.
Thông thường, nhận xét được đưa ra sẽ là một gợi ý để "tập trung và chia tỷ lệ dữ liệu của bạn". Thực tế, điều này nói rằng thay đổi và chia tỷ lệ dữ liệu sao cho nó có giá trị trung bình gần bằng 0 và độ lệch chuẩn là khoảng 1. Điều đó sẽ cải thiện đáng kể sự điều hòa của hầu hết các mô hình đa thức, làm giảm các vấn đề thiếu thứ hạng.
Các lý do khác cho sự thiếu hụt thứ hạng tồn tại. Trong một số trường hợp, nó được xây dựng trực tiếp vào mô hình. Ví dụ: giả sử tôi cung cấp đạo hàm của hàm, tôi có thể tự suy ra duy nhất hàm đó không? Tất nhiên là không, vì tích hợp liên quan đến một hằng số tích hợp, một tham số chưa biết thường được suy luận bởi kiến thức về giá trị của hàm tại một thời điểm nào đó. Trong thực tế, điều này đôi khi cũng phát sinh trong các vấn đề ước tính, trong đó điểm kỳ dị của một hệ thống được lấy từ bản chất cơ bản của hệ thống đang nghiên cứu.
Tôi chắc chắn đã bỏ qua một vài trong số nhiều lý do cho sự thiếu hụt thứ hạng trong một hệ thống tuyến tính và bây giờ tôi đã phải vật lộn quá lâu. Hy vọng rằng tôi đã xoay sở để giải thích những điều mà tôi đề cập bằng những thuật ngữ đơn giản và một cách để giảm bớt vấn đề.