Một ma trận hiệp phương sai xác định không tích cực cho tôi biết gì về dữ liệu của tôi?


21

Tôi có một số quan sát đa biến và muốn đánh giá mật độ xác suất trên tất cả các biến. Giả định rằng dữ liệu được phân phối bình thường. Với số lượng biến số thấp, mọi thứ đều hoạt động như tôi mong đợi, nhưng việc chuyển sang số lượng lớn hơn dẫn đến ma trận hiệp phương sai trở nên không xác định.

Tôi đã giảm vấn đề trong Matlab thành:

load raw_data.mat; % matrix number-of-values x number of variables
Sigma = cov(data);
[R,err] = cholcov(Sigma, 0); % Test for pos-def done in mvnpdf.

Nếu err> 0 thì Sigma không dương xác định.

Có điều gì tôi có thể làm để đánh giá dữ liệu thử nghiệm của mình ở kích thước cao hơn không? Nó có cho tôi biết bất cứ điều gì hữu ích về dữ liệu của tôi không?

Tôi là một người mới bắt đầu trong lĩnh vực này vì vậy xin lỗi nếu tôi bỏ lỡ điều gì đó rõ ràng.


Có vẻ như dữ liệu của bạn quá thưa thớt đối với các biểu diễn kích thước cao. Bạn có kế hoạch chạy mô hình hồi quy với dữ liệu này?
Jonathan Thiele

Câu trả lời:


30

Ma trận hiệp phương sai không xác định dương vì nó là số ít. Điều đó có nghĩa là ít nhất một trong số các biến của bạn có thể được biểu thị dưới dạng kết hợp tuyến tính của các biến khác. Bạn không cần tất cả các biến vì giá trị của ít nhất một biến có thể được xác định từ một tập hợp con của các biến khác. Tôi sẽ đề nghị thêm các biến liên tục và kiểm tra ma trận hiệp phương sai ở mỗi bước. Nếu một biến mới tạo ra một điểm kỳ dị, hãy bỏ nó và đi đến biến tiếp theo. Cuối cùng, bạn nên có một tập hợp con các biến với ma trận hiệp phương sai xác định theo định hướng.


19
+1. Cũng đáng lưu ý rằng tất cả các ma trận hiệp phương sai đều xác định dương và tất cả các ma trận xác định dương là ma trận hiệp phương sai của một số phân phối đa biến. Do đó, nói "ma trận hiệp phương sai xác định không dương" là một chút của oxymoron. Có vẻ như OP thực sự chỉ nói rằng ma trận hiệp phương sai mẫu là số ít có thể xảy ra từ chính xác (như bạn đã nói) hoặc khi số lượng quan sát ít hơn số lượng biến .
Macro

3
Một số phần mềm thống kê có thể được tạo ra để tự động khắc phục vấn đề này. Ví dụ, regresslệnh của Stata sẽ tự động loại bỏ các biến phụ khi một số cộng tuyến (và đầu ra của nó có thể được lưu ở dạng xác định các biến này và đánh dấu một tập hợp con không cộng tuyến để sử dụng trong tương lai). Mặc dù, một sự phức tạp có khả năng là các biến có thể không nhất thiết phải là cộng tuyến, nhưng chúng có thể đủ gần để lan truyền lỗi dấu phẩy động trong phân tách Cholesky tạo ra các ước lượng eigenvalue âm, làm cho các biến này khớp với nhau cho tất cả các mục đích thực tế.
whuber

1
@whuber, cũng có chức năng tương tự trong Rcác mô hình hồi quy tự động thả các biến từ bộ dự báo tuyến tính nếu có cộng tuyến chính xác.
Macro

