logo xDuLieu.com

Trang trướcPhân tích thành tố chínhTrang sau

Khái quát

 

Phân tích thành tố chính (principal component analysis) là phương pháp dùng để giản lược dữ liệu bằng cách chuyển các biến thành các thành tố, là những tổ hợp tuyến tính của các biến, với số lượng ít hơn nhưng vẫn thể hiện đúng thực tế. Nhờ đó các quá trình xử lý tiếp theo sau được dễ dàng hơn. Mặt khác, phương pháp này cũng góp phần phát hiện cấu trúc tiềm ẩn của dữ liệu, như mối tương quan giữa các biến, giữa các phần tử. Do đó, ta có thể định hướng quá trình xử lý tiếp theo.

Thí dụ trong hồ sơ sức khỏe của mọi người có hai biến là cân nặng và chiều cao. Ta có thể kết hợp hai biến này thành một thành tố, đặt tên là "thể hình" chẳng hạn. Sau đó, quá trình xử lý dữ liệu tiếp theo được dễ dàng hơn.

Phương pháp này thường được sử dụng như một bước khảo sát ban đầu, hỗ trợ cho các giai đoạn xử lý kế tiếp.


Tính chất của phân tích thành tố chính

 

Phân tích thành tố chính có một số tính chất nổi bật sau:

  • Phương pháp này thuộc nhóm các phương pháp liên thuộc (interdependent). Vì thế vai trò của các biến tham gia vào phân tích thành tố chính (gọi tắt là biến phân tích) tương đương nhau. Không có biến nào được xem là biến độc lập, cũng không có biến nào được xem là biến phụ thuộc.
  • Các biến phân tích có kiểu dữ liệu số liên tục.
  • Giữa các biến phân tích thường có tương quan tuyến tính với nhau. Người ta nhận thấy rằng khi dữ liệu có tất cả các hệ số tương quan tuyến tính `r` giữa các cặp biến đều bé hơn 0,50 thì phân tích thành tố chính không mang lại kết quả mong muốn.
  • Từ `n` biến, ta có thể tạo ra `n` thành tố độc lập tuyến tính với nhau (hay trực giao nhau).
  • Thành tố `Y` là tổ hợp tuyến tính của các biến `X_i`, nghĩa là ta có:
    `Y=c_1X_1+c_2X_2+...+c_nX_n=sum_(i=1)^n c_iX_i`(3)
  • Để thể hiện nội dung của dữ liệu, ta chỉ cần sử dụng `m` thành tố (`m < n`). Các thành tố ấy được gọi là thành tố chính.
  • Bên cạnh các biến phân tích, các phần mềm còn cho phép ta sử dụng thêm các biến phụ (supplementary). Các biến phụ này giúp việc trình bày dữ liệu trên các biểu đồ được rõ ràng hơn, giải thích các thành tố thuận tiện hơn, hay đảm trách các nhiệm vụ khác.

Một số cơ sở của phân tích thành tố chính

 

Để dễ nắm bắt hơn cơ sở của phương pháp này, chúng ta khảo sát dữ liệu có hai biến. Xét dữ liệu gồm `p` phần tử và hai biến là `X_1` và `X_2`. Ta có thể biểu diễn dữ liệu này bằng `p` điểm trên hệ trục tọa độ `X_1` và `X_2` như Hình 1a.

X1X2X1X2(1a)(1b)θ PCOHj Mj Z

Hình 1 Cơ sở của phân tích thành tố chính

Ta thấy giữa các biến và các phần tử có mối tương quan tuyến tính nhất định. Nếu ta sử dụng trục PC làm trục tọa độ mới thì vị trí của `p` điểm có thể biểu diễn một cách gần đúng bằng tọa độ của chúng trên trục PC này. Nói một cách khác, ta có thể dùng một biến mới, biểu diễn bằng trục PC, để thể hiện dữ liệu của `p` phần tử với một sai số nhỏ. Biến này được gọi là thành tố.

