Phân tích tương liên (correspondence analysis), còn gọi là phân tích tương quan chéo, là phương pháp khảo sát mối tương quan giữa các các biến định danh (nominal) và giữa các mức của những biến ấy. Đây chính là điểm khác biệt so với phân tích tương quan hay hồi quy. Nhìn chung, phương tích tương liên chủ yếu sử dụng các biểu đồ để thể hiện mối tương quan giữa các biến hay giữa các mức của biến.
Để việc nắm bắt được dễ dàng hơn, chúng ta sẽ bắt đầu với các dữ liệu chỉ có hai biến (phân tích tương liên đơn). Sau đó mở rộng cho các trường hợp nhiều biến hơn (phân tích tương liên đa biến).
Dữ liệu được xử lý trực tiếp trong phân tích tương liên là bảng tham chiếu chéo. Trong phân tích tương liên đơn, `s` cột tương ứng với `s` mức của biến `X`, `r` dòng tương ứng với `r` mức của biến `Y` (Bảng 1). Như vậy vai trò của dòng và cột là đối xứng, có thể đổi lẫn cho nhau.
| `X` | Tổng | |||||||
|---|---|---|---|---|---|---|---|---|
| `x_1` | `x_2` | . . . | `x_j` | . . . | `x_s` | |||
| `Y` | `y_1` | `n_(11)` | `n_(12)` | . . . | `n_(1j)` | . . . | `n_(1s)` | `n_(1•)` |
| `y_2` | `n_(21)` | `n_(22)` | . . . | `n_(2j)` | . . . | `n_(2s)` | `n_(2•)` | |
| . . . | . . . | . . . | . . . | . . . | . . . | . . . | . . . | |
| `y_i` | `n_(i1)` | `n_(i2)` | . . . | `n_(ij)` | . . . | `n_(is)` | `n_(i•)` | |
| . . . | . . . | . . . | . . . | . . . | . . . | . . . | . . . | |
| `y_r` | `n_(r1)` | `n_(r2)` | . . . | `n_(rj)` | . . . | `n_(rs)` | `n_(r•)` | |
| Tổng | `n_(•1)` | `n_(•2)` | . . . | `n_(•j)` | . . . | `n_(•s)` | `n` | |
Trong ô `ij` của bảng tham chiếu chéo, tương ứng với dòng `i` và cột `j`, là số phần tử ở mức `x_j` của biến `X`, ở mức `y_i` của biến `Y`. Ngoài ra, người ta thường thêm một cột ở bên phải chứa giá trị của tổng số `n_(i•)` các phần tử ở mức `y_i` của biến `Y`, thêm một dòng ở dưới chứa tổng số `n_(j•)` các phần tử ở mức `x_j` của biến `X`. Như vậy ô cuối cùng bên phải của bảng tham chiếu mở rộng này chứa tổng số `n` các phần tử của dữ liệu. Ma trận tương ứng với bảng tham chiếu thường được ký hiệu là `mb(N)`.
Nếu ta chia tất cả các phần tử của bảng tham chiếu chéo cho `n`, thì chúng ta có các tỷ lệ `p_(ij)`:
| `p_(ij)=n_(ij)/n` | (1) |
Và chúng ta có bảng tỷ lệ (Bảng 2).
| `X` | Tổng | |||||||
|---|---|---|---|---|---|---|---|---|
| `x_1` | `x_2` | . . . | `x_j` | . . . | `x_s` | |||
| `Y` | `y_1` | `p_(11)` | `p_(12)` | . . . | `p_(1j)` | . . . | `p_(1s)` | `p_(1•)` |
| `y_2` | `p_(21)` | `p_(22)` | . . . | `p_(2j)` | . . . | `p_(2s)` | `p_(2•)` | |
| . . . | . . . | . . . | . . . | . . . | . . . | . . . | . . . | |
| `y_i` | `p_(i1)` | `p_(i2)` | . . . | `p_(ij)` | . . . | `p_(is)` | `p_(i•)` | |
| . . . | . . . | . . . | . . . | . . . | . . . | . . . | . . . | |
| `y_r` | `p_(r1)` | `p_(r2)` | . . . | `p_(rj)` | . . . | `p_(rs)` | `p_(r•)` | |
| Tổng | `p_(•1)` | `p_(•2)` | . . . | `p_(•j)` | . . . | `p_(•s)` | 1 | |
Ma trận tương ứng với bảng tỷ lệ này được gọi là ma trận tương liên `mb(P)` (correspondence matrix):
| `mb(P)=mb(N)/n` | (2) |
Cột cuối cùng của Bảng 2, chứa tổng của các tỷ lệ trên các dòng, là một vectơ, được ký hiệu là `mb(r)`. Ta có thể viết:
`mb(r=Pj)`(3)
Tương tự, dòng cuối cùng của Bảng 2, chứa tổng của các tỷ lệ trên các cột, là một vectơ, được ký hiệu là `mb(c)`. Ta có thể viết:
`mb(c)^T=mb(j)^Tmb(P)`(4)
Nếu ta chia các phần tử `n_(ij)` của dòng `i` của Bảng 1 (hay phần tử `p_(ij)` của Bảng 2) cho tổng `n_(i•)` (hay `p_(i•)`) của dòng ấy, ta thu được một vectơ, được gọi là dạng thức (profile) dòng, ký hiệu là `mb(r)_i`:
| `mb(r)_i^T=[ n_(i1)/n_(i•)\ n_(i2)/n_(i•)\ ...\ n_(is)/n_(i•) ]=[ p_(i1)/p_(i•)\ p_(i2)/p_(i•)\ ...\ p_(is)/p_(i•) ]` | (5) |
Mỗi thành phần của `mb(r)_i` là một tỷ lệ theo dòng, vì vậy tổng của những thành phần ấy là 1.
Người ta định nghĩa ma trận chéo sau :
| `mb(D)_r=diag(mb(r))=[ [p_(1•),0,cdots,0], [0,p_(2•),cdots,0], [vdots,vdots,ddots,vdots], [0,0,cdots,p_(s•)] ] ` | (6) |
Và ma trận dạng thức dòng được xác định như sau:
| `mb(R)=mb(D)_r^(-1)mb(P)=[ [mb(r)_1^T], [mb(r)_2^T], [vdots], [mb(r)_r^T] ] = [ [ p_(11)/p_(1•), p_(12)/p_(1•), cdots, p_(1s)/p_(1•) ], [ p_(21)/p_(2•), p_(22)/p_(2•), cdots, p_(2s)/p_(2•) ], [ vdots, vdots, ddots, vdots], [ p_(r1)/p_(r•), p_(r2)/p_(r•), cdots, p_(rs)/p_(r•) ] ]` | (7) |
Tương tự, nếu ta chia các phần tử `n_(ij)`của cột `j` của Bảng 1 (hay phần tử `p_(ij)` của Bảng 2) cho tổng `n_(•j)` (hay `p_(•j)` của cột ấy, ta thu được một vectơ, được gọi là dạng thức (profile) cột, ký hiệu là `mb(c)_j`:
| `mb(c)_j = [ [n_(1j)/n_(•j)], [n_(2j)/n_(•j)], [vdots], [n_(rj)/n_(•j)] ] = [ [p_(1j)/p_(•j)], [p_(2j)/p_(•j)], [vdots], [p_(rj)/p_(•j)] ]` | (8) |
Mỗi thành phần của `mb(c)_j` là một tỷ lệ theo dòng, vì vậy tổng của những thành phần ấy cũng là 1.
Người ta cũng định nghĩa ma trận chéo sau:
| `mb(D)_c=diag(mb(c))=[ [p_(•1),0,cdots,0], [0,p_(•2),cdots,0], [vdots,vdots,ddots,vdots], [0,0,cdots,p_(•r)] ] ` | (9) |
Và ma trận dạng thức cột được xác định như sau:
| `mb(C)=mb(P)mb(D)_c^(-1)=[ mb(c)_1\ mb(c)_2\ cdots\ mb(c)_r ] = [ [ p_(11)/p_(•1), p_(12)/p_(•2), cdots, p_(1s)/p_(•s) ], [ p_(21)/p_(•1), p_(22)/p_(•2), cdots, p_(2s)/p_(•s) ], [ vdots, vdots, ddots, vdots], [ p_(r1)/p_(•1), p_(r2)/p_(•2), cdots, p_(rs)/p_(•s) ] ]` | (10) |
Vectơ dòng `mb(r)` được định nghĩa từ công thức (3) có thể viết lại là:
| `mb(r)=sum_(j=1)^s p_(•j)\ mb(c)_j ` | (11) |
Công thức (11) cho thấy `mb(r)` chính là dạng thức cột trung bình với các trọng số là `p_(•j)`.
Tương tự, vectơ cột `mb(c)` được định nghĩa từ công thức (4) có thể viết lại là:
| `mb(c)^T=sum_(i=1)^r p_(i•)\ mb(r)_i^T` | (12) |
Công thức (12) cũng cho thấy `mb(c)` chính là dạng thức dòng trung bình với các trọng số là `p_(i•)`.
Về mặt hình học, `mb(r)` và `mb(c)` chính là trọng tâm (centroid) của các dạng thức cột và dạng thức dòng.
Để đánh giá sự khác nhau giữa các dạng thức dòng (các dòng của `mb(R)`), hay giữa các dạng thức cột (các cột của `mb(C)`, ta sử dụng thông số "khoảng cách", còn gọi là khoảng cách khi-bình phương.
Xét hai dòng `mb(i)` và `mb(i"'"")` của ma trận `mb(R)`, khoảng cách `d(mb(i, i"'""))` giữa hai dòng này được định nghĩa như sau:
`d(mb(i,i"'"))^2=(mb(r_i-r_i"'"))^T mb(D)_c^(-1) (mb(r_i-r_i"'")) `(13)
Vậy khoảng cách từ dạng thức dòng `mb(i)` đến tâm `mb(c)` được xác định như sau:
`d(mb(i,c))^2=(mb(r_i-c))^T mb(D)_c^(-1) (mb(r_i-c)) `(14)
Tương tự, xét hai cột `mb(j)` và `mb(j"'") ` của ma trận `mb(C)`, khoảng cách `d(mb(j, j"'"))` giữa hai cột này được định nghĩa như sau:
`d(mb(j, j"'"))^2=(mb(c_j-c_(j"'")))^T mb(D)_r^(-1) (mb(c_j-c_(j"'")))` (15)
Vậy khoảng cách từ dạng thức cột `mb(j)` đến tâm `mb(r)` được xác định như sau:
`d(mb(j, r))^2=(mb(c_j-r))^T mb(D)_r^(-1) (mb(c_j-r))` (16)
Khái niệm quán tính (inertia) bắt nguồn từ Cơ học, trong đó người ta định nghĩa:
Quán tính = Khối lượng × Khoảng cách 2(17)
Ở đây ta cũng định nghĩa tương tự, quán tính của dạng thức dòng `mb(i)`, ký hiệu `I_i`, là tích của trọng số dòng ấy `p_(i•)` nhân với bình phương khoảng cách từ dạng thức dòng ấy đến trọng tâm `mb(c)`:
`I_(mb(i)) = p_(i•) d(mb(i,c))^2 = p_(i•) (mb(r_i-c))^T mb(D)_c^(-1) (mb(r_i-c)) `(18)
Và tổng quán tính của tất cả các dạng thức dòng là:
`I = sum_(i=1)^r p_(i•) (mb(r_i-c))^T mb(D)_c^(-1) (mb(r_i-c)) `(19)
Tương tự, quán tính của dạng thức cột `mb(j)`, ký hiệu `I_j`, là tích của trọng số cột ấy `p_(•j)` nhân với bình phương khoảng cách từ dạng thức cột ấy đến trọng tâm `mb(r)`:
`I_(mb(j)) = p_(•j) d(mb(j, r))^2 = p_(•j) (mb(c_j-r))^T mb(D)_r^(-1) (mb(c_j-r))` (20)
Và tổng quán tính của tất cả các dạng thức cột là:
`I = sum_(j=1)^s p_(•j) (mb(c_j-r))^T mb(D)_r^(-1) (mb(c_j-r))` (21)
Vì vai trò của cột và dòng tương tự nhau nên tổng quán tính xác định theo dòng hay theo cột đều như nhau. Người ta cũng chứng minh được:
| `I=chi^2/n=sum_(h=1)^k lambda_h ` | (22) |
trong đó :
| `chi^2=sum_(i=1)^r sum_(j=1)^s (p_(ij)-p_(i•)p_(•j))^2 / (p_(i•)p_(•j)) ` | (23) |
Ý nghĩa của quán tính là lượng thông tin mà một đối tượng chứa.
Trong phần này, chúng ta sẽ xem xét một thí dụ về phân tích tương liên đơn sử dụng phụ kiện ca của R. Thí dụ liên quan đến 4 nhóm khách hàng A, B, C, D và thức uống của họ tại một điểm phục vụ thức uống. Dữ liệu được trình bày trong Bảng 3 (tập tin thuc-uong.csv).
| Nhóm khách hàng |
Thức uống | Tổng | ||||
|---|---|---|---|---|---|---|
| Nước ngọt | Trà | Nước trái cây | Cà phê | Nước tinh khiết | ||
| A | 82 | 10 | 60 | 28 | 1 | 181 |
| B | 172 | 39 | 146 | 47 | 1 | 405 |
| C | 86 | 21 | 227 | 103 | 7 | 444 |
| D | 25 | 12 | 101 | 170 | 21 | 329 |
| Tổng | 365 | 82 | 534 | 348 | 30 | 1359 |
Trước hết, chúng ta chuyển bảng dữ liệu vào R với tên tu. Lưu ý rằng bảng này dùng cột đầu tiên (nhóm khách hàng) để làm chức năng đặt tên cho các dòng (rowname). Vì vậy khi sử dụng chức năng Import Dataset của RStudio, tại phần "Row names", ta không dùng "Automatic" (mặc định) mà chọn "Use first column".
Để phân tích tương liên đơn, phụ kiện ca có lệnh ca. Lệnh này đơn giản, dễ dùng như thí dụ sau:
> kq <- ca(tu)
> kq Principal inertias (eigenvalues): 1 2 3 Value 0.198493 0.03031 0.002966 Percentage 85.64% 13.08% 1.28% Rows: A B C D Mass 0.133186 0.298013 0.326711 0.242090 ChiDist 0.435044 0.456973 0.251792 0.714579 Inertia 0.025207 0.062232 0.020713 0.123617 Dim. 1 -0.870354 -0.997579 0.098855 1.573440 Dim. 2 0.893761 0.515126 -1.423083 0.794688 Columns: NN Tra NTC CaPhe NTK Mass 0.268580 0.060338 0.392936 0.256071 0.022075 ChiDist 0.559809 0.399893 0.215630 0.603067 1.096703 Inertia 0.084169 0.009649 0.018270 0.093130 0.026551 Dim. 1 -1.199845 -0.729527 -0.069397 1.331314 2.384173 Dim. 2 0.934321 0.607944 -1.225607 0.623174 1.557699
Phần đầu bảng kết quả khá giống phân tích thành tố, ta có 3 thành tố với vai trò của chúng. Điều này có nghĩa là các biến dòng và biến cột của chúng ta có thể biểu diễn trong không gian các thành tố. Chương trình đã chọn hai thành tố là Dim. 1 và Dim. 2. Ta cũng quan sát thấy một số chi tiết của quá trình xử lý: trọng số (mass), khoảng cách khi-bình phương, tọa độ của các mức của hai biến trong mặt phẳng hai thành tố. Ta cũng có thể sử dụng lệnh summary để tìm hiểu thêm một số kết quả khác
Để thể hiện dưới dạng biểu đồ, ta sử dụng lệnh plot. Ngoài dữ liệu để vẽ, lệnh này còn khá nhiều đối số, nhưng để đơn giản, ta sử dụng giá trị mặc định của các đối số ấy, chỉ sử dụng một vài đối số để biểu đồ được cân đối, dễ nhìn hơn:
plot(kq, cex = 1.2)
Và ta thu được Hình 1.
Hình 1 Biểu đồ phân tích tương liên
Vị trí của các điểm trên Hình 1 cho ta nhiều thông tin về tương quan giữa hai biến cũng như giữa các mức thuộc hai biến ấy. Thí dụ giữa nhóm khách hàng D và thức uống cà phê có nhiều điểm tương đồng do hai điểm này rất gần nhau trên biểu đồ.
Trong chừng mực nào đó, ta có thể xem phân tích tương liên đa biến là sự mở rộng của phân tích tương liên đơn, ta cũng sử dụng các biểu đồ như Hình 1 để biểu diễn các mức của các biến. Tuy nhiên, do số biến nhiều hơn 2 nên ta không thể sử dụng bảng tham chiếu chéo để trình bày và xử lý số liệu mà dùng ma trận chỉ số và ma trận Burt.
Xét một dữ liệu gồm `p` phần tử và k biến định danh với tổng số mức là `n`. Ma trận chỉ số, được ký hiệu là `mb(G)` gồm `p` dòng và `n` cột, `n` cột được chia làm `k` nhóm, số cột trong mỗi nhóm bằng với số mức của biến tương ứng. Nếu phần tử `i` có mức `j` thì ô `ij` có giá trị là 1, ngược lại ô `ij` có giá trị là 0.
Thí dụ ta có bảng dữ liệu sau về một số thông tin cá nhân (Bảng 4)
| Giới tính | Tuổi | Tình trạng gia đình | Sở thích | |
|---|---|---|---|---|
| 1 | Nam | < 25 | Độc thân | Âm nhạc |
| 2 | Nam | > 50 | Độc thân | Thể thao |
| 3 | Nữ | 25 - 50 | Có gia đình | Công nghệ |
| 4 | Nam | > 50 | Độc thân | Xem phim |
| 5 | Nữ | 25 - 50 | Có gia đình | Xem phim |
| 6 | Nữ | 25 - 50 | Độc thân | Âm nhạc |
| 7 | Nam | < 25 | Có gia đình | Thể thao |
| 8 | Nam | > 50 | Có gia đình | Công nghệ |
| 9 | Nam | 25 - 50 | Độc thân | Âm nhạc |
| 10 | Nữ | < 25 | Có gia đình | Xem phim |
| 11 | Nữ | > 50 | Độc thân | Âm nhạc |
| 12 | Nam | < 25 | Có gia đình | Công nghệ |
Với bảng dữ liệu này, ma trận chỉ số sẽ có 12 dòng, 11 cột và có giá trị các ô như Bảng 5.
| Giới tính | Tuổi | TT_GD | Sở thích | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Nam | Nữ | < 25 | 25-50 | > 50 | ĐT | CGĐ | CN | AN | XP | TT | |||||
| 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | ||||
| 2 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | ||||
| 3 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | ||||
| 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | ||||
| 5 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | ||||
| 6 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | ||||
| 7 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | ||||
| 8 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | ||||
| 9 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | ||||
| 10 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | ||||
| 11 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | ||||
| 12 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | ||||
Ma trận Burt được xác định bằng phép nhân `mb(G)^T mb(G)`. Thí dụ từ ma trận chỉ số ở Bảng 5, ta có ma trận Burt ở Bảng 6.
| Giới tính | Tuổi | TT_GD | Sở thích | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Nam | Nữ | < 25 | 25-50 | > 50 | ĐT | CGĐ | CN | AN | XP | TT | |||||
| Giới tính |
Nam | 7 | 0 | 3 | 1 | 3 | 4 | 3 | 3 | 1 | 1 | 2 | |||
| Nữ | 0 | 5 | 1 | 3 | 1 | 2 | 3 | 1 | 2 | 2 | 0 | ||||
| Tuổi | < 25 | 3 | 1 | 4 | 0 | 0 | 1 | 3 | 1 | 1 | 1 | 1 | |||
| 25-50 | 1 | 3 | 0 | 4 | 0 | 2 | 2 | 2 | 1 | 1 | 0 | ||||
| > 50 | 3 | 1 | 0 | 0 | 4 | 3 | 1 | 1 | 1 | 1 | 1 | ||||
| TT_GD | ĐT | 4 | 2 | 1 | 2 | 3 | 6 | 0 | 1 | 3 | 1 | 1 | |||
| CGĐ | 3 | 3 | 3 | 2 | 1 | 0 | 6 | 3 | 0 | 2 | 1 | ||||
| Sở thích |
CN | 3 | 1 | 1 | 2 | 1 | 1 | 3 | 4 | 0 | 0 | 0 | |||
| AN | 1 | 2 | 1 | 1 | 1 | 3 | 0 | 0 | 3 | 0 | 0 | ||||
| XP | 1 | 2 | 1 | 1 | 1 | 1 | 2 | 0 | 0 | 3 | 0 | ||||
| TT | 2 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 2 | ||||
Từ Bảng 6, ta có một số nhận xét sau về ma trận Burt:
Trong thí dụ này, chúng ta sẽ khảo sát một số đặc điểm về sử dụng trà. Tập tin nguyên bản tea.csv thuộc phụ kiện FactoMineR. Tuy nhiên ở đây chúng ta chỉ sử dụng một phần của tập tin trên và biên tập lại để dễ hiểu và gọn gàng hơn (tập tin tra.csv).
Sau khi chuyển dữ liệu này vào R với tên tra, và dùng lệnh str để tìm hiểu nội dung, ta có:
> str(tra)
'data.frame': 300 obs. of 9 variables:
$ Gio_Co_Dinh : Factor w/ 2 levels "CD_N","CD_Y": 1 1 2 1 1 1 2 2 2 1 ...
$ Thuong_Xuyen: Factor w/ 2 levels "TX_N","TX_Y": 1 1 1 1 2 1 1 1 1 1 ...
$ Ban : Factor w/ 2 levels "Ban_N","Ban_Y": 1 1 2 1 1 1 2 1 1 1 ...
$ Loai : Factor w/ 3 levels "Den","EG","Xanh": 1 1 2 2 2 2 2 1 2 1 ...
$ Pha_Che : Factor w/ 4 levels "kh_Pha","th_Chanh",..: 1 4 1 1 1 1 1 4 4 1 ...
$ Duong : Factor w/ 2 levels "kh_Duong","th_Duong": 2 1 1 2 1 1 1 1 1 1 ...
$ Gioi_Tinh : Factor w/ 2 levels "Nam","Nu": 1 2 2 1 1 1 1 2 1 1 ...
$ Tuoi : Factor w/ 5 levels "15-24","25-34",..: 3 4 4 1 4 1 3 3 3 3 ...
$ Sang_Khoai : Factor w/ 2 levels "SK_N","SK_Y": 1 1 2 2 2 2 2 2 2 2 ...
Ta thấy dữ liệu này gồm 300 phần tử với 9 biến. Ý nghĩa của các biến và các mức như sau:
Vậy toàn bộ 9 biến đều là biến định danh.
Để phân tích tương liên đa biến, ta sử dụng lệnh mjca của phụ kiện ca. Ngoài dữ liệu, ta cần lưu ý một số đối số sau:
nd : số thành tố chính được xuất ra trong kết quả, giá trị mặc định là 2,lambda : thuật toán sử dụng khi xử lý dữ liệu, các giá trị là "indicator", "burt", "adjusted" là giá trị mặc định, và "JCA".Để đơn giản, ta sử dụng các giá trị mặc định của lệnh này và thu được một vài kết quả sau:
> library(ca)
> kq <- mjca(tra)
> summary(kq) Principal inertias (eigenvalues): dim value % cum% scree plot 1 0.009556 34.2 34.2 ************ 2 0.007169 25.7 59.9 ********* 3 0.002372 8.5 68.3 *** 4 0.000519 1.9 70.2 * 5 0.000234 0.8 71.0 6 6e-06000 0.0 71.1 -------- ----- Total: 0.027944 Columns: name mass qlt inr k=1 cor ctr k=2 cor ctr 1 | Gio_Co_Dinh:CD_N | 49 718 40 | 74 158 28 | 139 560 131 | 2 | Gio_Co_Dinh:CD_Y | 63 718 31 | -57 158 21 | -108 560 102 | 3 | Thuong_Xuyen:TX_N | 73 655 22 | -51 573 20 | 19 82 4 | 4 | Thuong_Xuyen:TX_Y | 38 655 41 | 97 573 38 | -37 82 7 | 5 | Ban:Ban_N | 39 743 43 | -78 196 25 | 130 547 91 | 6 | Ban:Ban_Y | 73 743 23 | 41 196 13 | -69 547 49 | 7 | Loai:Den | 27 584 53 | -214 583 132 | 5 0 0 | 8 | Loai:EG | 71 686 26 | 98 586 72 | -40 100 16 | 9 | Loai:Xanh | 12 687 57 | -93 98 11 | 226 589 87 | 10 | Pha_Che:kh_Pha | 72 59 22 | 16 56 2 | -3 3 0 | 11 | Pha_Che:th_Chanh | 12 132 55 | 80 113 8 | -33 20 2 | 12 | Pha_Che:th_Khac | 3 461 61 | -327 351 37 | -183 110 16 | 13 | Pha_Che:th_Sua | 23 294 48 | -45 120 5 | 54 173 10 | 14 | Duong:kh_Duong | 57 642 35 | -128 613 99 | -28 29 6 | 15 | Duong:th_Duong | 54 642 37 | 137 613 106 | 30 29 7 | 16 | Gioi_Tinh:Nam | 45 617 43 | 45 50 9 | 151 567 143 | 17 | Gioi_Tinh:Nu | 66 617 29 | -31 50 6 | -103 567 98 | 18 | Tuoi:15-24 | 34 684 50 | 171 452 104 | -123 232 71 | 19 | Tuoi:25-34 | 26 778 51 | 128 285 44 | 168 492 101 | 20 | Tuoi:35-44 | 15 424 53 | -111 339 19 | -56 85 6 | 21 | Tuoi:45-59 | 23 521 54 | -190 495 85 | 43 26 6 | 22 | Tuoi:tren_60 | 14 422 59 | -226 419 75 | -20 3 1 | 23 | Sang_Khoai:SK_N | 42 468 41 | -76 253 25 | 70 215 29 | 24 | Sang_Khoai:SK_Y | 69 468 25 | 46 253 15 | -42 215 17 |
Để có nhận định trực quan hơn, ta dùng lệnh plot để vẽ biểu đồ. Khi dữ liệu dùng để vẽ (trong trường hợp này là kq) thuộc lớp mjca, lệnh plot có khá nhiều đối số, Để đơn giản, ta sử dụng giá trị mặc định của các đối số ấy, chỉ điều chỉnh màu để có thể dễ dàng phân biệt các biến với nhau như lệnh sau:
plot(kq, collabels = "level", col = c("red", "limegreen", "brown", "azure4",
"black", "blue", "purple", "sienna", "red", "#ff00ff"))
Và thu được Hình 2.
Hình 2 Biểu đồ phân tích tương liên đa biến
Hình 2 cho chúng ta một số thông tin về sự tương quan giữa các mức của các biến (trên mặt phẳng tạo bởi hai thành tố chính), ta có thể lấy một vài thí dụ:
Trang web này được cập nhật lần cuối ngày 26/11/2018
Dữ liệu đa biến
Các chuyên đề
Xử lý dữ liệu
Ma trận
R