1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thuật toán hồi quy đa biến

30 1,5K 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 463,5 KB

Nội dung

Thuật toán hồi quy đa biến

Trang 1

Mục lục

I Giới thiệu phần mềm MATLAB 2

1 Các khả năng chính của MATLAB cơ bản: 2

2 Các cửa sổ chính trong phần mềm MATLAB 3

3 Một số đặc trưng chính của MATLAB: 4

4 Khởi động và sử dụng MATLAB trong hóa phân tích 5

II Phương pháp hồi quy đa biến 6

1 Hồi quy đa biến tuyến tính 6

1.1 Phương pháp bình phương tối thiểu thông thường (classical least square-CLS) 7

1.2 Phương pháp bình phương tối thiểu nghịch đảo (inverse least square- ILS) 11

1.3 Phương pháp bình phương tối thiểu từng phần (partial least square-PLS ) 15

1.4 Phương pháp hồi qui cẩu tử chính ( principal component regression -PCR) 17

2 Hồi quy đa biến phi tuyến tính 23

2.1 Phương pháp mạng noron nhân tạo 23

2.2 Phương pháp hồi quy cấu tử chính kết hợp với mạng noron nhân tạo(PC-ANN) 29

Trang 2

I Giới thiệu phần mềm MATLAB

MATLAB được bắt nguồn từ thuật ngữ “Matrix Laboratory” – là phần mềm nổi tiếng của công ty MathWorks Đây là một ngôn ngữ hiệu năng cao hỗ trợ đắc lực cho tính toán với ma trận và hiển thị Matlab được điều khiển bằng tập các lệnh, tác động qua bàn phím trên cửa sổ điều khiển Các câu lệnh đơn giản, viết sát với các mô tả kĩ thuật nên lập trình trên ngôn ngữ này thực hiện nhanh, dễ dàng hơn so với nhiều ngôn ngữ thông dụng khác như Pascal, Fortran,… Những hàm có sẵn trong Matlab có cấu trúc thiết lập gần giống ngôn ngữ C, do đó người dùng không mất nhiều thời gian học hỏi khi đã nắm được những vấn đề cơ bản của một số ngôn ngữ lập trình thông dụng Bên cạnh đó, Matlab không chỉ cho phép đặt vấn đề tính toán mà còn có thể xử lí dữ liệu, biểu diễn đồ họa một cách mềm dẻo, đơn giản, chính xác trong không gian 2D và 3D bằng cả những hàm sẵn có và các hàm ứng dụng do người sử dụng tạo lập Đặc biệt hơn nữa, giao diện của Matlab cho phép đọc, xử lý và đưa tín hiệu đầu ra ngay trên các file Excel - rất tiện lợi cho quá trình xử lý tập số liệu phức tạp Cuối cùng, với ưu điểm cài đặt đơn giản, có thể liên kết với các thư viện trợ giúp như Toolbox, Simulink, Fuzzy, DSP (digital signal processing) hay tích hợp với các ngôn ngữ quen thuộc như

C, C++, Fortran,…, Matlab đã thực sự trở thành công cụ phổ biến đắc lực trong các môi trường khác nhau

1 Các khả năng chính của MATLAB cơ bản:

- Thực hiện các tính toán toán học bao gồm: ma trận và đại số tuyến tính, đa thức và nội suy, phân tích số liệu và thống kê, tìm cực trị của hàm một biến hoặc nhiều biến, tìm nghiệm của phương trình, tính gần đúng tích phân, giải phương trình vi phân

- Phân tích, khảo sát và hiển thị số liệu: các số liệu được nhập vào cũng như xuất ra dưới dạng ma trận, giúp người sử dụng dễ dàng quan sát, phân tích, đánh giá được dữ liệu của mình Đồng thời MATLAB có Toolbox Statistic với những hướng dẫn cụ thể, hỗ trợ cho việc phân tích, khảo sát dựa trên các dữ liệu với các hàm cơ bản

có sẵn

- Đồ họa 2 chiều và 3 chiều: MATLAB cung cấp rất nhiều các hàm đồ họa, nhờ

