Kỹ thuật Bootstrap

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

2 Các phân phối xác suất

2.3.1 Kỹ thuật Bootstrap

Lý thuyết chung

Quy trình bootstrap bao gồm việc chọn các mẫu ngẫu nhiên có thay thế từ tập dữ liệu và phân tích từng mẫu theo cùng một cách. Lấy mẫu thay thế có nghĩa là mỗi quan sát được chọn

2 CÁC PHÂN PHỐI XÁC SUẤT

ngẫu nhiên riêng biệt từ tập dữ liệu ban đầu. Vì vậy, một điểm dữ liệu cụ thể từ tập dữ liệu gốc có thể xuất hiện nhiều lần trong một mẫu bootstrap nhất định. Số phần tử trong mỗi mẫu bootstrap bằng số phần tử trong tập dữ liệu gốc.

Cài đặt code

1. bootstat = bootstrp(nboot,bootfun,d)tạo ra mẫu dữ liệu bootstrapnboot từd, tính tốn

thống kê trên từng mẫu bằng cách sử dụng hàmboot f un và trả về kết quả trongbootstat. Hàmbootstr ptạo từng mẫu bootstrap bằng cách lấy mẫu có thay thế thay thế từ các hàng củad. Mỗi hàng củabootstat chứa kết quả của việc áp dụng hàmboot f uncho một mẫu bootstrap.

2. bootstat = bootstrp(nboot,bootfun,d1,...,dN) tạo ra mẫu dữ liệu bootstrap nboot từ

d1, ...,dN(phải có cùng số hàng với nhau, đặt làn). Hàmbootstr ptạo từng mẫu bootstrap bằng cách lấy mẫu có thay thế thay thế từ từng hàng 1:ncủad1, ...,dN.

VD: Tính tốn sai số chuẩn của hệ số tương quan bằng cách sử dụng bootstrap của dữ liệu mẫu.

Load dữ liệulawdatachứa điểm thi LSAT và điểm GPA trường luật của 15 sinh viên:

>> load lawdata >> rng(’default’)

Tạo 1000 mẫu dữ liệu bằng cách lấy mẫu lại 15 điểm dữ liệu và tính tốn tương quan giữa hai biến cho mỗi mẫu dữ liệu:

[bootstat,bootsam] = bootstrp(1000,@corr,lsat,gpa);

Hiển thị 5 hệ số tương quan bootstrap đầu tiên:

>> bootstat(1:5,:) ans = 0.9874 0.4918 0.5459 0.8458 0.8959

Tạo biểu đồ tần số biểu thị hệ số tương quan của tất cả các mẫu bootstrap:

>> histogram(bootstat)

2 CÁC PHÂN PHỐI XÁC SUẤT

Cực tiểu của mẫu là dương, nên mối quan hệ giữa điểm LSAT và điểm GPA khơng phải ngẫu nhiên. Cuối cùng, tính tốn sai số chuẩn cho hệ số tương quan ước tính:

>> se = std(bootstat)

se =

0.1285

3. ci = bootci(nboot,bootfun,d) tính tốn ra bootstrap với khoảng tin cậy 95% cho mỗi thống kê được tính tốn bởi hàmboot f un. Hàm bootcisử dụng các mẫu bootstrapnboot

trong tính tốn của nó và tạo từng mẫu bootstrap bằng cách lấy mẫu có thay thế thay thế từ các hàng củad.

VD: Tính tốn khoảng tin cậy cho chỉ số khả năng trong việc Kiểm sốt quy trình thống kê.

Tạo ra 30 số ngẫu nhiên từ phân phối chuẩn (1, 1):

>> rng default

2 CÁC PHÂN PHỐI XÁC SUẤT

Thiết lập giới hạn kiểm soát trên (USL) và dưới (LSL), định nghĩa chỉ số khả năng:

>> LSL = -3; >> USL = 3;

>> capable = @(x)(USL - LSL)./(6*std(x));

Tính khoảng tin cậy 95% cho chỉ số khả năng bằng cách sử dụng 2000 mẫu bootstrap:

>> ci = bootci(2000,capable,y)

ci =

0.5937 0.9900

Tính khoảng tin cậy studentized của chỉ số khả năng:

>> sci = bootci(2000,{capable,y},’Type’,’student’) sci = 0.5193 0.9930 2.3.2 Kỹ thuật Jackknife Lý thuyết chung

Kỹ thuật Jackknife lấy lại mẫu một cách có hệ thống, thay vì ngẫu nhiên như bootstrap. Đối với một mẫu cón điểm, jackknife tính tốn thống kê mẫu trênn mẫu riêng biệt có kích thướcn−1. Mỗi mẫu là dữ liệu ban đầu với một lần quan sát bị bỏ qua.

