Principal Component Analysis Là Gì

Chuyên mục

0. DỰ ÁN (16)1. ỨNG DỤNG TOÁN HỌC (383)2. TÀI CHÍNH và KINH TẾ (743)3. PHẦN MỀM TOÁN HỌC (62)4. GIÁO DỤC và NCKH (188)5. TÀI LIỆU (59)

Bài & Trang được xứng đáng chú ý

Bài viết mới


Giới thiệu về phương thức Principal Component Analysis (PCA) và một vài ứng dụng vào tài thiết yếu (PhầnI)


Giới thiệu về cách thức Principal Component Analysis (PCA) và một số ứng dụng trong tài chính (Phần I)


1. Cách thức phân tích thành phần chính – Principle Component Analysis (PCA) là gì:

Trong loạt bài này shop chúng tôi xin được trình diễn về phương pháp Principle Component Analysis (PCA), đây là một công dụng rất đẹp nhất của đại số mà ngày này được áp dụng trong rất nhiều lĩnh vực: công nghệ thông tin, Sinh học,… với cả trong Tài chính.

Bạn đang xem: Principal component analysis là gì


Với dữ liệu cần so với ban đầu phụ thuộc các biến, sự việc là các biến này thường xuyên có tương quan liêu với nhau sẽ vô ích cho việc áp dụng các biến này nhằm xây dựng các mô hình đo lường và tính toán ví dụ: hồi quy… cùng với số biến giải thích lớn họ sẽ siêu khó để có cái quan sát trực quan tiền về tài liệu ví dụ: thị trường ta quan tâm có hàng vạn mã cp làm giải pháp nào để khi quan lại sát tài liệu từ hàng ngàn cổ phiếu này ta tưởng tượng được xu thế của toàn thị trường…

Phương pháp PCA sẽ “chiếu” (biễu diễn) tài liệu đa chiều lên một không gian có cơ sở trực giao, tức nếu như ta coi mỗi các đại lý trong không khí mới là 1 biến thì hình hình ảnh của tài liệu gốc trong không gian mới này sẽ tiến hành biểu diễn thông qua các biến độc lập (tuyến tính). Vấn đề: nếu chuyển dữ liệu ban sơ sang không gian mới thì những thông tin đáng thân thiết của dữ liệu lúc đầu liệu tất cả bị mất? Để giải quyết và xử lý vấn đề này phương pháp PCA sẽ tìm không gian mới với tiêu chí cố gắng phản ánh được càng nhiều tin tức gốc càng tốt, với thước đo cho khái niệm “thông tin” tại đây là phương sai. Một điểm tốt nữa là: do các biến trong không gian mới độc lâp, yêu cầu ta rất có thể tính toán được tỷ lệ lý giải phương sai của từng biến chuyển mới so với dữ liệu, điều này được cho phép ta cân nhắc việc chỉ dùng số ít các biến để giải thích dữ liệu.

Các ứng dụng tự nhiên mà ta rất có thể nhận ra là:

– Giảm kích cỡ của dữ liệu.

– nếu ta có thể giảm số chiều về 2 hoặc 3 chiều, ta có thể dùng những loại thứ thị để hiểu thêm về dữ liệu mà mình đã có, hỗ trợ chúng ta nhìn tài liệu trực quan hơn.

– Sử lý vấn đề tương quan giữa những biến vào dữ liệu ban đầu bằng biện pháp sử dụng các biến new trong không gian mà phương pháp PCA kiếm được để biểu hiện dữ liệu.

* họ sẽ bước đầu bằng một ví dụ mang ý nghĩa chất minh họa trực quan:

Chúng ta gồm 2 biến X1 và X2 có đối sánh tương quan (tuyến tính), được biểu diển bằng đồ thị sau:

*

Ta hiểu được khi triển khai các đối chiếu đa biến mà trong những số ấy các thay đổi có đối sánh tương quan với nhau là rất khó chịu!

Ta sẽ đào thải sự tương quan này bằng phương pháp xoay trục (cơ sở)

*

*