đó ta có thể nhanh chóng vẽ được đồ thị của hàm bất kỳ 1 biến hoặc 2 biến, vẽ được các kiểu mặt… Ngoài ra MATLAB còn vẽ rất tốt các đối tượng 3 chiều phức tạp như hình trụ, hình cầu, hình xuyến, và cung cấp khả năng xử lý ảnh và hoạt hình

- Mô hình, mô phỏng các hệ thống kĩ thuật, vật lý trên cơ sở sơ đồ cấu trúc dạng khối, sau khi đã thiết lập các thông số cần thiết phù hợp với yêu cầu, người sử dụng chỉ

Trang 3

việc khởi động chương trình MATLAB và xử lý dữ liệu qua mô hình đã thiết lập được.

- Phát triển thuật toán: ngoài các câu lệnh được viết sẵn trong thư viện trợ giúp Toolbox, phần mềm được thiết kế để hỗ trợ người sử dụng có thể lập trình chương trình riêng của mình giống như trong các phần mềm khác: Pascal, Visual basic…

- Xây dựng giao diện người dùng: với MATLAB 7 người dùng có thể dễ dàng xây dựng giao diện gồm các thực đơn, nút lệnh, hộp thoại, hộp chọn, mà không cần phải viết mã như các phiên bản trước đây

2 Các cửa sổ chính trong phần mềm MATLAB

Phần mềm MATLAB được chia thành rất nhiều cửa sổ, mỗi cửa sổ có chức năng khác nhau giúp người sử dụng dễ dàng làm việc Các cửa sổ chính bao gồm:

- Command Window: cửa sổ làm việc chính của MATLAB Tại đây ta thực hiện

toàn bộ việc nhập dữ liệu và xuất kết quả tính toán Dấu nhấp nháy >> báo hiệu chương trình sẵn sàng hoạt động

- Editor: cửa sổ soạn thảo Nhờ cửa sổ này, ta có thể viết mới hay xử lý, sửa đổi

các scripts (file chương trình) và các hàm

Trang 4

- Commad history: cửa sổ quá khứ, lưu lại các câu lệnh đã được thực hiện trước

đó Có thể lặp lại các lệnh cũ bằng cách kích đúp chuột vào lệnh đó Cũng có thể cắt, sao hoặc xóa cả nhóm lệnh hoặc từng lệnh riêng rẽ

- Current Directory: cửa sổ thư mục hiện tại Nhờ cửa sổ này, người sử dụng có

thể nhanh chóng nhận biết, chuyển đổi thư mục hiện tại của môi trường công tác, mở file, tạo thư mục mới

- Workspace: cửa sổ môi trường công tác, chứa các ma trận số liệu cần thực hiện

- Array Editor: bảng ma trận số liệu cụ thể, giống như booksheet trong Excel.

3 Một số đặc trưng chính của MATLAB:

 MATLAB là ngôn ngữ thông dịch Vì thế nó có thể làm việc ở hai chế độ: tương tác và lập trình

Trong chế độ tương tác MATLAB thực hiện từng lệnh được gõ trong cửa sổ lệnh sau dấu nhắc lệnh và kết quả tính toán được hiện ngay trong cửa sổ này, còn đồ thị được hiện trong một cửa sổ khác Lệnh tương tác có thể là đơn giản, thí dụ tính sin(1.5) hoặc vẽ fplot('sin(1 / x)', [0.01 0.1]), có thể là cấu trúc điều kiện, thí dụ if x<=0; y=0; else; y=1; end hoặc các cấu trúc lặp xác định và không xác định

Trong chế độ lập trình một tập lệnh được soạn thảo và ghi thành một têp đuôi m (m-file) Các hàm cũng được tổ chức thành các m-file Một chương trình có thể gồm nhiều m-file Để chạy chương trình chỉ cần gõ tên m-file chính trong cửa sổ lệnh rồi Enter

 Các hàm trong MATLAB cơ bản (không kể các thư viện chuyên dụng được gọi

là các ToolBox) được chia làm 2 loại: hàm trong và hàm ngoài Các hàm trong là các hàm được cài đặt sẵn (built-ins) tức là tồn tại dưới dạng mã nhị phân nên ta không thể xem được mã nguồn của chúng, thí dụ các hàm sin, sqrt, log, clear, clc, Đây là các hàm hay được sử dụng hoặc các hàm đòi hỏi nhiều thời gian xử lý Các hàm ngoài là các hàm tồn tại dưới dạng mã nguồn mà người dùng có thể tham khảo hoặc chỉnh sửa,

