Mơ hình hồi quy phi tuyến

Một phần của tài liệu Machine Learning Toolbox trong MatLab (Trang 140 - 145)

7 Hồi quy

7.4 Mơ hình hồi quy phi tuyến

7.4.1 Lí thuyết chung

Các mơ hình hồi quy tuyến tính rất hữu ích với hầu hết các ứng dụng hồi quy. Tuy nhiên, có nhiều khi một thực nghiệm hay một mơ hình hồi quy phi tuyến lý thuyết hợp lý lại thích hợp hơn. Ví dụ, trong tự nhiên, sự tăng trưởng từ khi sinh ra đến khi trưởng thành của con người thường là phi tuyến, đặc trưng là sự tăng trưởng rõ rệt ở tuổi dậy thì, và thường chững lại trước khi đến tuổi trưởng thành.

Một mơ hình hồi quy phi tuyến cơ bản có dạng:

Yi = f(Xi,γ) +εi

Mỗi quan sát Y vẫn là tổng của trung bình đáp ứng f(Xi,γ)xác định bởi hàm đáp ứng phi tuyến f(X,γ)và sai dốεi. Các sai số thường được giả định là có kỳ vọng 0, phương sai khơng đổi và không tương quan.

1. Mơ hình hồi quy dạng mũ:

Một ứng dụng rộng rãi của hồi quy phi tuyến là mơ hình hồi quy dạng mũ. Mơ hình chỉ có duy nhất một biến dự báo và sai số chuẩn:

Yi=γ0eγ1X

Mơ hình này khơng tuyến tính với các tham sốγ0 vàγ1.

Một dạng hồi quy phi tuyến dạng mũ tổng quát hơn một biến dự báo và sai số chuẩn là:

Yi=γ0+γ1eγ2X+εi

2. Mơ hình hồi quy logistic

Một mơ hình hồi quy phi tuyến quan trọng khác đó là mơ hình hồi quy logistic. Mơ hinh với biến dự báo và phương sai có phân phối chuẩn:

7 HỒI QUY

Yi = γ0

1+γ1eγ2Xi +εi

Trong đó sai sốεi là độc lập cùng phân phối chuẩn với phương sai khơng đổiσ2.

Mơ hình hồi quy logistic được dùng trong nghiên cứu đám đơng. Ví dụ mối quan hệ giữa số lượng loài (Y) và thời gian (X).

7.4.2 Các hàm trong Matlab

1. fitnlm

• mdl = fitnlm(tbl,modelfun,beta0): fit với mơ hình được xác định bởi modelfun được

chỉ định với các biến trong bảng hoặc mảng và trả về mơ hình phi tuyến mdl.

f itnlmước tính các hệ số của mơ hình bằng cách sử dụng quy trình lặp lại bắt đầu từ các giá trị ban đầu trong beta0.

• mdl = fitnlm(X,y,modelfun,beta0): fit với mơ hình hồi quy phi tuyến sử dụng vecto

cột y làm biến phản hồi và các cột của ma trận X làm biến dự báo.

• mdl = fitnlm(___,modelfun,beta0,Name,Value): fit mơ hình phi tuyến với các tùy chọn

bổ sung được xác định bằng một hoặc nhiều cặp tham số Name-Value.

Ví dụ minh họa:

Tạo một mơ hình phi tuyến cho biến phản hồi là quảng đường được dựa trên dữ liệu carbig

load carbig tbl = table(Horsepower,Weight,MPG); modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + ... b(4)*x(:,2).^b(5); beta0 = [-50 500 -1 500 -1]; mdl = fitnlm(tbl,modelfun,beta0)

7 HỒI QUY

2. feval

ypred = feval(mdl,Xnew1,Xnew2,...,Xnewn): trả về biến phản hồi được dự đốn của mơ

hình mdl với dữ liệu đầu vào [Xnew1, Xnew2, ..., Xnewn].

Ví dụ minh họa:

Xét tiếp ví dụ ở hàm f itnlm, ta sẽ dự đốn giá trị của biến phản hồi với dữ liệu mới

Xnew = mean([Horsepower Weight],’omitnan’);

MPGnew = feval(mdl,Xnew)

Kết quả: MPGnew = 21.8073 3. predict

• ypred = predict(mdl,Xnew): trả về giá trị dự đoán của biến phản hồi của mơ hìnhmdl

với tập dữ liệu mưới trong Xnew

• [ypred,yci] = predict(mdl,Xnew): yci là khoảng tin cậy của cho phản hồi trung bình

