2010-07-22 123 views
8

Nhập: vector ngẫu nhiên X = xi, i = 1..n.
vectơ phương tiện cho X = meanxi, i = 1..n
Kết quả: ma trận hiệp phương sai Sigma (n * n).
Tính toán:
1) tìm tất cả cov (xi, xj) = 1/n * (xi-meanxi) * (xj-meanxj), i, j = 1..n
2) Sigma (i, j) = cov (xi, xj), ma trận đối xứng.
Thuật toán này có đúng và không có tác dụng phụ không?
Tính toán ma trận hiệp phương sai

+0

Tuyên bố vấn đề không rõ ràng. Bạn có thực sự có một vector duy nhất làm đầu vào không? Tất cả xi có cùng giá trị không? Tại sao bạn sẽ chia cho (n-1) khi tính giá trị trung bình? – Henrik

+0

Về lý thuyết tôi có rất nhiều (X thực sự là một số quá trình X (t)) trong đó t là [0..k], nhưng trong quá trình tạo mô hình, tôi chỉ quan tâm đến trường hợp k = kmax, đó là lý do tại sao tôi nhận được một vector X (kmax) = X bao gồm số r. n-1 là hiệu chỉnh, không ảnh hưởng nhiều. Về phương tiện - chúng khác nhau như tôi thấy bây giờ. – Singularity

+1

Tôi đang bỏ phiếu để đóng câu hỏi này là chủ đề không chính vì đây là câu hỏi xác minh toán học, không phải là câu hỏi lập trình trong phạm vi của [trợ giúp]. – TylerH

Trả lời

4

Mỗi xi phải là một vectơ (biến ngẫu nhiên) với phương sai và giá trị trung bình riêng của nó.

Ma trận hiệp phương sai là đối xứng, vì vậy bạn chỉ cần tính một nửa số đó (và sao chép phần còn lại) và có phương sai của xi ở đường chéo chính.

S = ...// your symmetric matrix n*n 
for(int i=0; i<n;i++) 
    S(i,i) = var(xi); 
    for(j = i+1; j<n; j++) 
    S(i,j) = cov(xi, xj); 
    S(j,i) = S(i,j); 
    end 
end 

nơi phương sai (var) của xi:

v = 0; 
for(int i = 0; i<xi.Count; i++) 
    v += (xi(i) - mean(xi))^2; 
end 
v = v/xi.Count; 

và hiệp phương sai (cov)

cov(xi, xj) = r(xi,xj) * sqrt(var(xi)) * sqrt(var(xj)) 

nơi r(xi, xj)Pearson product-moment correlation coefficient

EDIT
hoặc, vì cov (X, Y) = E (X * Y) - E (X) * E (Y)

cov(xi, xj) = mean(xi.*xj) - mean(xi)*mean(xj); 

nơi .* là Matlab giống như nhân tố khôn ngoan.
Vì vậy, nếu x = [x1, x2], y = [y1, y2] thì z = x.*y = [x1*y1, x2*y2];

+1

Đường chéo chứa các phương sai. – Henrik

+0

Có, bạn đã đúng. Đã sửa chữa – Gacek

+0

Tại sao bạn xác định hiệp phương sai theo các mối tương quan? Thông thường nó được thực hiện theo cách khác tròn. – Henrik

Các vấn đề liên quan