Phân tích nhân tố (Factor Analysis, FA) là một kỹ thuật thống kê được sử dụng để mô tả sự biến động trong một tập hợp các biến quan sát thông qua một số ít các biến không quan sát được, gọi là nhân tố. Kỹ thuật này giúp trong việc xác định cấu trúc tiềm ẩn, hay “nhân tố ẩn”, trong một tập dữ liệu, giảm số lượng biến và đồng thời giữ lại thông tin quan trọng. Phân tích nhân tố thường được áp dụng trong các lĩnh vực như tâm lý học, xã hội học, quản trị kinh doanh và nghiên cứu thị trường, nơi mà việc hiểu được các yếu tố tiềm ẩn đằng sau các mẫu dữ liệu là quan trọng.
Sự khác biệt giữa phân tích nhân tố và phân tích thành phần chính (Principal Component Analysis, PCA) thường gây nhầm lẫn. Cả hai phương pháp đều tìm cách giảm chiều dữ liệu và mô tả sự biến động của dữ liệu qua một số ít biến mới. Tuy nhiên, PCA tập trung vào việc tối đa hóa phương sai và biến đổi toàn bộ tập dữ liệu thành một tập các thành phần không tương quan, trong khi phân tích nhân tố tìm cách giải thích sự biến động trong dữ liệu thông qua các yếu tố tiềm ẩn, với giả định rằng có những biến tiềm ẩn ảnh hưởng đến các biến quan sát được. Do đó, trong khi PCA thường được sử dụng trong việc giảm kích thước dữ liệu và loại bỏ nhiễu, phân tích nhân tố lại tìm kiếm cấu trúc tiềm ẩn và ý nghĩa của dữ liệu.
Giới thiệu về các thành phần chính và Factor Analysis trong R
Phân tích nhân tố và phân tích thành phần chính (PCA) trong R là các phương pháp thống kê được sử dụng để phát hiện cấu trúc tiềm ẩn và giảm kích thước dữ liệu. Chúng giúp tìm ra mối quan hệ giữa các biến trong một tập dữ liệu bằng cách xác định những yếu tố hoặc thành phần chính đằng sau dữ liệu đó.
Khi thực hiện, phân tích này đòi hỏi dữ liệu được biểu diễn qua một ma trận tương quan hoặc hiệp phương sai, điều này có nghĩa là tất cả giá trị trong ma trận phải là số.
Trước khi bắt đầu, bạn cần làm quen với cách sử dụng ma trận trong R thông qua các hướng dẫn cơ bản.
Phân tích thành phần chính (PCA) trong R:
PCA tạo ra một tập hợp mới của các “thành phần” từ các biến gốc trong tập dữ liệu. Công thức cơ bản của thành phần chính có thể được mô tả như sau: (Z^1 = \Phi^1_1X^1 + \Phi^2_1X^2 + \Phi^3_1X^3 +…+ \Phi^p_1X^p), trong đó (Z^1) là thành phần chính đầu tiên, (\Phi^p_1) là vectơ tải bao gồm các tải (\Phi) của thành phần chính đầu tiên, và (X^1..X^p) là các biến dự đoán đã được chuẩn hóa.
Tại sao sử dụng PCA?
Mục đích chính của PCA là để hiện thị cấu trúc ẩn trong dữ liệu, giúp giảm kích thước của tập dữ liệu, làm giảm dư thừa và nhiễu, nén dữ liệu, và chuẩn bị dữ liệu cho phân tích tiếp theo.
Các hàm trong R để thực hiện PCA:
prcomp()
vàprincomp()
từ gói thống kê cơ bản của R.PCA()
từ góiFactoMineR
, chuyên biệt cho phân tích dữ liệu đa biến.dudi.pca()
từ góiade4
, hỗ trợ phân tích dữ liệu sinh thái và môi trường.acp()
từ góiamap
, cung cấp thêm các tùy chọn cho phân tích PCA.
Phân tích nhân tố và PCA trong R cung cấp một phương pháp mạnh mẽ để khám phá và hiểu rõ hơn về dữ liệu của bạn, từ việc giảm kích thước dữ liệu đến việc phát hiện ra các cấu trúc tiềm ẩn và động lực của hệ thống dữ liệu.
Thực hiện Factor các thành phần chính trong R
Bây giờ chúng tôi sẽ tiến hành triển khai Factor các thành phần chính (PCA) của riêng chúng tôi trong R. Để thực hiện hoạt động này, chúng tôi sẽ sử dụng hàm pca () được cung cấp bởi thư viện FactoMineR . Chúng tôi sẽ sử dụng bộ dữ liệu mtcars được cung cấp cho chúng tôi bởi R. Trong bộ dữ liệu này, có tổng cộng 11 tính năng, trong đó chúng tôi yêu cầu 9 tính năng vì hai trong số đó có tính chất phân loại. Sau đó, chúng tôi sẽ xem xét các đối tượng PCA của chúng tôi với sự trợ giúp của hàm summary() .
> library(FactoMineR) > pca <- PCA(mtcars[,c(1:7,10,11)], scale. = TRUE) > summary(pca)
Đầu ra:
Để hiển thị ma trận với các giá trị riêng cấu thành của nó, chúng tôi sẽ viết đoạn mã sau:
> pca$eig
Đầu ra:
Hơn nữa, để tìm mối tương quan giữa các biến và mối tương quan của chúng, chúng tôi viết dòng mã sau:
> pca$var$coord
Đầu ra:
Mặc dù đồ thị mặc định do hàm PCA () cung cấp cho chúng tôi là tốt, chúng tôi có thể chọn tạo hình ảnh trực quan tốt hơn về dữ liệu của mình bằng cách sử dụng thư viện ggbiplot. Bạn có thể cài đặt gói này như sau:
> library(devtools) > install_github("vqv/ggbiplot")
Đầu ra:
Cuối cùng, chúng tôi nhập gói này và vẽ biểu đồ PCA của chúng tôi:
> library(ggbiplot) > ggbiplot(pca)
Đầu ra:
Các phương pháp Factor thành phần chính trong R
Trong R, phân tích thành phần chính (PCA) có thể được thực hiện thông qua hai phương pháp chính: phân hủy quang phổ và phân rã giá trị số ít. Cả hai phương pháp này đều tập trung vào việc khám phá mối quan hệ hiệp phương sai hoặc tương quan giữa các biến hoặc giữa các cá nhân, nhưng chúng có những tiếp cận khác nhau trong việc xử lý dữ liệu.
Phân Hủy Quang Phổ
Phân hủy quang phổ tập trung vào việc phân tích hiệp phương sai hoặc tương quan giữa các biến. Phương pháp này sử dụng giá trị riêng và vectơ riêng của ma trận hiệp phương sai hoặc ma trận tương quan để xác định thành phần chính. Các thành phần này tóm tắt và biểu diễn dữ liệu dựa trên mức độ phương sai mà chúng giữ lại, giúp giảm kích thước dữ liệu mà vẫn giữ được thông tin quan trọng nhất.
Phân Rã Giá Trị Số Ít
Phương pháp phân rã giá trị số ít (SVD) kiểm tra hiệp phương sai hoặc tương quan giữa các cá nhân. SVD là một kỹ thuật mạnh mẽ và linh hoạt hơn, cho phép phân tích dữ liệu từ các không gian có chiều cao (số biến lớn) mà không yêu cầu ma trận phải là vuông hay đối xứng. SVD cũng được sử dụng trong các phương pháp PCA khác để tìm ra giá trị riêng và vectơ riêng.
Các Hàm prcomp() và princomp() trong R
Hàm prcomp()
prcomp(x, scale = FALSE)
x
: Ma trận số hoặc khung dữ liệu.scale
: Một giá trị logic chỉ định liệu các biến có nên được chuẩn hóa để có phương sai đơn vị trước khi thực hiện PCA hay không.
Hàm prcomp()
sử dụng phương pháp SVD để thực hiện PCA, thích hợp cho dữ liệu với số lượng biến lớn.
Hàm princomp()
princomp(x, cor = FALSE, scores = TRUE)
x
: Ma trận số hoặc khung dữ liệu.cor
: Một giá trị logic chỉ định liệu dữ liệu có được chuẩn hóa bằng cách sử dụng ma trận tương quan hay không.scores
: Một giá trị logic chỉ định liệu tọa độ của mỗi thành phần chính trên dữ liệu gốc có được tính toán hay không.
Hàm princomp()
cũng thực hiện PCA nhưng sử dụng phương pháp khác, phù hợp cho các bộ dữ liệu nhỏ hơn hoặc khi muốn sử dụng ma trận tương quan.
Cả hai hàm prcomp()
và princomp()
đều cung cấp một cách tiếp cận mạnh mẽ và linh hoạt để thực hiện PCA trong R, giúp người dùng giảm kích thước dữ liệu, phát hiện cấu trúc tiềm ẩn, và chuẩn bị dữ liệu cho các phân tích tiếp theo.
Bản tóm tắt
Chúng tôi đã nghiên cứu thành phần chính và Factor Analysis trong R. Cùng với đó, chúng tôi cũng đã thảo luận về cách sử dụng, chức năng, các thành phần của nó.
Xem thêm Các loại kỹ thuật Data mining