bổ sung khi cần thiết, thí dụ log10, ode23, fzero,

 Phần tử dữ liệu chính của MATLAB là các ma trận (mảng) mà kích thước của chúng không cần khai báo trước như trong các ngôn ngữ lập trình khác Tuy nhiên, để tăng tốc độ xử lý cần báo trước cho MATLAB biết kích thước tối đa của mảng để phân

bổ bộ nhớ bằng một lệnh gán, chẳng hạn A(20,30)=0

Trang 5

4 Khởi động và sử dụng MATLAB trong hóa phân tích

- Kích chuột phải trong cửa sổ WORKSPACE để tạo một ma trận mới

- Đặt tên ma trận mong muốn

- Kích đúp vào ma trận vừa đặt, cửa sổ ARRAY EDITOR sẽ hiện ra ở bên phải cửa sổ MATLAB

- Nhập số liệu giống như trong Excel

Trang 6

- Khi nhập xong các ma trận dữ liệu, nhấp chuột vào biểu tượng SAVE để lưu

và đặt tên file

4.2 Viết câu lệnh:

- Vào FILE, NEW, chọn M-file để mở một file mới

- Bạn hãy viết các câu lệnh tại đó, nếu muốn chú thích nội dung câu lệnh thì bạn hãy đặt kí hiệu % ở phía trước Các câu lệnh sẽ có chữ màu đen, các chú thích có chữ màu xanh Chú ý phải có câu lệnh gọi tên file ma trận dữ liệu

- Sau khi viết xong hệ thống câu lệnh hoàn chỉnh, lưu lại các câu lệnh dưới dạng M-file (scrip file) và dặt tên để khi cần có thể lấy ra dùng hoặc có thể sửa đổi tùy thích

4.3 Thực hiện các thuật toán :

- Chuyển các lệnh vừa soạn thảo được sang cửa sổ COMMAND WINDOW bằng cách copy hoặc gọi tên file vừa soạn thảo

Thí dụ : Nếu thuật toán PLS của bạn có dạng file PLS.m, bạn chỉ cần : >> PLS Ngay

lập tức MATLAB sẽ tự động thực hiện các câu lệnh mà bạn yêu cầu

4.4 Khai thác dữ liệu: Vào cửa sổ WORKSPACE, kích đúp vào ma trận cần biết

sẽ thu được các giá trị mong muốn

4.5 Lưu file: Kích chuột vào biểu tượng SAVE để lưu lại các dữ liệu vừa thu

được

4.6 Gọi lại các file đã thực hiện trước đó: Khi bạn muốn thực hiện lại hoặc lấy

lại các dữ liệu đã thực hiện trước đó, bạn chỉ cần vào cửa sổ CURRENT DIRECTORY

và kích đúp vào các file cần thiết và làm lại các bước như trên

II Phương pháp hồi quy đa biến.

1 Hồi quy đa biến tuyến tính.

Giả sử hỗn hợp cần phân tích có k cấu tử (X1, X2…Xk), tín hiệu phân tích của hỗn hợp là y thì phương trình hồi qui đa biến mô tả quan hệ giữa y và các biến Xi (i=1,2,…k) có dạng :

y= a+ b1X1 + b2X2 +…+ bkXk

Trang 7

Về mặt lý thuyết để tìm nồng độ của k cấu tử cần có ít nhất k phương trình hồi qui Vì vậy thực tế sẽ cần tiến hành m thí nghiệm (m ≥ k) với m dung dịch chuẩn hỗn hợp thì sẽ lập được m phương trình hồi qui đa biến Dạng tổng quát của hệ phương trình này như sau :

y= a+Xb

Trong đó b là vecto chứa các hệ số của phương trình hồi qui

y là vecto cột chứa m giá trị y1…ym còn X là ma trận có m hàng (ứng với m quan sát) và k cột (ứng với k biến)

m

k k

x x

x

x x

x

x x

x X

2 22

21

1 12

11