2
@whuber, nó hơi hack nhưng bạn có thể làm một thủ thuật tương tự. Nếu glà mô hình tuyến tính của bạn, thì colnames(model.matrix(g))[-which(is.na(coef(g))==TRUE)][-1]nên trả về tên của các yếu tố dự đoán được nhập vào mô hình không chính xác. Điều này hoạt động bằng cách kiểm tra các hệ số nào NA(đó là cách Rbiểu thị một biến bị loại bỏ) và tìm tên cột tương ứng của ma trận mô hình (xóa cột chặn). Nhân tiện, điều đó sẽ không hoạt động nếu không có điều khoản cộng tuyến nên một câu lệnh if để kiểm tra which(is.na(coef(g))==TRUE)không trống là bắt buộc :)
Macro

8
@Macro Tất cả các ma trận hiệp phương sai là bán xác định dương. Khi chúng là số ít, chúng không xác định dương vì x'Ax> 0 cho tất cả các vectơ x cho ma trận A là xác định dương. Trong trường hợp số ít x'Ax = 0 xảy ra đối với một số x.
Michael R. Chernick

0

Đó là một kết quả hợp lệ. Ước tính cho thành phần đó của ma trận hiệp phương sai là 0, điều này rất có thể đúng! Nó có thể dẫn đến những khó khăn trong tính toán, nhưng một số thuật toán trong R (tôi không biết về Matlab) có thể xử lý việc này. Tôi không hiểu tại sao mọi người khó chịu về điều này và khăng khăng muốn phù hợp với các mô hình khác biệt hơn.


-1

Một điểm mà tôi không nghĩ là đã giải quyết ở trên là có thể tính toán ma trận hiệp phương sai xác định không dương từ dữ liệu thực nghiệm ngay cả khi các biến của bạn không liên quan tuyến tính hoàn hảo. Nếu bạn không có đủ dữ liệu (đặc biệt nếu bạn đang cố gắng xây dựng ma trận hiệp phương sai chiều cao từ một loạt các so sánh theo cặp) hoặc nếu dữ liệu của bạn không tuân theo phân phối thông thường nhiều biến số, thì bạn có thể kết thúc bằng các mối quan hệ nghịch lý trong số các biến, chẳng hạn như cov (A, B)> 0; cov (A, C)> 0; cov (B, C) <0.

Trong trường hợp như vậy, người ta không thể phù hợp với PDF thông thường nhiều biến số, vì không có phân phối bình thường đa biến đáp ứng các tiêu chí này - cov (A, B)> 0 và cov (A, C)> 0 nhất thiết ngụ ý rằng cov (B, C )> 0.

Tất cả điều này là để nói, một ma trận xác định không tích cực không phải lúc nào cũng có nghĩa là bạn đang bao gồm các biến cộng tuyến. Nó cũng có thể gợi ý rằng bạn đang cố gắng mô hình hóa một mối quan hệ không thể đưa ra cấu trúc tham số mà bạn đã chọn.


1
Câu trả lời của bạn là sai trên nhiều cấp độ. Dù sao đi nữa, hãy xem xét ma trận hiệp phương sai với 1 trên đường chéo và 1/2 cho cov (thành phần thứ 1 và thứ 2), 1/2 cho cov (thành phần thứ 1 và thứ 3) và -1/2 cho cov (thành phần thứ 2 và 3d) . Ma trận hiệp phương sai có các giá trị riêng xấp xỉ 0,15, 1,35, 1,50, cung cấp một ví dụ mẫu cho khẳng định trong đoạn 2 của bạn.
Mark L. Stone

@ MarkL.Stone, bạn nói đúng về đoạn 2, nhưng tôi tự hỏi liệu một số điều này có mơ hồ không và có thể được lưu dưới một diễn giải hào phóng. Ví dụ, tôi tự hỏi nếu trong đoạn 1, "không có đủ dữ liệu ... đang cố gắng xây dựng ma trận hiệp phương sai chiều cao từ một loạt các so sánh theo cặp" đề cập đến việc có rất nhiều dữ liệu bị thiếu và sử dụng các quan sát hoàn chỉnh theo cặp để tính toán từng phần tử trong ma trận hiệp phương sai.
gung - Phục hồi Monica
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.