Thiếu thứ hạng là gì, và làm thế nào để đối phó với nó?


87

Kết hợp hồi quy logistic bằng lme4 kết thúc bằng

Error in mer_finalize(ans) : Downdated X'X is not positive definite. 

Một nguyên nhân có thể của lỗi này rõ ràng là thiếu thứ hạng. Thiếu thứ hạng là gì, và tôi nên giải quyết nó như thế nào?


2
Tôi sẽ khuyên bạn kiểm tra không có biến nào của bạn là hằng số (tức là không có phương sai). Nếu bạn ổn về điểm số đó, hãy kiểm tra xem bạn có bất kỳ biến có giá trị phức tạp hoặc biến vô hạn nào không.
tristan

3
Nó thường có nghĩa là một hoặc nhiều biến của bạn không độc lập tuyến tính, trong đó biến có vấn đề có thể được biểu thị dưới dạng kết hợp của các biến khác. Gói R caretcó một hàm được gọi là findLinearCombossẽ cho bạn biết đâu là các biến có vấn đề.
richiemorrisroe

2
Tôi đồng ý với richiemorrisroe. Vì nó nói X'X không tích cực xác định, tôi nghĩ rằng họ đang ám chỉ rằng ma trận thiết kế X'X là số ít và do đó không có thứ hạng đầy đủ. Do đó, ít nhất một trong các hiệp phương sai có thể được viết dưới dạng kết hợp tuyến tính chính xác của các hiệp phương sai khác.
Michael Chernick

Câu trả lời:


123

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 đề.


42

Để định nghĩa thứ hạng của ma trận, bạn có thể tham khảo bất kỳ sách giáo khoa hay nào về đại số tuyến tính hoặc xem trang Wikipedia .

Một ma trận được gọi là xếp hạng đầy đủ nếu và các cột của nó không phải là sự kết hợp tuyến tính của nhau. Trong trường hợp đó, ma trận là xác định dương, hàm ý rằng nó có nghịch đảo .n×pXnpp×pXTX(XTX)1

Nếu không đầy đủ thứ hạng, một trong các cột được giải thích đầy đủ bởi các cột khác, theo nghĩa đó là sự kết hợp tuyến tính của các cột khác. Một ví dụ tầm thường là khi một cột được nhân đôi. Điều này cũng có thể xảy ra nếu bạn có biến 0-1 và một cột chỉ gồm 0 hoặc chỉ 1. Trong trường hợp đó, thứ hạng của ma trận nhỏ hơn và không có nghịch đảo.XXnXTX

Do giải pháp của nhiều vấn đề hồi quy (bao gồm hồi quy logistic) liên quan đến trung gian tính toán , nên sau đó không thể ước tính các tham số của mô hình. Vì tò mò, bạn có thể kiểm tra ở đây thuật ngữ này có liên quan đến công thức hồi quy tuyến tính bội.(XTX)1

Đó là nó cho sự thiếu thứ hạng tuyệt đối. Nhưng đôi khi vấn đề xuất hiện khi ma trận "gần như" không đầy đủ thứ hạng, như được chi tiết rộng rãi bởi @woodchips. Vấn đề này thường được gọi là đa cộng đồng . Vấn đề này khá phổ biến, bạn có thể tìm hiểu thêm về cách giải quyết nó trên các bài đăng liên quan ở đâyđó .X


23

Câu trả lời của user974 là tuyệt vời từ góc độ mô hình hóa và câu trả lời của gui11aume là tuyệt vời từ góc độ toán học. Tôi muốn tinh chỉnh câu trả lời trước một cách nghiêm túc từ góc độ mô hình hỗn hợp: cụ thể là phối cảnh mô hình hỗn hợp tổng quát (GLMM). Như bạn có thể thấy, bạn đã tham chiếu hàm R mer_finalizenằm trong lme4gói tuyệt vời . Bạn cũng nói rằng bạn đang phù hợp với mô hình hồi quy logistic.