Tất nhiên để diễn tả chính xác hơn vị trí của các điểm, ta có thể dùng thêm một trục thứ hai (trục Z), vuông góc với trục PC. Tuy nhiên, do tọa độ của `p` điểm theo trục này không lớn nên vai trò của trục này để diễn tả vị trí `p` điểm là không nhiều. Nói một cách khác, để trình bày dữ liệu, ta có thể dùng thêm một thành tố khác (`Z`), độc lập tuyến tính với thành tố PC. Tuy nhiên vai trò của thành tố này đối với việc thể hiện dữ liệu là không đáng kể, có thể bỏ qua. Vì thế PC được gọi là thành tố chính.

Xét điểm O là tâm của `p` điểm, các tọa độ của O là `bar x_1` và `bar x_2`. Xét điểm Mj dùng để biểu diễn phần tử `j` của dữ liệu (Hình 2b). Khoảng cách `OM_j` được xác định bằng công thức:

`OM_j^2=(x_(1j)-bar x_1)^2+(x_(2j)-bar x_2)^2`(4)

hay :

`OM_j=sqrt( (x_(1j)-bar x_1)^2+(x_(2j)-bar x_2)^2 )`(5)

Gọi `Y` là một trục qua O. Chiếu Mj lên trục này, ta có điểm Hj. Vậy:

`OH_j=OM_j cos theta`(6)

hay :

`OH_j^2=[ (x_(1j)-bar x_1)^2+(x_(2j)-bar x_2)^2 ] cos^2 theta`(7)

Đặt :

`S=sum_(j=1)^m OH_j^2`(8)

Theo Hình 1, ta thấy để `Y` là thành tố chính đầu tiên thì `S` phải có giá trị lớn nhất.

Ghi chú

  • Ta nhận xét rằng `S` là tổng phương sai của `p` phần tử theo phương PC.
  • Khi dữ liệu có nhiều hơn 2 biến, thành tố chính thứ hai PC2 vuông góc với thành tố chính thứ nhất PC1 và có tổng phương sai theo phương PC2 lớn thứ hai. Tương tự cho PC3, PC4, . . .

Ta cũng có nhận xét rằng nội dung (hoặc thông tin) của dữ liệu có thể được đặc trưng bằng tổng phương sai. Nếu tổng phương sai càng lớn, nội dung của dữ liệu càng được thể hiện đầy đủ.


Phân tích thành tố chính

 

Trong phần này ta sẽ xem xét một số nội dung cơ bản của phân tích thành tố chính. Để được thuận tiện, ta sẽ khảo sát một thí dụ và dùng R để xử lý kết quả.

Thí dụ

Trên Bảng 1 là doanh số trung bình mỗi ngày của 9 cửa hàng. Dữ liệu này cũng được ghi lại trong tập tin doanh-so.csv.

Bảng 1 Doanh số của một số nhóm mặt hàng tại 9 cửa hàng
CH Thit_Ca Rau_Qua VPP Nhua Tong Tr_Binh TR_VN
AN 31 29 25 27 112 28 1,15
CHI 41 40 41 38 160 40 1,03
DUY 30 35 56 47 168 42 0,63
KIM 73 72 76 75 296 74 0,96
LONG 70 69 61 64 264 66 1,11
NAM 54 48 27 35 164 41 1,65
OANH 28 35 68 57 188 47 0,5
THU 66 62 44 48 220 55 1,39
VINH 46 47 63 60 216 54 0,76

Bảng trên gồm 8 biến sau :

  • CH : ký hiệu của cửa hàng,
  • Thit_Ca : doanh số của nhóm sản phẩm thịt cá,
  • Rau_Qua : doanh số của nhóm sản phẩm rau quả,
  • VPP : doanh số của nhóm sản phẩm văn phòng phẩm,
  • Nhua : doanh số của nhóm sản phẩm vật dụng nhựa,
  • Tong : tổng doanh số của tất cả bốn nhóm,
  • Tr_Binh : doanh số trung bình của mỗi nhóm sản phẩm,
  • TR_VN : tỷ số doanh số của nhóm sản phẩm thịt cá & rau quả so với nhóm văn phòng phẩm & nhựa.