Ta thấy rằng dữ liệu trên trục bắt đầu đã sút sự đối sánh tương quan đáng kể (biến Y1 và Y2 gần như ko tương quan), với sự thay đổi của tài liệu phụ thuộc phần nhiều vào biến Y1, ta có thể chỉ dung một biến Y1 để màn biểu diễn dữ liệu, điều này giúp ta giảm số chiều tài liệu mà không có tác dụng giàm quá nhiều “phương sai” của dữ liệu. Đây cũng bao gồm là tư tưởng của cách thức PCA. Sau đây bọn họ sẽ làm rõ hơn về mặt định hướng của cách thức này

* Nền tảng toán học tập cho cách thức PCA : Trong phần này công ty chúng tôi sẽ giới thiệu cơ sở toán học của PCA một giải pháp ngắn gọn cùng vắn tắt.

Cho thay đổi ngẫu nhiên X có p chiều, X=(x1,…,xp) mô tả dữ liệu ban đầu và ta có ma trận hiệp phương sai là:

S=(sij)1≤i≤p, 1≤j≤p

* Ý tưởng bao gồm :

Ta tìm những biến thiên nhiên mới y có dạng là tổ hợp tuyến tính của các thành phần của X sao cho y có phương không nên càng to càng tốt (chứa các thông tin), về mặt hình thức ta viết lại vụ việc trên: Tìm y có dạng y=∑pi=1aixi sao cho Var(y) lớn nhất có thể. Không mất tính bao quát và để dễ dàng tính toán, ta mang sử kỳ vọng của các thành phần trong X là 0 với phương sai bằng 1, cơ hội đó ta có:

Var(y)=∑pi=1∑pj=1aiajsij=aTSa

với a=(a1,..,ap), và aTa=1. Như vậy, ta đề nghị giải việc tối ưu với đk biên:

max aTSa với đk biên aTa=1

bằng phương pháp nhân tử Largrange ta chuyển việc này thành:

max aTSa−λ(1−aTa)

nên ta có a là nghiệm của Sa=λa, dễ dàng thấy: a chính là vecto riêng, còn λ chính là trị riêng tương ứng của ma trận S.

Xem thêm: " Trình Độ Học Vấn Tiếng Anh : Cưa Đổ Nhà Tuyển Dụng Ngay Từ Cái Nhìn Đầu Tiên

Chú ý: S là ma trận đối xứng nửa xác định dương (symmetric positive semidefinite), và cho nên vì vậy có các trị riêng ko âm và những vecto riêng rẽ lập thành chúng ta trực giao.

Giả sử S có p trị riêng (λi)1≤i≤p và p vecto riêng (a(i))1≤i≤p tương ứng, bởi vì điều kiện aTa=1 nên ta thấy (a(i))1≤i≤p là họ các đại lý trực chuẩn trong không gian mới.

Ta thấy phương sai của hình chiếu của dữ liệu ban đầu lên các đại lý thứ i (a(i)) chính là trị riêng đồ vật i (λi), do đó ta xác định các thành phần bao gồm dựa theo độ béo của quý giá riệng. Ví dụ: thành phần quan trọng nhất, là hình chiếu của tài liệu lên vecto riêng biệt ứng với trị riêng béo nhất…

Ngoài ra ta có: ∑pi=1λi=∑pi=1sii là tổng phương sai, bạn ta giỏi dùng λi∑pi=1λi để thể hiện mức độ phản bội ánh tài liệu gốc theo thành phần vật dụng i, ví dụ: ta bao gồm tổng phương sai là 2 (∑pi=1λi), trị riêng của yếu tố thứ 1 là 0.4, hoàn toàn có thể hiểu là thành phần máy 1 biểu đạt được 0.4/2*100 phần trăm phương sai của dữ liệu, trị riêng rẽ của thành phần thứ hai là 0.3, rất có thể hiểu là thành phần thứ 2 thể hiện tại được 0.3/2*100 tỷ lệ phương sai của dữ liệu, có thể nhận định thành phần máy 1 quan trọng đặc biệt hơn thành phần sản phẩm 2.

* Ví dụ mô tả cách đo lường và tính toán PCA bằng Matlab:

