Hướng dẫn python covariance matrix pandas - pandas ma trận hiệp phương sai trăn

DataFrame.cov (min_periods = none, ddof = 1, numeric_only = _nodefault.no_default) [nguồn]#cov(min_periods=None, ddof=1, numeric_only=_NoDefault.no_default)[source]#

Tính toán hiệp phương sai của các cột, không bao gồm các giá trị Na/null.

Tính toán hiệp phương sai theo cặp trong số các dataFrame. Khung dữ liệu được trả về là ma trận hiệp phương sai của các cột của DataFrame.

Cả hai giá trị NA và NULL đều được tự động loại trừ khỏi tính toán. (Xem ghi chú bên dưới về độ lệch từ các giá trị bị thiếu.) Một ngưỡng có thể được đặt cho số lượng quan sát tối thiểu cho mỗi giá trị được tạo. So sánh với các quan sát dưới ngưỡng này sẽ được trả về là NaN.

Phương pháp này thường được sử dụng để phân tích dữ liệu chuỗi thời gian để hiểu mối quan hệ giữa các biện pháp khác nhau theo thời gian.

Tham sốMin_PeriodsInt, tùy chọnmin_periodsint, optional

Số lượng quan sát tối thiểu cần thiết cho mỗi cặp cột có kết quả hợp lệ.

ddofint, mặc định 1int, default 1

Độ tự do của Delta. Các ước số được sử dụng trong các tính toán là N - ddof, trong đó N đại diện cho số lượng các phần tử.

Mới trong phiên bản 1.1.0.

numeric_onlybool, mặc định đúngbool, default True

Chỉ bao gồm dữ liệu Float, Int hoặc Boolean.

Mới trong phiên bản 1.5.0.

Đã không dùng nữa kể từ phiên bản 1.5.0: Giá trị mặc định của numeric_only sẽ là False trong phiên bản pandas trong tương lai.The default value of numeric_only will be False in a future version of pandas.

Trả về DataFrame

Ma trận hiệp phương sai của loạt dữ liệu.

Ghi chú

Trả về ma trận hiệp phương sai của chuỗi thời gian DataFrame. Hiệp phương sai được chuẩn hóa bởi N-DDOF.

Đối với các khung dữ liệu có chuỗi thiếu dữ liệu (giả sử rằng dữ liệu bị thiếu một cách ngẫu nhiên), ma trận hiệp phương sai được trả về sẽ là một ước tính không thiên vị về phương sai và hiệp phương sai giữa chuỗi thành viên.

Tuy nhiên, đối với nhiều ứng dụng, ước tính này có thể không được chấp nhận vì ma trận hiệp phương sai ước tính không được đảm bảo là bán thời gian tích cực. Điều này có thể dẫn đến ước tính tương quan có các giá trị tuyệt đối lớn hơn một và/hoặc ma trận hiệp phương sai không thể tin được. Xem ước tính ma trận hiệp phương sai để biết thêm chi tiết.

Ví dụ

>>> df = pd.DataFrame([(1, 2), (0, 3), (2, 0), (1, 1)],
...                   columns=['dogs', 'cats'])
>>> df.cov()
          dogs      cats
dogs  0.666667 -1.000000
cats -1.000000  1.666667

>>> np.random.seed(42)
>>> df = pd.DataFrame(np.random.randn(1000, 5),
...                   columns=['a', 'b', 'c', 'd', 'e'])
>>> df.cov()
          a         b         c         d         e
a  0.998438 -0.020161  0.059277 -0.008943  0.014144
b -0.020161  1.059352 -0.008543 -0.024738  0.009826
c  0.059277 -0.008543  1.010670 -0.001486 -0.000271
d -0.008943 -0.024738 -0.001486  0.921297 -0.013692
e  0.014144  0.009826 -0.000271 -0.013692  0.977795

Số lượng thời gian tối thiểu

Phương pháp này cũng hỗ trợ từ khóa min_periods tùy chọn chỉ định số lượng quan sát không phải tối thiểu yêu cầu cho mỗi cặp cột để có kết quả hợp lệ:

>>> np.random.seed(42)
>>> df = pd.DataFrame(np.random.randn(20, 3),
...                   columns=['a', 'b', 'c'])
>>> df.loc[df.index[:5], 'a'] = np.nan
>>> df.loc[df.index[5:10], 'b'] = np.nan
>>> df.cov(min_periods=12)
          a         b         c
a  0.316741       NaN -0.150812
b       NaN  1.248003  0.191417
c -0.150812  0.191417  0.895202