Trong dữ liệu này, bốn biến Thit_Ca, Rau_Qua, VPP, Nhua là bốn biến phân tích, được sử dụng để phân tích thành tố chính. Các biến còn lại là các biến phụ.


Xem xét sơ bộ

Trước hết, ta đưa bảng dữ liệu này vào R với tên ds. Sau đó xem xét sơ lược về mối tương quan giữa các biến (ngoại trừ CH) bằng lệnh cor(ds[,-1]). Ta thu được kết quả sau:

> cor(ds[,-1])
          Thit_Ca   Rau_Qua        VPP       Nhua        Tong     Tr_Binh       TR_VN
Thit_Ca 1.0000000 0.9778076  0.2470041  0.5387860  0.80786977  0.80786977  0.51511143
Rau_Qua 0.9778076 1.0000000  0.4369798  0.6935397  0.90903948  0.90903948  0.33277898
VPP     0.2470041 0.4369798  1.0000000  0.9439201  0.77012671  0.77012671 -0.68458540
Nhua    0.5387860 0.6935397  0.9439201  1.0000000  0.92997971  0.92997971 -0.41824727
Tong    0.8078698 0.9090395  0.7701267  0.9299797  1.00000000  1.00000000 -0.07627549
Tr_Binh 0.8078698 0.9090395  0.7701267  0.9299797  1.00000000  1.00000000 -0.07627549
TR_VN   0.5151114 0.3327790 -0.6845854 -0.4182473 -0.07627549 -0.07627549  1.00000000

Bảng kết quả này cho ta thấy một số điểm sau :

  • Hệ số tương quan giữa hai biến Tong và Tr_Binh là 1. Điều này do biến Tr_Binh được tính từ biến Tong (Tr_Binh = Tong / 4).
  • Đối với các biến phân tích, trong số 6 cặp biến, có 4 cặp biến có hệ số tương quan tuyến tính `r` lớn hơn 0,50. Điều này cho thấy ta có thể áp dụng phân tích thành tố chính cho dữ liệu này.

Phân tích thành tố với hàm prcomp

Trong phụ kiện stats của R, ta có thể sử dụng hai hàm là prcompprincomp để phân tích thành tố. Sự khác biệt chính của hai hàm này là cách phân giải (decomposition) ma trận tương quan hay ma trận hiệp phương sai. Ngoài ra, phương pháp xác định hiệp phương sai cũng khác nhau một ít.

  • prcomp dùng phép phân giải dựa trên các giá trị suy biến (singular value) của các ma trận; vì thế cách phân giải này thường được biết dưới tên phân giải theo giá trị suy biến (singular value decomposition hay SVD). Ngoài ra, khi tính hiệp phương sai, xem dữ liệu như của một mẫu, nên chia cho `p-1`.
  • princomp dùng phép phân giải dựa trên các giá trị riêng (eigenvalue) của các ma trận, vì thế cách phân giải này thường được biết dưới tên phân giải theo giá trị riêng (eigen decomposition). Ngoài ra, khi tính hiệp phương sai, xem dữ liệu như của một tổng thể, nên chia cho `p`.

Theo ý kiến của nhiều tác giả, prcomp được sử dụng phổ biến hơn, do có mức độ chính xác cao hơn, cho kết quả tốt hơn. Trong thí dụ này, ta dùng hàm prcomp để phân tích thành tố.

