Fungsi bawaan untuk menghitung kovarians

Apakah ada cara dengan python untuk mendapatkan matriks kovarians berdasarkan titik data mean dan sampel

Contoh:

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

Saya tahu cara menghitungnya dengan memasukkan nilai-nilai ini ke dalam rumus. Tapi apakah ada fungsi bawaan di python yang melakukan ini untuk saya. Saya tahu ada satu di Matlab, tapi saya tidak yakin tentang python.


person Jannat Arora    schedule 29.03.2012    source sumber


Jawaban (1)


numpy.cov() dapat digunakan untuk menghitung matriks kovarians:

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]])

Secara default, np.cov() mengharapkan setiap baris mewakili variabel, dengan pengamatan di kolom. Oleh karena itu saya harus mengubah urutan matriks Anda (dengan menggunakan .T).

Cara alternatif untuk mencapai hal yang sama adalah dengan menyetel rowvar ke False:

In [15]: np.cov(data, rowvar=False)
Out[15]: 
array([[ 2.5,  2. ],
       [ 2. ,  1.8]])
person NPE    schedule 29.03.2012