chân thực (true mean responses)

• [ypred,yci] = predict(mdl,Xnew,Name,Value): dự đoán với các tùy chọn được bổ sung

bằng cặp tham số Name-Value.

Ví dụ minh họa:

Tạo một mơ hình phi tuyến tính qng đường của ơ tơ dưới dạng một hàm của trọng lượng.

load carsmall X = Weight; y = MPG;

modelfun = ’y ~ b1 + b2*exp(-b3*x/1000)’;

beta0 = [1 1 1]; mdl = fitnlm(X,y,modelfun,beta0); Xnew = X; ypred = predict(mdl,Xnew); plot(X,y,’o’,X,ypred,’x’) legend(’Data’,’Predicted’)

7 HỒI QUY

4. nlinfit

• beta = nlinfit(X,Y,modelfun,beta0): trả về vecto chứa các hệ số ước lượng cho mơ

hình hồi quy phi tuyến tính của các phản hồi trong Y trêncác yếu tố dự đốn trong X bằng cách sử dụng một mơ hình đã được chỉ địnhmodel f unCác hệ số được ước lượng bình phương nhỏ nhất lặp đi lặp lại với các giá trị ban đầu được chỉ định bởi tham sốbeta0.

• beta = nlinfit(X,Y,modelfun,beta0,options): tham sốoptionschỉ định tham số điều khiển thuật tốn.

• beta = nlinfit(___,Name,Value): Sử dụng cặp tham số Name-Value. Ví dụ: Có thể

chỉ định trọng số quan sát hoặc mơ hình lỗi khơng cố ý.

• [beta,R,J,CovB,MSE,ErrorModelInfo] = nlinfit(___): trả về phần tư R, Jacobian J,

ma trận hiệp phương sai cho các hệ số CovB, sai số tồn phương trung bình MSE, cấu trúc chi tiết của sai số trong mơ hình phù hợp.

Ví dụ minh họa: S = load(’reaction’); X = S.reactants; y = S.rate; beta0 = S.beta; beta = nlinfit(X,y,@hougen,beta0) Kết quả beta = 5x1 1.2526 0.0628 0.0400 0.1124 1.1914 5. nlparci

Ước lượng khoảng của tham số hồi quy phi tuyến:

• ci = nlparci(beta,resid,’covar’,sigma): trả về khoảng tin cậy 95% cho các ước

lượng tham số beta. Trước khi gọi hàmnl parci, hãy sử dụng nlim f it để fit với mơ hình hồi quy phi tuyến và nhận hệ số ước lượng beta, phần dư resid, ma trận hiệp phương sai hệ số ước tínhsigma.

• ci = nlparci(beta,resid,’jacobian’,J): cũng tính khoảng tin cậy 95%. J là Jacobian

7 HỒI QUY

• ci = nlparci(...,’alpha’,alpha): trả về khoảng tin cậy 100(1−al pha%)

Trong hàmnl parci, quan sát nào có giá trị NaN sẽ bị bỏ qua.

Ví dụ minh họa:

Giả sử ta có dữ liệu muốn phù hợp với mơ hìnhyi =a1+a2e−a3xi+εi. Trong đó:

• ai là tham số cần ước lượng. • xi là các điểm dữ liệu. • yi là các giá trị dự đốn. • εi là nhiễu (noise). Tạo một mơ hình:

mdl = @(a,x)(a(1) + a(2)*exp(-a(3)*x));

Tạo tham sốa= [1; 3; 2], với điểm dữ liệuxđược phân phối theo phân bố mũ với tham số 2 và noise có phân bố chuẩn tắc.

rng(9845,’twister’) % for reproducibility

a = [1;3;2];

x = exprnd(2,100,1);

epsn = normrnd(0,0.1,100,1); y = mdl(a,x) + epsn;

fit mơ hình với dữ liệu bắt đầu từ a0 = [2;2;2]

a0 = [2;2;2]; [ahat,r,J,cov,mse] = nlinfit(x,y,mdl,a0); ahat ahat = 3x1 1.0153 3.0229 2.1070

Kiểm tra xem [1;3;2] có nằm trong khoảng tin cậy 95% hay khơng bằng đối số Jacobian trongnl parci. ci = nlparci(ahat,r,’Jacobian’,J) ci = 3x2 0.9869 1.0438 2.9401 3.1058 1.9963 2.2177

7 HỒI QUY

Một phần của tài liệu Machine Learning Toolbox trong MatLab (Trang 140 - 145)

Tải bản đầy đủ (PDF)

(184 trang)