Khi sử dụng prcomp, ta cần lưu ý đến các đối số centerscale. Hai đối số này liên quan đến sự chuyển đổi biến trước khi phân tích thành tố.

  • Nếu center = TRUE (giá trị mặc định), các giá trị sau khi chuyển đổi `X_(cd)` có trung bình bằng 0 (biến định tâm), nghĩa là:

    `X_(cd)=X-bar x`(9)

  • Nếu scale = TRUE, các biến sẽ được chuẩn hóa (standardized), nghĩa là sau khi chuyển đổi, giá trị biến có phân phổi chuẩn với trung bình là 0 và độ lệch chuẩn là 1. Giá trị mặc định của đối số này là scale = FALSE.

Ta phân tích thành tố với 4 biến Thit_Ca, Rau_Qua, VPP, Nhua với các đối số mặc định và lưu kết quả vào biến pc với lệnh sau:

 pc <- prcomp(ds[, 2:5])

Dùng hàm summary để xem xét kết quả, ta có :

> summary(pc)
Importance of components:
                           PC1     PC2     PC3    PC4
Standard deviation     28.3768 17.7119 1.32015 0.5763
Proportion of Variance  0.7183  0.2798 0.00155 0.0003
Cumulative Proportion   0.7183  0.9981 0.99970 1.0000

Bảng này cho ta thấy :

  • Kết quả gồm 4 thành tố (PC) và vai trò thể hiện dữ liệu của các thành tố này được xếp theo thứ tự giảm dần khi chuyển tử trái sang phải.
  • Trên dòng "Proportion of Variance", ta thấy PC1 thể hiện 71,83% nội dung dữ liệu, PC2 thể hiện 27,98% nội dung dữ liệu, . . .
  • Dòng "Cummulative Proportion", cho ta thấy chỉ cần 2 thành tố PC1 và PC2, ta có thể thể hiện 99,81% nội dung dữ liệu.

Để tìm hiểu chi tiết hơn các thành tố, ta dùng lệnh print(pc), hay đơn giản hơn là pc, ta thu được kết quả:

> pc
Standard deviations:
[1] 28.3767680 17.7119156  1.3201467  0.5762586

Rotation:
              PC1        PC2        PC3        PC4
Thit_Ca 0.5107429  0.5812543 -0.1121297 -0.6234678
Rau_Qua 0.5060181  0.3578137  0.3976566  0.6765975
VPP     0.4827043 -0.6556658  0.4942081 -0.3047249
Nhua    0.5000839 -0.3228238 -0.7648885  0.2462650

Từ bảng kết quả này ta rút ra một số nhận xét sau:

  • Trên những cột PC là các hệ số tải (loading) cho ta biết vai trò của các biến trong các thành tố. Thí dụ với PC1, vai trò các biến gần như ngang nhau. Với PC2, vai trò của VPP có nổi trội hơn các biến khác, nhưng theo chiều hướng ngược với PC2.
  • Ta cũng có nhận xét là tổng bình phương của các hệ số này theo dòng hay theo cột đều bằng 1. Nghĩa là các điểm biểu diễn các biến trong không gian tạo từ các thành tố cùng nằm trên một mặt cầu có bán kính là 1. Tương tự, các điểm biểu diễn các thành tố trong không gian tạo từ các biến cũng nằm trên mặt cầu có bán kính là 1.

Kết quả xử lý bằng lệnh prcomp được lưu trong một danh sánh có 5 thành phần: "sdev", "rotation", "center", "scale", "x". Để biết được tọa độ mới của `p` phần tử trong không gian tạo từ các thành tố, ta dùng lệnh pc$x. Ta có kết quả sau:

> pc$x
             PC1        PC2         PC3         PC4
 [1,] -43.190413   7.323178 -1.06479184  0.15173598
 [2,] -19.292593   3.029956  1.68169077 -0.80705156
 [3,] -15.699537 -17.893311  1.45595960  0.31361845
 [4,]  48.641514  -1.812656 -0.18503726 -0.66046423
 [5,]  32.849744   8.756190 -0.04096646  1.04210435
 [6,] -16.862902  23.596563 -1.21899048  0.02800061
 [7,]  -5.927732 -30.152047 -0.03816854  0.36650570
 [8,]  11.057330  20.237977  1.46063377  0.03987528
 [9,]   8.424588 -13.085849 -2.05032958 -0.47432458