Nếu tín hiệu đo ứng với mỗi thí nghiệm có nhiều hơn một giá trị (ví dụ đo độ hấp thụ quang một dung dịch chuẩn hỗn hợp tại p bước sóng thay vì một bước sóng) thì số liệu của Y sẽ là ma trận có m hàng và p cột ( ymxp) như sau:

m

p p

y y

y

y y

y

y y

2 22

21

1 12

11

Các phương trình hồi qui tuyến tính thu được sẽ cho biết:

- Những biến (cấu tử) nào có ảnh hưởng lớn (nếu giá trị tuyệt đối của hệ số hồi qui lớn) đến kết quả thí nghiệm (tín hiệu đo)

- Biết được chiều hướng các ảnh hưởng (hệ số hồi qui mang dấu dương sẽ có ảnh hưởng cùng chiều đến kết quả thí nghiệm và ngược lại)

- Tìm được nồng độ các cấu tử trong dung dịch cần định phân khi có tín hiệu phân tích y

1.1 Phương pháp bình phương tối thiểu thông thường (classical least square-CLS)

(Phương pháp này còn gọi là ma trận K (K-matrix))

Trang 8

- Từ dạng tổng quát y = XK +e (1)

K là vecto hệ số của phương trình hồi qui K là ma trận (kx1) nếu y là véc tơ cột biểu diễn tín hiệu đo của một dung dịch chuẩn với y là vecto (mx1), X là ma trận (mxk), và e là vecto số dư (mx1) K là ma trận (kxp) nếu y là số liệu dạng ma trận (mxp) biểu diễn tín hiệu của dung dịch chuẩn được đo tại nhiều thời điểm (ví dụ đo độ hấp thụ quang tại p bước sóng)

- Nếu có giá trị nhập vào là biến độc lập X và biến phụ thuộc y sẽ tính được giá trị

hệ số b Theo phương pháp bình phương tối thiểu, ma trận hệ số K sẽ được tính như sau:

K= (XTX)-1 XTy (2)

với XT là ma trận chuyển vị của X (transpose to matrix).

- Khi đã có giá trị hệ số phương trình hồi quy, với mẫu chưa biết cần tìm giá trị X0

Nhược điểm: Phương pháp CLS đòi hỏi những cấu tử trong hỗn hợp phải cho tín

hiệu có tính chất cộng tính Vì vậy cần phải biết tất cả các phổ của những chất gây ảnh

hưởng đến vùng phổ được đo vì chúng đều đóng góp vào đường chuẩn Điều này có thể được loại trừ đáng kể bằng cách phân tích dải phổ tại một thời điểm sau khi gộp kết quả vào phép phân tích thống kê Nó cho phép loại bỏ dải phổ không tuân theo định luật Lambe-Bia hoặc những phổ có chứa tín hiệu của ion cản

Các bước tính toán CLS trong phần mềm Matlab:

- Khởi động phần mềm MATLAB

- Nhập các ma trận dữ liệu trong cửa sổ WORKSPACE

+ Nhập ma trận nồng độ X0 (mxk) của m dung dịch chuẩn chứa k cấu tử (m hàng, k cột )

+ Nhập ma trận tín hiệu phân tích Y0(mxn) (n là số tín hiệu đo)

Trang 9

+ Nhập tín hiệu phân tích Y của mẫu cần định phân

- Lưu các dữ liệu vừa nhập vào thành 1 file trong Matlab : CLS.mat

- Mở một M-file trong cửa sổ EDITOR và viết các câu lệnh tại đó:

%KIỂM TRA ĐỘ CHÍNH XÁC CỦA PHƯƠNG PHÁP:

%Nhap ma tran tin hieu do cua mau kiem tra: Yktra

%Nhap ma tran nong do cua mau ktra: X0ktra

%Tinh nong do mau kiem tra:

Xktra=Yktra*K'*inv(K*K');

%Tinh sai so giua nong do chuan voi nong do xac dinh duoc tu phuong phap CLS:

Saiso=(X0ktra-Xktra)*100./X0ktra;

%TÌM NỒNG ĐỘ CỦA CHẤT TRONG MẪU BẤT KÌ

%Nhap ma tran tin hieu do cua mau: Y

X=Y*K'*inv(K*K');

