2012-03-29 20 views
11

tính Có cách nào trong python để có được ma trận hiệp phương sai cho giá trị trung bình và mẫu điểm dữ liệuxây dựng trong chức năng cho hiệp phương sai

Ví dụ:

mean = [3 3.6] 
data = [[1 2] 
     [2 3] 
     [3 3] 
     [4 5] 
     [5 5]] 

tôi biết làm thế nào để tính toán tương tự bằng cách thay thế những các giá trị trong công thức. Nhưng có một xây dựng trong chức năng trong python mà hiện này cho tôi. Tôi biết có một trong Matlab, nhưng tôi không chắc chắn về python.

Trả lời

22

numpy.cov() thể được sử dụng để tính toán ma trận hiệp phương sai:

In [1]: import numpy as np 

In [2]: data = np.array([[1,2], [2,3], [3,3], [4,5], [5,5]]) 

In [3]: np.cov(data.T) 
Out[3]: 
array([[ 2.5, 2. ], 
     [ 2. , 1.8]]) 

Theo mặc định, np.cov() hy vọng mỗi hàng để đại diện cho một biến, với các quan sát trong các cột. Do đó, tôi phải chuyển đổi ma trận của bạn (bằng cách sử dụng .T).

Một cách khác để đạt được điều tương là bằng cách thiết lập rowvar-False:

In [15]: np.cov(data, rowvar=False) 
Out[15]: 
array([[ 2.5, 2. ], 
     [ 2. , 1.8]]) 
+0

Nhờ một tấn vì đã giúp :) –

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