Ta cũng nhận xét thêm rằng tọa độ của các điểm trên PC3 và PC4 nhỏ hơn nhiều so với PC1 và PC2. Điều này một lần nữa cho ta thấy vai trò của PC3 và PC4 là không đáng kể trong việc thể hiện nội dung của dữ liệu.


Biểu đồ trong phân tích thành tố

 

Khái quát

Phân tích thành tố, trong chừng mực nào đó, là một phương pháp khá trừu tượng. Để phần nào làm việc nắm bắt phương pháp này dễ dàng hơn, người ta thường dùng các biểu đồ để trình bày kết quả. Có ba loại biểu đồ chính:

  • Biểu đồ thể hiện vị trí của các phần tử trong mặt phẳng tạo bởi các thành tố chính. Biểu đồ này thường được gọi là biểu đồ phần tử.
  • Biểu đồ thể hiện tương quan giữa biến và thành tố, cũng như giữa các biến, trong mặt phẳng tạo bởi các thành tố chính. Biểu đồ này thường được gọi là biểu đồ biến.
  • Biểu đồ kép kết hợp cả hai loại trên (biplot)

Để minh họa, ta sử dụng tiếp dữ liệu từ thí dụ trên. Tuy nhiên để các biểu đồ được rõ ràng hơn, ta sử dụng phụ kiện FactoMineR.


Phân tích thành tố bằng PCA

Trước hết, để phân tích thành tố chính, chúng ta không sử dụng prcomp hay princomp của phụ kiện stats mà sử dụng hàm PCA của FactoMineR. Hàm này có khả năng xử lý thêm các biến phụ và kết quả tạo ra phong phú hơn nhiều với 21 hạng mục khác nhau (so với 5 hạng mục của prcomp). Nhờ đó tạo ra được các biểu đồ với chất lượng khá hơn. Khi sử dụng hàm này, ta lưu ý các đổi số sau:

  • scale.unit : nếu đối số này bằng TRUE (giá trị mặc định), các biến sẽ được chuẩn hóa.
  • ncp : số thành tố được trình bày trong kết quả, giá trị mặc định là 5.
  • quanti.sup : danh sách các biến phụ có kiểu số.
  • quali.sup : danh sách các biến phụ có kiểu định danh.
  • graph : nếu đối số này bằng TRUE (giá trị mặc định), biểu đồ phần tử và biểu đồ biến sẽ được vẽ.
  • axes : danh sách hai thành tố được dùng để vẽ biểu đồ (khi graph = TRUE), giá trị mặc định là c(1, 2).

Như vậy, ta dùng đoạn lệnh sau để phân tích thành tố chính :

 library(FactoMineR)
 ds <- ds[ , c("CH", "Thit_Ca", "Rau_Qua", "VPP", "Nhua", "Tong", "TR_VN")]
 pcf <- PCA(ds, ncp=4, quanti.sup=c(6,7), quali.sup=c(1:1), graph = FALSE)

Trong đoạn lệnh trên, ta đã khai báo thêm hai biến phụ có kiểu số (Tong và TR_VN) và một biến phụ có kiểu định danh (CH). Ở đây ta đặt graph = FALSE vì ta muốn sử dụng lệnh vẽ riêng, có thể tinh chỉnh để biểu đồ đẹp hơn và đầy đủ hơn. Kết quả xử lý từ đoạn lệnh được lưu vào biến pcf. Ta có thể dùng lệnh summary để xem xét kết quả.

> summary(pcf)

Call:
PCA(X = ds, ncp = 4, quanti.sup = c(6, 7), quali.sup = c(1:1),  
     graph = FALSE) 


Eigenvalues
                       Dim.1   Dim.2   Dim.3   Dim.4
Variance               2.937   1.055   0.007   0.001
% of var.             73.435  26.368   0.168   0.030
Cumulative % of var.  73.435  99.802  99.970 100.000