- Lưu lại M-file vừa thực hiện được và đặt tên file: CLS

- Gọi hàm M-file vừa viết được trong cửa sổ COMMAND WINDOW

>> CLS

- Chương trình sẽ tự động thực hiện các lệnh theo yêu cầu và hiển thị kết quả

- Kích chuột vào giá trị Saiso, X trong WORKSPACE thu được các dữ liệu mong muốn

Thí dụ: Hỗn hợp cần phân tích có 2 cấu tử, tiến hành đo 10 dung dịch chuẩn tại 10 bước sóng Có ma trận nồng độ X(10x2) và ma trận độ hấp thụ quang A(10x10)

- Nhập ma trận nồng độ X 0 (10x2)-10 hàng tương ứng với 10 dung dịch chuẩn và 2 cột tương ứng với 2 cấu tử cần phân tích

Trang 10

0.985 0.986 0.987 0 0.988 87 0.988 0.988 0.988 0.988 0.987 1.233 1.235 1.236 1.237 1.239 1.24 1.24 1.24 1.241 1.241 0.337 0.333 0.329 0.326 0.322 0.319 0.315 0.311 0.308 0.304 0.583 0.581 0.578 0.575 0.572 0.569 0.566 0.563 0.559 0.556 0.835 0.833 0.831 0.829 0.827 0.824 0.822 0.819 0.816 0.813 1.093 1.091 1.09 1.089 1.087 1.085 1.083 1.081 1.079 1.076 1.354 1.353 1.352 1.351 1.35 1.349 1.348 1.346 1.344 1.342 Nhập ma trận nồng độ mẫu kiểm tra C 0ktra (2x2) :

2 0.3

6 0.9

Nhập ma trận độ hấp thụ quang của mẫu kiểm tra Y ktra (2x10) :

0.183 0.182 0.182 0.181 0.18 0.18 0.179 0.178 0.178 0.177 0.536 0.534 0.532 0.531 0.529 0.527 0.525 0.523 0.521 0.519

Các giá trị thu được :

Trang 11

1.2 Phương pháp bình phương tối thiểu nghịch đảo (inverse least square- ILS)

(Phương pháp ma trận P ( P- matrix))

Ngược lại với phương pháp CLS Phương pháp này giả thiết rằng nồng độ chất phân tích là hàm của tín hiệu phân tích theo phương trình:

X=y.P+e Trong phương pháp này, hệ số P trong phương trình hồi qui là thành phần của ma

trận (mxk) được tính theo phương pháp bình phương tối thiểu suy rộng (generalized):

P= (yTy)-1 yTXViệc phân tích nồng độ chất chưa biết (X0) được thực hiện bằng cách nhân trực tiếp giá trị tín hiệu đo y0 của dung dịch cần phân tích với P

Mỗi hàng trong y là tín hiệu của một mẫu, mỗi cột là tín hiệu của các mẫu ở một

thời điểm nhất định Vì vậy, trong phương pháp ILS số mẫu không được ít hơn số thời

điểm đo Do yêu cầu về số mẫu tối thiểu như trên nên để tiến hành sử dụng phương

pháp này, ta cần lựa chọn số thời điểm đo tối thiểu đặc trưng nhất trên toàn dải tín hiệu

đo Các điểm đo đặc trưng này thường là những điểm thỏa mãn các yêu cầu sau:

∗ Giá trị tín hiệu đo tại các thời điểm này lớn so với các điểm đo khác để tăng

độ nhạy

∗ Tín hiệu của các cấu tử khác nhau tại mỗi điểm đo được lựa chọn phải biến đổi khác nhau tức là có sự khác biệt lớn về tín hiệu đo tại mỗi điểm của các cấu tử

Trang 12

∗ Tại các điểm này, tín hiệu của các ion cản trở phép đo là nhỏ nhất.

Ưu điểm của phương pháp ILS:

- Thích hợp với tập số liệu nhỏ, ít thông tin

- Loại trừ được sai số nhiễu phổ và giảm thiểu được ảnh hưởng của các cấu tử lạ

do đã lựa chọn các thời điểm đo đặc trưng

- Khi tín hiệu đo là các giá trị nhỏ hơn giá trị qui ước của nồng độ thì giá trị các

