Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

3 Ví dụ minh hoạ

3.1 Ví dụ minh hoạ:

Một trung tâm thương mại trong 10 năm gần đây phân tích dữ liệu và nhận thấy rằng
nguồn khách hàng đăng kí hội viên hằng năm phụ thuộc vào số lượng khách hàng tiềm
năng được biểu diễn gần với hàm bậc nhất y=A0+A1*x . Sau đây là bảng số liệu đã thống
kê (Khách hàng tiềm năng; Khách hàng hội viên): (23;67) , (30;72), (42;81), (47;90)
(55;102) (72;110) (85;135) (93;165) (105;174) (112;192) , đơn vị tính là ngàn người. Tìm
đường hồi quy tuyến tính và dự đoán nếu năm nay có 200 ngàn khách hàng tiềm năng
thì sẽ có bao nhiêu hội viên tham gia.

Bước 1: Tính Giá trị trung bình của X1 là

Giá trị trung bình của X2 là

Bước 2: Tính vecto ( độ lệch)

Bước 3: tính ma trận hiệp phương sai


Bước 4: Xác định vecto riêng của ma trận hiệp phương sai, ta được ứng với trị

riêng lớn nhất và ứng với trị riêng còn lại là

Kết luận: Theo định nghĩa PCA, đường hồi quy chính có chiều là thành phần chính thứ nhất và đi qua
giá trị trung bình . Vậy đường thẳng hồi quy là:

Dự đoán số khách hang làm hội viên khi có 200 ngàn khách hang tiềm năng: (ngàn
người).
Hình ảnh trực quan dữ liệu
3.2 Phần code Matlab:

function pcahoiquytt
%Nhap cac so lieu:
%N=input('Nhap N: ');
%X=zeros(N,2);
% for i=1:1:N
% for j=1:1:2
% X(i,j)=input(['X(' num2str(i) ',' num2str(j) ')= ']);
% end
% end
%So lieu cho san:
N=10;
X=[23 67; 30 72; 42 81; 47 90; 55 102; 72 110; 85 135; 93
165; 105 174; 112 192];
% Buoc 1: Tinh gia tri trung bình Xtb cua X:
Xtb=mean(X)
% Buoc 2: Tinh vecto Xnew=X-Xtb (Do lech):
Xnew=X-Xtb
% Buoc 3: Tinh ma tran hiep phuong sai S:
S=(1/(N-1))*Xnew'*Xnew
% Buoc 4: Tim tri rieng va vecto rieng cua S:
[P D]=eig(S)
%Buoc 5: Bieu dien
x=20:0.1:120;
a=P(2,2)/P(1,2); %Nhan thay cot 2 cua ma tran P la chieu cua
duong hoi quy
b=Xtb(1,2)-a*Xtb(1,1);
y=a*x+b;
plot (x, y ,'LineWidth',2);
hold on;
plot(X(:,1),X(:,2),'b-',X(:,1),X(:,2),'rx')
xlabel("Khach hang tiem nang");
ylabel("Khach hang hoi vien");
title("Hinh anh truc quan du lieu");
grid on;
end
3.3 Giải thích các lệnh Matlab được dung:

STT Lệnh Công dụng


1 N=input('Nhap N: Nhập dữ liệu đầu vào, ở đây
'); cho nhập N
2 X=zeros(N,2); Tạo ma trận 0, ở đây ma
trận có cỡ N2
3 for i=1:1:N Vòng lặp for với số lần biết
end trước, ở đây lặp từ 1 đến N
với mức tăng 1
4 num2str(i) Chuyển dữ liệu số sang dữ
liệu chuỗi
5 X=[23 67; 30 72; 42 Tạo ma trận, ở đây là ma
81; 47 90; 55 102; trận cỡ 102
72 110; 85 135; 93
165; 105 174; 112
192];
6 Xtb=mean(X) Tính giá trị trung bình của
ma trận, ở đây là ma trận X
7 Xnew' Tìm ma trận chuyển vị của
ma trận, ở đây là ma trận
Xnew
8 [P D]=eig(S) Chéo hóa trực giao để tìm
trị riêng và vecto riêng, ở
đây là chéo hóa trực giao
ma trận S
9 Plot (x, y, Vẽ biểu đồ đường
‘LineWidth’, 2);
10 ‘LineWidth’, 2 Xác định độ rộng đường vẽ,
ở đây là bằng 2
11 hold on; Thêm nét vẽ vào đồ thị đã
có sẵn
12 x(:,1) Lấy ra một cột của một ma
trận, ở đây là lấy cột 1 của
ma trận X
13 ‘b-‘ Định dạng đồ thị màu xanh
da trời + nét liền
14 ‘rx’ Định dạng đồ thị màu đỏ +
dấu x
15 xlabel(“Khach hang Đặt tên cho 2 trục Ox và Oy
tiem nang”);
ylabel(“Khach hang
hoi vien”);
16 title(“Hinh anh Đặt tiêu đề cho đồ thị được
truc quan du vẽ
lieu”);
17 grid on; Hiển thị lưới toạ độ

You might also like