Individuals
            Dist    Dim.1    ctr   cos2    Dim.2    ctr   cos2    Dim.3    ctr   cos2  
1       |  2.796 | -2.760 28.808  0.974 | -0.445  2.086  0.025 | -0.071  8.264  0.001 |
2       |  1.271 | -1.249  5.904  0.966 | -0.199  0.416  0.024 |  0.109 19.790  0.007 |
3       |  1.489 | -1.013  3.879  0.462 |  1.088 12.461  0.533 |  0.097 15.539  0.004 |
4       |  3.114 |  3.111 36.617  0.998 |  0.117  0.145  0.001 | -0.012  0.256  0.000 |
5       |  2.183 |  2.114 16.907  0.938 | -0.538  3.054  0.061 | -0.001  0.004  0.000 |
6       |  1.799 | -1.071  4.337  0.354 | -1.443 21.930  0.644 | -0.081 10.980  0.002 |
7       |  1.892 | -0.382  0.551  0.041 |  1.853 36.190  0.959 | -0.001  0.001  0.000 |
8       |  1.443 |  0.705  1.882  0.239 | -1.255 16.599  0.757 |  0.095 15.056  0.004 |
9       |  0.995 |  0.543  1.115  0.298 |  0.822  7.118  0.683 | -0.135 30.109  0.018 |

Variables
           Dim.1    ctr   cos2    Dim.2    ctr   cos2    Dim.3    ctr   cos2  
Thit_Ca |  0.816 22.665  0.666 | -0.578 31.630  0.334 | -0.011  1.886  0.000 |
Rau_Qua |  0.915 28.480  0.837 | -0.402 15.349  0.162 |  0.033 16.026  0.001 |
VPP     |  0.761 19.719  0.579 |  0.647 39.694  0.419 |  0.045 29.756  0.002 |
Nhua    |  0.925 29.137  0.856 |  0.375 13.327  0.141 | -0.059 52.332  0.004 |

Supplementary continuous variables
           Dim.1   cos2    Dim.2   cos2    Dim.3   cos2  
Tong    |  1.000  1.000 |  0.014  0.000 |  0.004  0.000 |
TR_VN   | -0.062  0.004 | -0.978  0.956 | -0.102  0.011 |

Supplementary categories
            Dist    Dim.1   cos2 v.test    Dim.2   cos2 v.test    Dim.3   cos2 v.test  
AN      |  2.796 | -2.760  0.974 -1.610 | -0.445  0.025 -0.433 | -0.071  0.001 -0.862 |
CHI     |  1.271 | -1.249  0.966 -0.729 | -0.199  0.024 -0.193 |  0.109  0.007  1.335 |
DUY     |  1.489 | -1.013  0.462 -0.591 |  1.088  0.533  1.059 |  0.097  0.004  1.183 |
KIM     |  3.114 |  3.111  0.998  1.815 |  0.117  0.001  0.114 | -0.012  0.000 -0.152 |
LONG    |  2.183 |  2.114  0.938  1.234 | -0.538  0.061 -0.524 | -0.001  0.000 -0.018 |
NAM     |  1.799 | -1.071  0.354 -0.625 | -1.443  0.644 -1.405 | -0.081  0.002 -0.994 |
OANH    |  1.892 | -0.382  0.041 -0.223 |  1.853  0.959  1.805 | -0.001  0.000 -0.009 |
THU     |  1.443 |  0.705  0.239  0.412 | -1.255  0.757 -1.222 |  0.095  0.004  1.164 |
VINH    |  0.995 |  0.543  0.298  0.317 |  0.822  0.683  0.800 | -0.135  0.018 -1.646 |

Ta nhận thấy kết quả khi phân tích bằng lệnh PCA phong phú hơn so với khi dùng lệnh prcomp. Một số sự khác biệt giữa bảng kết quả này với kết quả mà ta đã thực hiện như tỷ lệ phương sai, do ở đây, chúng ta xử lý dữ liệu đã được chuẩn hóa. Mặt khác trên các cột "Dim" trong phần "Variables" không phải là hệ số tải mà là tọa độ của biến trong không gian thành tố.