nhiều vấn đề nảy sinh với các loại thuật toán số như vậy. Vấn đề về cấu trúc ma trận của ma trận mô hình của các hiệu ứng cố định chắc chắn đáng để xem xét, như user974 đã ám chỉ. Nhưng điều này rất dễ dàng để đánh giá, chỉ cần tính toán các đối số và đối số model.matrixcủa bạn trong một mô hình và lấy định thức của nó bằng cách sử dụng hàm. Tuy nhiên, các hiệu ứng ngẫu nhiên làm phức tạp đáng kể việc giải thích, thói quen ước lượng số và suy luận về các hiệu ứng cố định (cái mà bạn thường nghĩ là hệ số hồi quy trong mô hình hồi quy "thông thường").formula=data=det

Giả sử trong trường hợp đơn giản nhất, bạn chỉ được trang bị một mô hình chặn ngẫu nhiên. Sau đó, về cơ bản bạn đang xem xét có hàng ngàn nguồn không đồng nhất không được đo lường được giữ không đổi trong các biện pháp lặp đi lặp lại trong các cụm. Bạn ước tính một chặn "lớn", nhưng tính đến sự không đồng nhất bằng cách giả sử rằng các chặn cụ thể của cụm có một số phân phối chuẩn0. Các lệnh chặn được ước tính lặp đi lặp lại và được sử dụng để cập nhật các hiệu ứng mô hình cho đến khi đạt được sự hội tụ (khả năng ghi nhật ký - hoặc xấp xỉ của nó - là tối đa hóa). Mô hình hỗn hợp rất dễ hình dung, nhưng về mặt toán học, khả năng rất phức tạp và dễ xảy ra các vấn đề với điểm kỳ dị, minito cục bộ và điểm ranh giới (tỷ lệ chênh lệch = 0 hoặc vô cùng). Các mô hình hỗn hợp không có khả năng bậc hai như GLM chính tắc.

Thật không may, Venerables và Ripley đã không đầu tư nhiều vào chẩn đoán để hội tụ - thất bại như của bạn. Thực tế không thể suy đoán được vô số lỗi có thể dẫn đến một thông báo như vậy. Sau đó, hãy xem xét các loại chẩn đoán tôi sử dụng dưới đây:

  1. Có bao nhiêu quan sát trên mỗi cụm?
  2. Các kết quả từ một mô hình cận biên phù hợp bằng GEE là gì?
  3. ICC của các cụm là gì? Là sự không đồng nhất trong cụm gần với sự không đồng nhất giữa các cụm?
  4. Lắp một công cụ ước tính 1 bước và xem xét các hiệu ứng ngẫu nhiên ước tính. Họ có bình thường không?
  5. Phù hợp với mô hình hỗn hợp Bayes và nhìn vào phân phối sau cho các hiệu ứng cố định. Chúng có vẻ như có một phân phối bình thường?
  6. Nhìn vào một bảng điều khiển của các cụm hiển thị phơi sáng hoặc hồi quy quan tâm đối với kết quả bằng cách sử dụng mượt mà hơn. Các xu hướng có nhất quán và rõ ràng hay có nhiều cách có thể giải thích các xu hướng đó? (ví dụ: "rủi ro" trong số các đối tượng không phơi nhiễm là gì, việc tiếp xúc có vẻ bảo vệ hay có hại không?)
  7. Có thể giới hạn mẫu đối với các đối tượng chỉ có đủ số lượng quan sát trên mỗi người (giả sử, n = 5 hoặc n = 10) để ước tính hiệu quả điều trị "lý tưởng"?

Thay phiên, bạn có thể xem xét một số phương pháp mô hình hóa khác nhau:

  1. Có ít cụm hoặc điểm thời gian đủ để bạn có thể sử dụng hiệu ứng cố định (chẳng hạn như chỉ báo nhóm hoặc hiệu ứng thời gian đa thức) để mô hình hóa mức độ cụm / mức độ không đồng nhất tự động?
  2. Là một mô hình cận biên phù hợp (sử dụng GEE để cải thiện hiệu quả của ước tính lỗi tiêu chuẩn, nhưng vẫn chỉ sử dụng các hiệu ứng cố định)
  3. Một mô hình Bayes với một thông tin trước về các hiệu ứng ngẫu nhiên có thể cải thiện ước tính?

2
+1: Cảm ơn bạn đã giải quyết phần "hỗn hợp" của câu hỏi ban đầu. Bài đăng này bổ sung độc đáo một bộ câu trả lời đã tốt.
whuber
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.