Phương pháp hồi qui cấu tử chính (PCR)[7]
Thuật toán PCR giải trong Matlab nhƣ sau:
- Nhập ma trận nồng độ C (30x4) và ma trận tín hiệu đo A của 30 dung dịch chuẩn chứa 4 dạng As cần phân tích
- Bình phƣơng tập số liệu chứa biến phụ thuộc:
D = A’*A
- Sử dụng một trong 3 hàm tính PC để xác định các PC. Câu lệnh sau
sử dụng hàm SVD:
[V S] = svd(D)
- Tính ma trận phần trăm phƣơng sai của các PC
- Từ giá trị phần trăm phƣơng sai của các PC, căn cứ vào yêu cầu cụ thể của bài toán để quyết định chọn số PC làm cơ sở cho không gian mới của tập số liệu (n):
f = V(:,1:n)
- Chuyển đổi tập số liệu ban đầu và tính ma trận hệ số hồi qui:
Aj = A*f
F = inv(Aj'*Aj)*Aj'*C Fj=f*F
- Nhập ma trận biến phụ thuộc của k mẫu cần định phân Ax(k*5) và tính nồng độ các dạng As trong mẫu theo công thức:
Cx=Ax*Fj
Các thao tác tính sai số và hiệu suất thu hồi sử dụng các câu lệnh tính toán thông thƣờng trên ma trận.
Các bước tính toán PCR trong phần mềm Matlab:
1. Khởi động phần mềm MATLAB
2. Nhập các ma trận dữ liệu trong cửa sổ WORKSPACE
+ Nhập ma trận nồng độ X0 (30x4) của 30 dung dịch chuẩn chứa 4 dạng Asen
+ Nhập ma trận tín hiệu phân tích Y0(30x5) (5 môi trƣờng đo tín hiệu) + Nhập ma trận X0ktra(10x4), Y0ktra(10x5)
+Nhập tín hiệu phân tích Y của mẫu cần định phân
1. Lƣu các dữ liệu vừa nhập vào thành 1 file trong Matlab: PCR.mat
2. Mở một M-flie trong cửa sổ EDITOR( vào Matlab 7.6 chọn desktop , chọn editor và chọn New M-File) và viết các câu lệnh sau :
D=Y0'*Y0; [V S]=svd(D); d=diag(S)/sum(diag(S))*100; f=V(:,1:5); Yj=Y0*f; F=inv(Yj'*Yj)*Yj'*X0; Fj=f*F; Xktra=Yktra*Fj; Saiso=(X0ktra-Xktra)*100/X0ktra; X=Y*Fj;
- Lƣu lại M-file vừa thực hiện đƣợc: PCR.m
4. Gọi hàm M-file vừa viết đƣợc trong cửa sổ COMMAND WINDOW : >> PCR
CHƢƠNG 3. KẾT QUẢ VÀ THẢO LUẬN