Các biểu đồ mà ta sẽ vẽ trong phần sau sử dụng thông tin từ bảng kết quả này.


Vẽ biểu đồ bằng plot

Để vẽ bằng FactoMineR, cũng dùng lệnh plot cho một số loại biểu đồ. Khi sử dụng lệnh này, ta cần lưu ý một số đối số sau:

  • axes : danh sách hai thành tố được dùng để làm hai trục trên biểu đồ, giá trị mặc định là c(1, 2).
  • choix : loại biểu đồ dự định vẽ. Nếu là "ind", biểu đồ phần tử được vẽ; nếu là "var", biểu đồ biến được vẽ; nếu là "varcor", biểu đồ biến được vẽ cùng với vòng tròn tương quan (correlation circle).
  • col.xx : Màu sắc thể hiện của đối tượng xx.
  • label : Tên của đối tượng thể hiện trên biểu đồ, mặc định là "all".

Đối với thí dụ đang xem xét, để vẽ biểu đồ biến, ta sử dụng lệnh sau:

 plot(pcf, choix = "var", col.var = "red", col.quanti.sup = "blue", cex = 0.9,
     title = "Biểu đồ các biến trong phân tích thành tố")

Ta thu được Hình 2.

Hình 2 Biểu đồ biến trong phân tích thành tố.

Trên biểu đồ này, các biến được biểu diễn bằng các vectơ có gốc là gốc hệ tọa độ thay vì các điểm. Trong trường hợp của chúng ta, điểm ngọn của các vectơ nằm trên vòng tròn có bán kính 1 được gọi là vòng tròn tương quan (correlation circle). Tọa độ các điểm ngọn này được cho trong phần "Variables" của bảng kết quả bên trên (thí dụ biến Thit_Ca có Dim1 là `0,816` và Dim2 là `-0,445`).

Trên biểu đồ này, ta thấy biến Tong gần như trùng với trục thành tố 1, như vậy ý nghĩa của thành tố 1 này là tổng doanh số. Tương tự, biến TR_VN nằm rất gần trục thành tố 2, như vậy thành tố 2 biểu thị tỷ số của doanh số hai nhóm sản phẩm thịt cá và rau quả so với doanh số hai nhóm sản phẩm văn phòng phẩm và nhựa.

Để vẽ biểu đồ phần tử, ta dùng lệnh sau:

 plot(pcf, choix = "ind", label = "quali", cex = 0.8, col.quali = "red",
     title = "Biểu đồ các phần tử trong phân tích thành tố")

Và ta thu được Hình 3.

Hình 3 Biểu đồ phần tử trong phân tích thành tố.

Kết hợp với biểu đồ biến ở Hình 2, ta có một số kết luận sau:

  • hai trục biểu diễn hai thành tố chính chia mặt phẳng làm bốn vùng,
  • hai vùng ở bên phải là các cửa hàng có tổng doanh số cao, hai vùng ở bên trái là các cửa hàng có tổng doanh số thấp,
  • hai vùng ở phía trên là các cửa hàng có doanh số nhóm văn phòng phẩm & nhựa cao hơn nhóm thực phẩm, hai vùng phía dưới ngược lại,
  • cửa hàng "KIM" có doanh số cao nhất, cửa hàng "AN" có doanh số thấp nhất,
  • của hàng "OANH" có doanh số chủ yếu từ văn phòng phẩm và sản phẩm nhựa, của hàng "NAM" có doanh số từ các sản phẩm thực phẩm cao hơn.

Dựa vào các biểu đồ này ta cũng có thể phân loại các cửa hàng theo một số tiêu chí dựa trên doanh số.