hệ số trong ma trận P sẽ lớn hơn hệ số hồi qui của phương pháp CLS, điều này sẽ làm giảm sai số trong quá trình tính toán

Nhược điểm của phương pháp ILS:

- Cần lựa chọn tối thiểu các thời điểm đo đặc trưng cho các cấu tử Lựa chọn sai lệch sẽ dẫn đến sai số lớn trong quá trình tính toán

- Phải đảm bảo có tính cộng tính cao của các cấu tử ở các thời điểm đo được lựa chọn

Các bước tính toán ILS trong phần mềm Matlab:

- Khởi động phần mềm MATLAB

- Nhập các ma trận dữ liệu trong cửa sổ WORKSPACE

+ Nhập ma trận nồng độ X0 (mxk) của m dung dịch chuẩn chứa k cấu tử (m hàng, k cột)

+ Nhập ma trận tín hiệu phân tích Y0(mxn) (n là số tín hiệu đo)

+ Nhập tín hiệu phân tích Y của mẫu cần định phân

- Lưu các dữ liệu vừa nhập vào thành 1 file trong Matlab : ILS.mat

- Mở một M-file và viết các câu lệnh tại đó:

%Phuong phap ILS:

%Goi cac bien su dung trong phuong phap

load ILS.mat;

%Tinh ma tran he so hoi quy:

P=inv(Y0'*Y0)*Y0'*X0;

%KIỂM TRA ĐỘ CHÍNH XÁC CỦA PHƯƠNG PHÁP:

%Tinh nong do chat trong mau kiem tra:

Xktra=Yktra*P;

%Tinh sai so giua nong do chuan voi nong do xac dinh duoc tu ILS:

Trang 13

Saiso= (X0ktra-Xktra)*100./X0ktra

% TÍNH NỒNG ĐỘ CỦA CHẤT TRONG MẪU BẤT KÌ

%Tinh nong do cua mau:

X=Y*P

- Lưu lại M-file vừa thực hiện được: ILS.m

- Gọi M-file vừa viết được trong cửa sổ COMMAND WINDOW

>> ILS

- Chương trình sẽ tự động thực hiện các yêu cầu mong muốn và trả lại kết quả dưới dạng ma trận Kích chuột vào giá trị Saiso, X trong WORKSPACE để hiển thị các ma trận số liệu đó

Thí dụ: Hỗn hợp cần phân tích có 2 cấu tử, tiến hành đo 10 dung dịch chuẩn Chọn 7 bước sóng đặc trưng nhất và có tính chất cộng tính nhất của hệ Có ma trận nồng độ X(10x2) 10 hàng tương ứng với 10 dung dịch chuẩn, 2 cột tương ứng với 2 cấu tử và

ma trận độ hấp thụ quang A(10x7) 7 cột tương ứng với 7 bước sóng chọn lọc.

Trang 15

-3.6179 20.053

-2.335 2.1675

1.3 Phương pháp bình phương tối thiểu từng phần (partial least square-PLS )

PLS là phương pháp đa biến dùng để mô hình hoá mối quan hệ giữa biến độc lập

X và biến phụ thuộc Y, từ đó có thể đoán được thông tin trong Y khi đã biết các thông tin của X và ngược lại PLS sẽ tối ưu hoá giá trị đồng phương sai (covariance) giữa ma trận X và Y Hai ma trận X và Y được phân tích thành một ma trận số (score matrices)

T chung và ma trận nạp (loading matrices) P và Q

Hay X= T x P + E

Y= T x Q + F

Tính chất quan trọng của PLS là chúng ta có thể nhận được một ma trận T chung cho cả 2 phương trình

Số thí nghiệm ít hơn số biến?

Các bước tính toán PLS trong phần mềm Matlab:

- Khởi động phần mềm MATLAB

- Nhập các ma trận dữ liệu trong cửa sổ WORKSPACE

+ Nhập ma trận nồng độ X0 (mxk) của m dung dịch chuẩn chứa k cấu tử (m hàng, k cột)

+ Nhập ma trận tín hiệu phân tích Y0(mxn) (n là số tín hiệu đo)

Ngày đăng: 06/11/2015, 10:02

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w