Cài đặt code

jackstat = jackknife(jackfun,X) tạo ra mẫu dữ liệu Jackknife từ mảngX kích cỡ n∗p,

tính tốn thống kê trên từng mẫu bằng cách sử dụng hàm jackfun và trả ra kết quả trong ma trận jackstat.jackkinfecoi mỗi hàng củaxlà 1 mẫu dữ liệu, cho nên có tất cảndữ liệu mẫu. Mỗi hàng trong sốnhàng của jackstat là kết quả của việc áp dụng hàm jack f uncho mỗi mẫu Jackknife. jack f unlà một function handle (@). Hàngicủa jackstat chứa kết quả cho mẫu bao gồmX với hàng ibị loại bỏ:

s = x;

s(i,:) = [];

2 CÁC PHÂN PHỐI XÁC SUẤT

Nếu jack f untrả ra ma trận hoặc mảng thì nó sẽ đổi thành vector hàng để lưu vào jakstat. Nếu X là vector hàng sẽ chuyển thành vector cột.

3 KIỂM ĐỊNH GIẢ THUYẾT

3 Kiểm định giả thuyết

Statistic Toolbox cung cấp cho người dùng nhiều công cụ phục vụ cho kiểm định giả thuyết như kiểm định phân phối, giúp người sử dụng dễ dàng biết được mẫu đã cho có dạng phân phối gì như kiểm định Anderson-Darling và Kolmogorov-Smirnov; cung cấp các function để tính biến ngẫu nhiên z-test, t-test để kiểm định cho mean và median của bộ dữ liệu; cung cấp F-test để kiểm định phương sai của bộ dữ liệu.

3.1 Kiểm định dạng phân phối

3.1.1 Kiểm định Anderson-Darling

Anderson-Darling là một trong các kiểm định hay dùng khi xét giả thuyếtH0 là bộ dữ liệu tuân theo phân phối chuẩn.

Lý thuyết chung

Kiểm định trên dựa trên khoảng cách độ lệch giữa giá trị hàm phân phối theo giả thuyếtH0 là

F(x)với giá trị thực nghiệm của hàm phân phối theo từng điểm dữ liệuFn(x)bằng công thức:

A2=n.

Z +∞

−∞

(Fn(x)−F(x))2

F(x).(1−F(x))d(F(x))

Khi tiến hành kiểm định xem bộ dữ liệu tuân theo1phân phối cụ thể nào, ta sắp xếp bộ dữ liệu theo chiều tăng dần độ lớn{Y1,Y2, ...,Yn}.Khi đóA2 sẽ được đo bằng:

A2 =−n− n ∑ i=1 2i−1 n [ln(F(Yi)) +ln(1−F(Yn+1−i)]

Nếu A2 vượt qua mức ý nghĩaα thì bác bỏH0 và ngược lại.

Cài đặt Code

1. h = adtest(x)với x là bộ dữ liệu, câu lệnh trên sẽ trả vềh=0nếu bộ dữ liệu tuân theo phân phối chuẩn theo kiểm định Anderson Darling với mức ý nghĩa5%, ngược lạih=1. 2. h = adtest(x,Name,Value)thay đổi các tham số Name, Value để kiểm định bộ dữ liệu tuân theo phân phối khác ngoài phân phối chuẩn, thay đổi cách tính p−value, mức ý nghĩaα. 3. [h,p] = adtest(x)trả lại thêm giá trị p−valuecủa kiểm định.

3 KIỂM ĐỊNH GIẢ THUYẾT

load examgrades x = grades(:,3);

[h,p] = adtest(x,’Distribution’,’ev’)

Thu đượch=1,p=0.0071 bác bỏ giả thuyếtH0, bộ dữ liệu đã cho không tuân theo phân phối chuẩn.

3.1.2 Kiểm định Chi-square goodness-of-fit

Lý thuyết chung

Chi-square goodness-of-fit kiểm tra độ phù hợp của bộ dữ liệu với mơ hình, ví dụ kiểm tra đặc tính của bộ dữ liệu như bộ dữ liệu có thể chia thành các nhóm mà số lượng đữ liệu mỗi nhóm có thể coi như nhau hay không (đặc điểm dữ liệu trong các nhóm tương tự nhau). Thiết lập biểu thức: χ2 = n ∑ i=1 (Oi−Ei)2 Ei , Ei= (F(Yu)−F(Yl)).N

với:Oi số lượng dữ liệu trong nhómi,Ei là số dự liệu kỳ vọng cho nhómi,F là hàm phân phối của bộ dữ liệu,Yu,Yl lần lượt là cận trên và cận dưới giá trị của điểm dữ liệu trong nhómi,N là kích thước mẫu.

Giá trị χ2 đó sẽ được so sánh với giá trị phân phối khi bình phương với mức ý nghĩa xác định (trong Matlab cài đặt mặc định là5%và số bậc tự do làn−1, vớinlà số nhóm chia ra từ bộ dữ liệu).

Cài đặt Code

1. h = chi2gof(x)với x là bộ dữ liệu, câu lệnh trên sẽ trả về h=0nếu bộ dữ liệu có thể chia thành các phần bằng nhau theo kiểm định Chi-square goodness-of-fit với mức ý nghĩa 5%, ngược lạih=1.

2. h = chi2gof(x,Name,Value) thay đổi các tham số Name, Value để kiểm định bộ dữ liệu theo phân phối khác ngồi phân phối khi bình phương, thay đổi mức ý nghĩaα.

3. [h,p] = chi2gof(x)trả lại thêm giá trị p−valuecủa kiểm định.

Ví dụ minh họa

pd = makedist(’Normal’);

rng default; % for reproducibility

x = random(pd,50,1);

3 KIỂM ĐỊNH GIẢ THUYẾT

Kết quả trả vềh=0,p=0.319nên bộ dữ liệu có thể chia thành các phần bằng nhau có các đặc tính tương tự nhau.

3.1.3 Phân tích bảng chéo

Lý thuyết chung

Phân tích bảng chéo dùng để kiểm định mối quan hệ giữa các biến định tính với nhau bằng cách dùng kiểm định Chi – bình phương (Chi-square). Khi thực hiện kiểm định, ta có 2 giả thuyết:

• H0: khơng có mối quan hệ giữa các biến. • H1: có mối quan hệ giữa các biến.

Tiến hành kiểm định giả thuyết theo phân phối khi bình phương với mức ý nghĩa α (Matlab mặc định là5%và p−valuetính được.

Cài đặt Code

1. tbl = crosstab(x1,x2) trả lại bảng crosstab giữa2vector có cùng độ dàix1,x2.

2. tbl = crosstab(x1,...,xn)trả lại bảng crosstab giữanvector có cùng độ dàix1,x2, ...,xn. 3. [tbl,chi2,p,labels] = crosstab(X) trả lại bảng crosstab giữa các biến trong bộ dữ liệu X,

giá trị p−valuetheo kiểm định khi bình phương, labels là nhãn của các dữ liệu.

Ví dụ minh họa

load hospital

Tbl = dataset2table(hospital);

[conttbl,chi2,p,labels] = crosstab(Tbl.Sex,Tbl.Smoker)

Kết quả thu được: conttbl = 2×2: 40 13

26 21 , chi2 = 4.5083, p = 0.0337,labels = 2x2 cell,

{′Female′} {′0′}

3 KIỂM ĐỊNH GIẢ THUYẾT

3.1.4 Kiểm định Durbin-Watson

Kiểm định Durbin-Watson dùng để kiểm định hiện tượng tự tương quan giữa các sai lệch (residuals) giá trị dự đoán và giá trị thật của mơ hình hồi quy.

Lý thuyết chung

et là sai lệch của quan sát thứt, ta cóet =αet−1+β.. Kiểm định Durbin-Watson với giả thuyết H0 :α =0, đối thuyếtH1 :α ̸=0. Biến ngẫu nhiên kiểm định vớiT là số lượng biến quan sát:

d = ∑ T

t=2(et−et−1)2

∑Tt=1e2t

Nếud =2ta kết luận các sai lệch khơng có hiện tượng tự tương quan, khi0<d <2thì các sai lệch có tương quan âm, khi4>d >2thì các sai lệch có tương quan dương,0<d <4với mọi bộ dữ liệu.

Cài đặt Code

1. p = dwtest(r,x)vớirlà vector sai lệch của bộ dữ liệuxsau khi chạy mơ hình hồi quy. Giá trị p là p−valuecho kiểm định Durbin-Watson.

2. [p,d] = dwtest(r,x)trả về p-value và giá trị biến kiểm định d.

Ví dụ minh họa

load census

3 KIỂM ĐỊNH GIẢ THUYẾT

x = [zeros(n,1),cdate]; [b,bint,r] = regress(pop,x); [p,d] = dwtest(r,x)

Kết quả trả về p = 0, d = 0.0352nên ta bác bỏH0 với mức ý nghĩaα =0.05mặc định.

3.1.5 Kiểm định Fisher’s exact

Lý thuyết chung

Kiểm định Fisher’s exact được dùng trong kiểm định giả thuyếtH0: 2 biến phân loại (categorical varibles) khơng có mối liên hệ gì với nhau với mẫu nhỏ (dưới 20 mẫu quan sát). Kiểm định này tương tự như kiểm định khi bình phương nhưng phù hợp hơn với mẫu nhỏ.

Cài đặt Code

1. h = fishertest(x) trả ra kết quả h =0, ta chấp nhận H0 với mức ý nghĩa α =0.05 và ngược lạih=1thì bác bỏH0.

2. [h,p,stats] = fishertest(x)trả thêm về p−valuevàstatslà một biến cấu trúc gồm tỷ số chênh lệch (odds ratio) và khoảng tin cậy.

Ví dụ minh họa

x = table([3;4],[1;7],’VariableNames’,{’Flu’,’NoFlu’},’RowNames’,{’NoShot’,’Shot’}) h = fishertest(x)

Kết quả thu đượch=0 nên ta chấp nhận H0 nghĩa là khơng có mối liên hệ giữa biến Flu và Shot, người đã tiêm chủng vẫn có nguy cơ bị cúm như người đã tiêm chủng.

3.1.6 Kiểm định Jarque-Bera

Lý thuyết chung

Kiểm định Jarque-Bera Test kiểm định giả thuyếtH0 :bộ dữ liệu tuân theo phân phối chuẩn với giá trị kỳ vọng và phương sai chưa biết trước, biến JB được xác định qua skewness (hệ số bất đối xứng) và kurtosis(hệ số nhọn) của bộ dữ liệu

JB= n 6. S2+1 4(K−3)2

JB tuân theo phân phối khi bình phương với2bậc tự do.

3 KIỂM ĐỊNH GIẢ THUYẾT

1. h = jbtest(x)trả vềh=0nếu chấp nhận giả thuyếtH0 theo kiểm định Jarque-Bera với mức ý nghĩa5%và ngược lại.

2. h = jbtest(x,alpha)thay đổi mức ý nghĩaα

3. [h,p] = jbtest(x,alpha,mctol)thay đổi mức ý nghĩaα và sử dụng xấp xỉ Monte Carlo để xấp xỉ giá trị.

Ví dụ minh họa

load carbig

[h,p] = jbtest(MPG,0.01)

Giá trị trả vềh=1, p = 0.0022nên ta bác bỏ giả thuyết H0 với p−value=0.0022

3.1.7 Kiểm định một mẫu Kolmogorov-Smirnov

Lý thuyết chung

Kiểm định một mẫu Kolmogorov-Smirnov thuộc loại kiểm định phi tham số xem phân phối của bộ dữ liệu đã cho có tuân theo phân phối đang kiểm định hay không. Giả thuyếtH0: phân phối của bộ dữ liệu tuân theo phân phối kiểm định và đối thuyếtH1 phân phối của bộ dữ liệu không tuân theo phân phối kiểm định.

D∗=max

x |F(x)−G(x)|

vớiF(x)là hàm phân phối mẫu, G(x) là hàm phân phối đang tiến hành kiểm định.

Cài đặt Code

1. h = kstest(x)trả về h=0 khi chấp nhận giả thuyết H0 bộ dữ liệu đã cho tuân theo phân phối chuẩn tắc, với mức ý nghĩa5%và ngược lạih=1thì ta bác bỏH0.

2. [h,p] = kstest(x)trả thêm về p−valuecho kiểm định.

Ví dụ minh họa load examgrades test1 = grades(:,1); x = (test1-72)/10; h = kstest(x) cdfplot(x) hold on x_values = linspace(min(x),max(x));

3 KIỂM ĐỊNH GIẢ THUYẾT

plot(x_values,normcdf(x_values,0,1),’r-’)

legend(’Empirical CDF’,’Standard Normal CDF’,’Location’,’best’);

Kết quả trả vềh=1nên ta bác bỏ giả thuyết mẫu đã cho tuân theo phân phối chuẩn tắc, hình ảnh đồ thị giúp ta khẳng định thêm giả thuyết:

3.1.8 Kiểm định 2 mẫu Kolmogorov-Smirnov

Lý thuyết chung

Tương tự như kiểm định 1 mẫu Kolmogorov-Smirnov nhưng kiểm định này giả thuyết rằng hàm phân phối của2 mẫu có cùng tuân theo 1 phân phối nào hay không.

Cài đặt code

1. h = kstest2(x1,x2)trả về h=0 nếu chấp nhận giả thiết 2 phân phối liên tục của bộ dữ liệux1,x2giống nhau.

2. [h,p] = kstest2(x1,x2)trả thêm về p-value của kiểm định giả thiết.

Ví dụ minh họa

rng(1); % For reproducibility

x1 = wblrnd(1,1,1,50); x2 = wblrnd(1.5,1.5,1,50);

[h,p] = kstest2(x1,x2,’Alpha’,0.02)

3 KIỂM ĐỊNH GIẢ THUYẾT

3.1.9 Kiểm định Lilliefors

Lý thuyết chung

Kiểm định Lillisfors cũng là một loại kiểm định đo độ phù hợp của bộ dữ liệu với mơ hình, kiểm định giả thiết bộ dữ liệu có tuân theo 1 loại phân phối nào hay không, nhưng khác với kiểm định Kolmogorov-Smirnov các phân phối dự đốn khơng cần phải xác định các tham số đặc trưng cụ thể như giá trị kỳ vọng, bậc tự do,... Biến đo độ khác biệt giữa phân phối mẫu và phân phối dự đoán giống như Kolmogorov-Smirnov test:

D∗=max

x |F(x)−G(x)|

Cài đặt code

1. h = lillietest(x)trả vềh=0chấp nhận giả thuyết phân phối của bộ dữ liệu tuân theo họ các phân phối chuẩn.

2. h = lillietest(x,Name,Value) Thay đổi họ phân phối cũng như thay đổi giá trị mức ý nghĩaα cho Name và Value.

3. [h,p] = lillietest(x) trả thêm về cả giá trị p-value của kiểm định.

Ví dụ minh họa

rng(’default’)

data1 = wblrnd(1,2,[500,1]);

h1 = lillietest(log(data1),’Distribution’,’extreme value’) wblplot(data1)

Giá trị trả về h=0tức là bộ dữ liệu đã cho tuân theo phân phối Weibull, dù cho các hệ số của phân phối extreme value chưa cần được xác địnhf(x) = 1

β.e

x−µ

β exp(−e

x−µ

β ) . Hình ảnh của bộ dữ liệu và đường kiểm định lý thuyết.

3 KIỂM ĐỊNH GIẢ THUYẾT

3.1.10 Chạy kiểm tra ngẫu nhiên

Lý thuyết chung

Kiểm tra xem bộ dữ liệu có được sinh ngẫu nhiên hay không.

Code minh họa

1. h = runstest(x) trả về h=0 chấp nhận giả thuyết H0 rằng bộ dữ liệu được sinh ngẫu nhiên.

2. h = runstest(x,v)bắt đầu từ giá trị được tùy chọn v(reference value) duyệt sang 2 bên của bộ dữ liệu.

3. h = runstest(x,’ud’)chạy bộ dữ liệu khử khuynh, khử mùa và kiểm định (up and down).

Ví dụ minh họa

rng default; % for reproducibility

x = randn(50,1);

[h,p] = runstest(x,median(x))

Hàm trả vềh=0, p=0.1969khá chắc chắn khi chấp nhận giả thuyếtH0 rằng bộ dữ liệu được sinh ngẫu nhiên, với việc duyệt dữ liệu bắt đầu từ median của bộ dữ liệu.

3 KIỂM ĐỊNH GIẢ THUYẾT

3.2 Kiểm định giá trị kỳ vọng

3.2.1 Kiểm định Friedman

Lý thuyết chung

Kiểm định Friedman là một loại kiểm định phi tham số dùng để đo sự khác nhau giữa các phương pháp thí nghiệm qua nhiều lần thí nghiệm. Kiểm định tiến hành xếp hạng (ranking) các lơ dữ liệu (block) thu được qua những lần thí nghiệm khác nhau.

Các bước tiến hành kiểm định

1. Cho bộ dữ liệu có dạng{xi j}nxkvớinlà số lơ số lần tiến hành thực nghiệm chokphương pháp khác nhau. Tiến hành xếp hạng cho từng lô thay thế{xi j}bởi ma trận hạng{ri j}.

2. Tínhr.j = 1 n n ∑ i=1 ri j 3. TínhQ= 12n k(k+1) k ∑ j=1 r.j−k+1 2 2

4. với n>15hoặc k>4thì ta có thể xấp xỉ phân phối của Q bởi phân phối khi bình phương và tiến hành kiểm định giả thuyết nhờ p−value=P(χk−12 ⩾Qobs). Từ đó kiểm định giả

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

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

(184 trang)