Ta thấy phụ kiện FactoMineR hỗ trợ tốt để vẽ biểu đồ biến và biểu đồ phần tử. Tuy nhiên phụ kiện này lại không hỗ trợ ta vẽ biểu đồ kép. Vì vậy để vẽ biểu đồ kép ta sử dụng phụ kiện stats (đã được kích hoạt sẵn khi khởi động R) và hàm biplot. Với thí dụ trên, ta có thể sử dụng đoạn lệnh sau:

 par(mar=c(5,3,5,1))
 biplot(pc, xlim = c(-0.6, 0.7), cex = 0.9, main = "Biểu đồ kép trong phân tích thành tố")
 abline(h = 0, lty = "55")
 abline(v = 0, lty = "55")

Ta thu được biểu đồ kép trên Hinh 4

Hình 4 Biểu đồ kép trong phân tích thành tố.

Ta cũng lưu ý thêm là biểu đồ này được vẽ tương ứng với các biến được định tâm nhưng không chuẩn hóa. Các trục có hai thang đo, một thang cho giá trị định tâm, một thang cho hệ số tải.


Một số lưu ý khi phân tích thành tố

 

Chuẩn hóa các biến

Vấn đề có nên chuẩn hóa các biến hay không được tranh luận rất nhiều. Theo đó mỗi cách đều có những ưu điểm và hạn chế nhất định. Bạn có thể tham khảo về chủ đề này trong các tài liệu chuyên môn hay trên các diễn đàn về xử lý số liệu đa biến hay về phương pháp phân tích thành tố. Về mặt ứng dụng trong thực tiễn, ta có thể tham khảo xu hướng chung như sau:

  • Nếu các biến sử dụng các đơn vị khác nhau, có giá trị chênh lệch đáng kể, ta nên chuẩn hóa các biến. Khi ấy việc đánh giá vai trò của các biến trong các thành tố chính xác hơn, hợp lý hơn.
  • Nếu các biến sử dụng cùng một đơn vị, giá trị chênh lệch không quá nhiều (như thí dụ trên), ta không nên chuẩn hóa các biến. Khi ấy, quá trình phân tích không mất đi thông tin của dữ liệu.

Trong nhiều trường hợp, việc chọn lựa còn dựa vào kinh nghiệm của người xử lý dữ liệu.


Biểu đồ biến khi có nhiều thành tố chính

Trong thí dụ trên, do hai thành tố chính có khả năng thể hiện đến 99,81% nội dung của dữ liệu nên điểm biểu diễn các biến gần như nằm trên vòng tròn tương quan. Nhưng khi số thành tố chính nhiều hơn 2, thì hai thành tố chính chỉ thể hiện một tỷ lệ ít hơn nội dung của dữ liệu. Vì thế các điểm biểu diễn không nằm trên vòng tròn, một số điểm còn nằm gần gốc tọa độ, tâm của vòng tròn tương quan. Khi ấy chỉ có các biến có điểm biểu diễn vừa gần các trục, vừa xa tâm mới có khả năng đóng góp (contribution) vào việc giải thích ý nghĩa các thành tố.


Các bước phát triển tiếp theo

Như đã trình bày ở trên, phân tích thành tố chính được dùng như một bước khảo sát ban đầu. Từ kết quả của phương pháp xử lý này ta có thể tiếp tục theo một số hướng khác nhau.

  • Phân tích thành tố có thể giúp ta nhận biết được vị trí của các phần tử trong dữ liệu. Điều này giúp ta một số cơ sở để phân loại các phần tử.
  • Phân tích thành tố giúp ta hình thành các nhóm phần tử khác nhau. Ta có thể dùng phân tích phương sai để đánh giá sự khác biệt của các nhóm ấy.
  • Ta cũng có thể xem các thành tố như các biến độc lập để tiến hành hồi quy.

Các nội dung này sẽ được đề cập trong các phần và các chương kế tiếp.



Trang trướcVề đầu chươngTrang sau


Trang web này được cập nhật lần cuối ngày 26/11/2018