Giả sử ta có dữ liệu gốc gồm có 3 biến chuyển (3 cột), ta khai báo bên dưới dạng ma trận trong Matlab như sau:

A = <269.8 38.9 50.5272.4 39.5 50.0270.0 38.9 50.5272.0 39.3 50.2269.8 38.9 50.5269.8 38.9 50.5268.2 38.6 50.2268.2 38.6 50.8267.0 38.2 51.1267.8 38.4 51.0273.6 39.6 50.0271.2 39.1 50.4269.8 38.9 50.5270.0 38.9 50.5270.0 38.9 50.5>; 

Ta chú ý: dịp xây dựng định hướng ở trên ta vẫn giả sử trung bình của các biến trong dữ liệu ban đầu bằng 0 với phương sai bằng 1, phải việc thứ nhất ta bắt buộc làm là chuẩn chỉnh hóa (standardization), ta có thể dùng hàmzscore trong Matlab:

B=zscore(A)

Ta hoàn toàn có thể tính ma trận hiệp phương sai bằng hàm cov trong Matlab, cùng tìm trị riêng cũng như các vecto riêng tương ứng bằng hàm eig

  = eig(cov(B))

Lúc này V là một ma trận với những cột là các vecto riêng, D là một ma trận chéo chứa các trị riêng biệt tương ứng

Để đơn giản, Matlab gồm hàm princomp:

= princomp(B)

COEFF tương từ như ma trận V với những cột là các vecto riêng, LATENT là vecto chứa những trị riêng, vàSCORE là hình ảnh của tài liệu trong cửa hàng mới.

Ta thấy SCORE=B*COEFF

Sử dụng lệnh cumsum(LATENT) / sum(LATENT) ta được vecto: 0.9375 0.9978 1.0000

Có thể hiểu: thành phần thứ nhất (cơ sở mới) giải thích được khoảng 94% phương sai, thành phần trước tiên và thiết bị 2 phối hợp sẽ giải thích được hơn 99% phương sai.

2. Eigen Portfolio cho thị phần chứng khoán Việt Nam:

Ta tính lợi nhuận của những cổ phiếu (ma trận ret)

for i=2:size(data,1)

% ret(i,:)=log((data(i,:))./data(i-1,:));

ret(i,:)=(data(i,:)-data(i-1,:))./data(i-1,:);

end

Chuẩn hóa dữ liệu (sao mang đến trung bình bởi 0, với phương không nên 1)

X=zscore(ret);

Tính ma các vecto riêng và trị riêng của ma trận hiệp phương sai với hiển thị khả năng giải thích phương không nên của 3 nguyên tố chính)

= princomp(X);

percent=cumsum(latent)./sum(latent);

percent(1:3)

Ta sẽ tạo nên một portfolio trường đoản cú vecto riêng lắp thêm I (giải thích được không ít phương sai nhất, trong trường phù hợp này là khoảng 43%), ta có cách gọi khác đây là Eigen Portfolio (màu xanh), và so sánh với đường VN30-index(màu đỏ)

w=COEFF(:,1)./(sum(COEFF(:,1)));

COEFF(:,1): là vecto riêng rẽ ứng cùng với trị riêng lớn nhất

w: là vecto chứa tỷ lệ tài sản đầu tư chi tiêu vào từng loại triệu chứng khoán

pof=data*w;

hold on

Và sau cuối ta chuẩn hóa Eigen Portfolio và Vn30-index để so sánh

plot(zscore(pof),’b’)

plot(zscore(prices(:,775)),’r’)

*

Ta thấy là Eigen Portfolio thể hiện khá chính xác dáng điệu của đường VN30-index, mà tại đây ta trọn vẹn không thực hiện đến số lượng cổ phiếu lưu hành …

Toàn bộ data + Matlab code của ví dụ như này các bạn có thể tải tại:

https://drive.google.com/folderview?id=0B_LtmMSdtoLXYzlTV2NXMk1hbkk&usp=sharing

Trong phần tiếp theo shop chúng tôi sẽ trình bày ứng dụng của cách thức PCA vào phân tích đường cong lãi vay (Yield curve) cùng VAR (value at risk).