Xét ma trận gồm 5 quan sát, mỗi quan sát gồm 3 biến, $x_0$, $x_1$ và $x_2$ có giá trị quan sát được giữ trong ba hàng của mảng
In [x]: print[ np.cov[X] ]
[[ 0.115 , 0.0575, -1.2325],
[ 0.0575, 3.757 , -0.8775],
[ -1.2325, -0.8775, 14.525 ]]
7X = np.array[[ [0.1, 0.3, 0.4, 0.8, 0.9],
[3.2, 2.4, 2.4, 0.1, 5.5],
[10., 8.2, 4.3, 2.6, 0.9]
]]
Ma trận hiệp phương sai là một mảng giá trị $3 \times 3$,
In [x]: print[ np.cov[X] ]
[[ 0.115 , 0.0575, -1.2325],
[ 0.0575, 3.757 , -0.8775],
[ -1.2325, -0.8775, 14.525 ]]
Các phần tử đường chéo, $C_{ii}$ là phương sai trong các biến $x_i$ giả sử $N-1$ bậc tự do
In [x]: print[np.var[X, axis=1, ddof=1]]
[ 0.115 3.757 14.525]
Mặc dù độ lớn của các phần tử ma trận hiệp phương sai không phải lúc nào cũng dễ diễn giải [vì nó phụ thuộc vào độ lớn của các quan sát riêng lẻ có thể rất khác nhau đối với các biến khác nhau], nhưng rõ ràng là có sự tương quan nghịch mạnh giữa $x_0$ . 2325$. khi cái này tăng thì cái kia giảm] và không có mối tương quan chặt chẽ giữa $x_0$ và $x_1$ [$C_{01}=0. 0575$. $x_0$ và $x_1$ không có xu hướng mạnh cùng nhau]
Có chính xác 1 sự khác biệt giữa
[[2.66666667 0.66666667]
[0.66666667 0.66666667]]
0 và [[2.66666667 0.66666667]
[0.66666667 0.66666667]]
1 đó là bước thiên vị. Với [[2.66666667 0.66666667]
[0.66666667 0.66666667]]
2 thì [[2.66666667 0.66666667]
[0.66666667 0.66666667]]
3 chia cho [[2.66666667 0.66666667]
[0.66666667 0.66666667]]
4 [[[2.66666667 0.66666667]
[0.66666667 0.66666667]]
5], trong khi với In [x]: print[ np.cov[X] ]
[[ 0.115 , 0.0575, -1.2325],
[ 0.0575, 3.757 , -0.8775],
[ -1.2325, -0.8775, 14.525 ]]
8 thì [[2.66666667 0.66666667]
[0.66666667 0.66666667]]
3 chia cho [[2.66666667 0.66666667]
[0.66666667 0.66666667]]
8 [[[2.66666667 0.66666667]
[0.66666667 0.66666667]]
9]. Xem mã nguồn để biết thêm thông tin Ma trận phương sai-hiệp phương sai là một ma trận vuông [có cùng số hàng và số cột] đưa ra hiệp phương sai giữa từng cặp phần tử có sẵn trong dữ liệu
Hiệp phương sai đo lường mức độ mà các biến di chuyển theo cùng một hướng
Trong ma trận phương sai- hiệp phương sai, phương sai của các biến xuất hiện trên đường chéo và hiệp phương sai của các biến đều là các phần tử khác của ma trận
Để tiếp tục làm theo hướng dẫn này, chúng ta sẽ cần thư viện Python sau. gấu trúc
Nếu bạn chưa cài đặt chúng, vui lòng mở “Command Prompt” [trên Windows] và cài đặt chúng bằng mã sau
In [x]: print[ np.cov[X] ]
[[ 0.115 , 0.0575, -1.2325],
[ 0.0575, 3.757 , -0.8775],
[ -1.2325, -0.8775, 14.525 ]]
2Sách tôi giới thiệu
- Khóa học về sự cố Python
- Tự động hóa những thứ nhàm chán với Python
- Ngoài những thứ cơ bản với Python
- Trăn nghiêm trọng
Giải thích ma trận phương sai-hiệp phương sai
Một ma trận hiệp phương sai là
- Đối xứng
Ma trận vuông bằng phép dời vị của nó. \[ A = A^T \]. - Tích cực bán xác định
- Với đường chéo chính chứa phương sai [hiệp phương sai của chính các biến]
$$
cov_{x,y,z} = \left[ \begin{array}{ccc}
cov_{x,x
cov_{y,x} & cov_{y,y} & cov_{y,z} \\
cov_{z,x} & cov_{z,y} & cov_{z,z}
\end{array} \right]
= \left[ \begin{array}{ccc}
\sigma^2_{x} & \sigma_{xy} & \sigma_{xz} \\
\sigma_{yx} & \sigma^2_{y} & \sigma_{yz} \\
\sigma_{zx} & \sigma_{zy} & \sigma^2_{z}
\end{array} \right]
$$
trong đó mỗi hiệp phương sai có thể được tính theo công thức sau [thay thế các giá trị x, y, z]
$$
cov_{x,y} = E[[X – E[X]][Y – E[Y]]] = \frac{\sum[x_i
$$
Ví dụ về ma trận phương sai-hiệp phương sai
Trước tiên, hãy xem xét một số dữ liệu mẫu để làm việc với
TuổiKinh nghiệmLương252200032630003793500Ngoài ra, bảng trên có thể được biểu diễn dưới dạng ma trận
$$A = \begin{bmatrix} 25 & 2 & 2000 \\ 32 & 6 & 3000 \\ 37 & 9 & 3500 \end{bmatrix}$$
Khi đó ma trận hiệp phương sai của \[A\] sẽ như sau
$$
cov_{a,e,s} = \left[ \begin{array}{ccc}
cov_{a,a
cov_{e,a} & cov_{e,e} & cov_{e,s} \\
cov_{s,a} & cov_{s,e} & cov_{s,s}
\end{array} \right]
$$
trong đó \[a\], \[e\], \[s\] lần lượt là Tuổi, Kinh nghiệm và Mức lương
Cuối cùng, sử dụng công thức hiệp phương sai
$$
cov_{x,y} = E[[X – E[X]][Y – E[Y]]] = \frac{\sum[x_i
$$
chúng ta có thể tính toán hiệp phương sai giữa mỗi cặp và điền vào ma trận hiệp phương sai
\[ cov_{a,a} = \frac{\sum[Age_i – \bar{Age}][Age_i – \bar{Age}]}{N-1} = \\ = \frac{[25-31. 33][25-31. 33] + [32-31. 33][32-31. 33] + [37-31. 33][37-31. 33]}{3-1} = \\ = \frac{40. 0689 + 0. 4489 + 32. 1489}{2} \xấp xỉ 36. 33 \]\[ cov_{a,e} = cov_{e,a} = \frac{\sum[Age_i – \bar{Age}][Experience_i – \bar{Experience}]}{N-1} . 33][2-5. 66] + [32-31. 33][6-5. 66] + [37-31. 33][9-5. 66]}{3-1} = \\ = \frac{23. 1678 + 0. 2278 + 18. 9378}{2} \xấp xỉ 21. 17 \]= \frac{[25-31.33][2-5.66] + [32-31.33][6-5.66] + [37-31.33][9-5.66]}{3-1} = \\ = \frac{23.1678 + 0.2278 + 18.9378}{2} \approx 21.17 \]\[ cov_{a,s} = cov_{s,a} = \frac{\sum[Age_i – \bar{Age}][Salary_i – \bar{Salary}]}{N-1} . 33][2.000-2.833. 33] + [32-31. 33][3.000-2.833. 33] + [37-31. 33][3,500-2,833. 33]}{3-1} = \\ = \frac{5,274. 9789 + 111. 6689 + 3,780. 0189}{2} \xấp xỉ 4,583. 33 \]
= \frac{[25-31.33][2,000-2,833.33] + [32-31.33][3,000-2,833.33] + [37-31.33][3,500-2,833.33]}{3-1} = \\ = \frac{5,274.9789 + 111.6689 + 3,780.0189}{2} \approx 4,583.33 \]\[ cov_{e,e} = \frac{\sum[Experience_i – \bar{Experience}][Experience_i – \bar{Experience}]}{N-1} = \\
= \frac{[2-5.67][2-5.67] + [6-5.67][6-5.67] + [9-5.67][9-5.67]}{3-1} = \\ = \frac{13.4689 + 0.1089 + 11.0889}{2} \approx 12.33 \]\[ cov_{e,s} = cov_{s,e} = \frac{\sum[Kinh nghiệm_i – \bar{Kinh nghiệm}][Salary_i – \bar{Salary}]}{N-1} . 67][2.000-2.833. 33] + [6-5. 67][3.000-2.833. 33] + [9-5. 67][3,500-2,833. 33]}{3-1} = \\ = \frac{3,058. 3211 + 55. 0011 + 2,220. 0111}{2} \xấp xỉ 2,666. 67 \]
= \frac{[2-5.67][2,000-2,833.33] + [6-5.67][3,000-2,833.33] + [9-5.67][3,500-2,833.33]}{3-1} = \\ = \frac{3,058.3211 + 55.0011 + 2,220.0111}{2} \approx 2,666.67 \]\[ cov_{s,s} = \frac{\sum[Salary_i – \bar{Salary}][Salary_i – \bar{Salary}]}{N-1} = \\
= \frac{[2,000-2,833.33][2,000-2,833.33] + [3,000-2,833.33][3,000-2,833.33] + [3,500-2,833.33][3,500-2,833.33]}{3-1} = \\ = \frac{694,438.8889 + 27,778.8889 + 444,448.889}{2} \approx 583,333.33 \]
Sử dụng các giá trị hiệp phương sai được tính toán, giờ đây chúng ta có thể điền vào ma trận hiệp phương sai
$$
cov_{a,e,s} = \left[ \begin{array}{ccc}
36. 33 & 21. 17 & 4,583. 33 \\
21. 17 & 12. 33 & 2,666. 67 \\
4,583. 33 & 2,666. 67 & 583,333. 33
\end{array} \right]
$$
Tạo một DataFrame mẫu
Hãy tạo một Khung dữ liệu Pandas mẫu với ba biến. Tuổi, Kinh nghiệm, Mức lương với một vài quan sát cho mỗi
In [x]: print[ np.cov[X] ]
[[ 0.115 , 0.0575, -1.2325],
[ 0.0575, 3.757 , -0.8775],
[ -1.2325, -0.8775, 14.525 ]]
3Và chúng tôi nhận được
In [x]: print[ np.cov[X] ]
[[ 0.115 , 0.0575, -1.2325],
[ 0.0575, 3.757 , -0.8775],
[ -1.2325, -0.8775, 14.525 ]]
4Tính toán ma trận phương sai hiệp phương sai bằng Python
Sử dụng. cov[] của Pandas DataFrame, chúng tôi có thể tính toán ma trận hiệp phương sai bằng Python
In [x]: print[ np.cov[X] ]
[[ 0.115 , 0.0575, -1.2325],
[ 0.0575, 3.757 , -0.8775],
[ -1.2325, -0.8775, 14.525 ]]
5Và chúng tôi nhận được
In [x]: print[ np.cov[X] ]
[[ 0.115 , 0.0575, -1.2325],
[ 0.0575, 3.757 , -0.8775],
[ -1.2325, -0.8775, 14.525 ]]
6Sự kết luận
Trong bài viết này, chúng ta đã thảo luận về cách tính ma trận phương sai hiệp phương sai bằng Python
Vui lòng để lại nhận xét bên dưới nếu bạn có bất kỳ câu hỏi nào hoặc có đề xuất cho một số chỉnh sửa và xem thêm các bài viết Thống kê của tôi