Thử nghiệm bootstrap là gì?

Áp dụng phương pháp bootstrap cơ bản thực sự đơn giản. Phần lộn xộn duy nhất là thực hiện hiệu chỉnh 'điều chỉnh sai lệch và tăng tốc' (BCa) trên khoảng tin cậy. Tôi đã cung cấp một hàm gọi là 'bootstrap' để chạy thuật toán bootstrap và sau đó (theo mặc định) thực hiện chỉnh sửa BCa. Trong nhiều trường hợp, việc chỉnh sửa này không tạo ra nhiều khác biệt và trong một số ví dụ bên dưới, tôi thậm chí không biết cách áp dụng nó, vì vậy tôi đã bỏ nó đi.

Các ví dụ dưới đây chạy qua một loạt các ứng dụng khá đơn giản của phương pháp bootstrap trên số liệu thống kê mà chúng tôi có thể có hoặc không có bảng cho

clear all

ví dụ 1. Bootstrapping thay vì kiểm tra t (với kích thước mẫu không bằng nhau)

Thử nghiệm t kiểm tra giả thuyết rằng hai mẫu đến từ cùng một phân phối dựa trên sự khác biệt giữa phương tiện của các mẫu. Các thử nghiệm T giả định những thứ thông thường về phân phối bình thường và được sử dụng phổ biến nhất khi so sánh các mẫu có kích thước bằng nhau. Khi so sánh các mẫu có kích thước khác nhau, ước tính phương sai gộp được sử dụng và mức độ tự do là trung bình của hai df từ mỗi mẫu. Điều này có vẻ giống như một chút hack đối với tôi

Để khởi động trên các mẫu, chúng tôi sẽ lấy mẫu thay thế từ cả hai mẫu. Cũng giống như ví dụ về tỷ lệ phương sai bên dưới, việc cho phép các cỡ mẫu khác nhau có nghĩa là chúng ta không thể sử dụng phương pháp BCa. Chúng tôi sẽ thực hiện lại quá trình khởi động bằng tay mà không có chức năng 'bootstrap'

Trong ví dụ cụ thể này, chúng tôi sẽ kiểm tra giả thuyết rằng các phương tiện là khác nhau (thử nghiệm hai đầu)

tạo dữ liệu giả bằng cách vẽ từ các bản phân phối bình thường

x1 = randn(n1,1);
x2 = randn(n2,1);

định nghĩa thống kê là sự khác biệt giữa các phương tiện

myStatistic = @(x1,x2) mean(x1)-mean(x2);

sampStat = myStatistic(x1,x2);
bootstrapStat = zeros(nReps,1);
for i=1:nReps
    sampX1 = x1(ceil(rand(n1,1)*n1));
    sampX2 = x2(ceil(rand(n2,1)*n2));
    bootstrapStat(i) = myStatistic(sampX1,sampX2);
end

Tính khoảng tin cậy (tôi có thể tạo một hàm từ cái này. )

Vẽ biểu đồ thống kê lấy mẫu

clf
xx = min(bootstrapStat):.01:max(bootstrapStat);
hist(bootstrapStat,xx);
hold on
ylim = get(gca,'YLim');
h1=plot(sampStat*[1,1],ylim,'y-','LineWidth',2);
h2=plot(CI(1)*[1,1],ylim,'r-','LineWidth',2);
plot(CI(2)*[1,1],ylim,'r-','LineWidth',2);
h3=plot([0,0],ylim,'b-','LineWidth',2);
xlabel('Difference between means');

decision = {'Fail to reject H0','Reject H0'};
title(decision(H+1));
legend([h1,h2,h3],{'Sample mean',sprintf('%2.0f%% CI',100*alpha),'H0 mean'},'Location','NorthWest');
Thử nghiệm bootstrap là gì?

ví dụ 2. Bootstrapping trên một 'chỉ mục'

Thông thường (đặc biệt là trong khoa học thần kinh), chúng ta tạo ra 'chỉ số' của riêng mình, đó là thước đo tác động của một điều kiện đối với thước đo của chúng ta. Ví dụ: khi đo tốc độ kích hoạt của nơ-ron, việc so sánh sự khác biệt về tốc độ kích hoạt giữa hai điều kiện thường được biểu thị dưới dạng một chỉ số là tỷ lệ của sự khác biệt so với tổng của hai tốc độ kích hoạt. Điều này chuẩn hóa bằng tốc độ bắn tổng thể của nơ-ron và cung cấp một số luôn nằm trong khoảng từ -1 đến 1

Trong ví dụ này, chúng tôi sẽ tạo hai mẫu gồm 25 tốc độ bắn tương ứng với 25 nơ-ron được đo trong hai điều kiện. Sau đó, chúng tôi sẽ tính toán chỉ số cho từng nơ-ron và bootstrap trên giá trị trung bình của các chỉ số để xem liệu nó có khác 0 không

xác định 'chỉ mục' của chúng tôi ở đây (chênh lệch so với tổng)

myStatistic = @(x) mean((x(:,1)-x(:,2))./(x(:,1)+x(:,2)));

chạy chương trình 'bootstrap' để tạo khoảng tin cậy

[CI,sampStat,bootstrapStat] = bootstrap(myStatistic,x,nReps,CIrange);

Hiển thị biểu đồ của các chỉ số boostrapped

figure(1)
clf

xx = min(bootstrapStat):.01:max(bootstrapStat);
hist(bootstrapStat,xx);
hold on
ylim = get(gca,'YLim');
plot(sampStat*[1,1],ylim,'y-','LineWidth',2);
plot(CI(1)*[1,1],ylim,'r-','LineWidth',2);
plot(CI(2)*[1,1],ylim,'r-','LineWidth',2);
plot([0,0],ylim,'b-','LineWidth',2);
set(gca,'XTick',[-1:.25:1]);
set(gca,'XLim',[-1,1]);
Thử nghiệm bootstrap là gì?

Nếu khoảng tin cậy của chúng tôi không bao gồm số 0, thì chúng tôi sẽ kết luận rằng giá trị trung bình của các chỉ số của chúng tôi trên các nơ-ron khác đáng kể so với số không.

H = CI(1)>0 | CI(2)<0;
title(sprintf('Bootstraping on an ''index'': %s',decision{H+1}));
Thử nghiệm bootstrap là gì?

Tập thể dục. Thêm một giá trị vào cột đầu tiên để xem liệu bạn có thể bác bỏ giả thuyết không.

ví dụ 3. Bootstrapping trên một tỷ lệ phương sai

Tỷ lệ phương sai của hai mẫu phân phối F. Phép thử F kiểm tra giả thuyết khống rằng hai phương sai là như nhau (tỷ lệ = 1). Chúng ta có thể thực hiện một phiên bản f-test không tham số bằng cách sử dụng phương thức bootstrap

________số 8_______

hai lần rút từ một phân phối bình thường đơn vị

x1 = randn(n1,1);
x2 = randn(n2,1);

Thống kê của chúng tôi là tỷ lệ của phương sai

x1 = randn(n1,1);
x2 = randn(n2,1);
0

Đây là giá trị quan sát của chúng tôi (nên gần 1)

x1 = randn(n1,1);
x2 = randn(n2,1);
1

Chúng tôi sẽ thực hiện việc này theo cách thủ công, thay vì gọi chương trình bootstrap vì chương trình duy trì mối quan hệ theo cặp giữa hai giá trị và không thể xử lý hai kích thước mẫu khác nhau. Điều này có nghĩa là chúng tôi sẽ không sử dụng phương pháp BCa và thay vào đó sẽ sử dụng phân vị chuẩn trên phân phối được lấy mẫu của chúng tôi để lấy khoảng tin cậy

x1 = randn(n1,1);
x2 = randn(n2,1);
2

Tính khoảng tin cậy bằng phần trăm

x1 = randn(n1,1);
x2 = randn(n2,1);
3_______1_______4

vẽ biểu đồ của phân phối được lấy mẫu và khoảng tin cậy

Thử nghiệm bootstrap là gì?

Ví dụ 4. Bootstrapping trên phần dư sau hồi quy. Một ví dụ fMRI

fMRI 'liên quan đến sự kiện' liên quan đến việc giải mã giữa chuỗi thời gian fMRI và 'chuỗi sự kiện'. Đây thực sự là một vấn đề hồi quy tuyến tính trong đó đầu ra là phản ứng huyết động dự đoán

Đầu ra này là các biến hồi quy hoặc các giá trị mà khi được kết hợp với ma trận sự kiện sẽ dự đoán dữ liệu fMRI với sai số bình phương tối thiểu. Sự khác biệt giữa dự đoán và dữ liệu thực tế được gọi là phần dư

Chúng ta có thể ước tính sai số chuẩn cho các biến hồi quy này bằng cách khởi động trên các phần dư này. Đó là, bằng cách lặp đi lặp lại lấy mẫu lại phần dư với sự thay thế và ước tính lại phản ứng huyết động. Độ lệch chuẩn của các ước tính được lấy mẫu lại này cung cấp thước đo sai số chuẩn của ước tính của chúng tôi

Phần đầu tiên này tạo ra một phản ứng huyết động giả từ một nghiên cứu liên quan đến sự kiện với ba loại sự kiện (cộng với khoảng trống)

Thông số thí nghiệm

Các tham số mô hình được sử dụng để tạo dữ liệu giả

true hdr là các hàm gamma với biên độ tăng dần

Chuỗi sự kiện là một chuỗi m

Đây là phần thú vị. Trước tiên, chúng tôi sẽ ước tính hdr từ dữ liệu của mình bằng cách sử dụng hồi quy tuyến tính (sử dụng chức năng 'pinv')

x1 = randn(n1,1);
x2 = randn(n2,1);
5

Tiếp theo chúng ta sẽ tính sai số dư giữa mô hình và dữ liệu

x1 = randn(n1,1);
x2 = randn(n2,1);
6

Sau đó, chúng tôi sẽ khởi động lại bằng cách lấy mẫu lại các phần dư, thêm các phần dư mới này vào dự đoán và ước tính lại hdr. Lưu ý ở đây rằng chúng tôi không gọi chương trình 'bootstrap' mà thay vào đó chỉ thực hiện thủ công. Điều này là do (1) chúng tôi không sử dụng phương pháp BCa và (2) 'số liệu thống kê' của chúng tôi có n giá trị cho mỗi mẫu lại thay vì chỉ 1

Độ lệch chuẩn của các hdr được ước tính lại này trên các mẫu lấy lại của phần dư cung cấp ước tính SEM cho từng điểm thời gian của hdr ước tính

x1 = randn(n1,1);
x2 = randn(n2,1);
7

Phần này chỉ định hình lại hdr ước tính thành bốn cột - một cột cho mỗi loại sự kiện (ước tính ban đầu xuất hiện trong một vectơ dài)

x1 = randn(n1,1);
x2 = randn(n2,1);
8

Vẽ các hdr ước tính và các lỗi tiêu chuẩn của chúng dưới dạng các thanh lỗi

x1 = randn(n1,1);
x2 = randn(n2,1);
9
Thử nghiệm bootstrap là gì?

Ví dụ 5. Bootstrap trên hệ số tương quan để có khoảng tin cậy.

Bootstrapping trên một mối tương quan rất hữu ích vì chúng tôi biết rằng phân phối của các mối tương quan là không bình thường vì nó bị giới hạn giữa -1 và 1. Matlab cung cấp tập dữ liệu mẫu về điểm gpa và lsat của 15 sinh viên. Chúng tôi sẽ tải nó ở đây và tính toán mối tương quan

myStatistic = @(x1,x2) mean(x1)-mean(x2);

sampStat = myStatistic(x1,x2);
bootstrapStat = zeros(nReps,1);
for i=1:nReps
    sampX1 = x1(ceil(rand(n1,1)*n1));
    sampX2 = x2(ceil(rand(n2,1)*n2));
    bootstrapStat(i) = myStatistic(sampX1,sampX2);
end
0

Hiển thị biểu đồ phân tán của GPA so với LSAT và hiển thị mối tương quan trong tiêu đề

myStatistic = @(x1,x2) mean(x1)-mean(x2);

sampStat = myStatistic(x1,x2);
bootstrapStat = zeros(nReps,1);
for i=1:nReps
    sampX1 = x1(ceil(rand(n1,1)*n1));
    sampX2 = x2(ceil(rand(n2,1)*n2));
    bootstrapStat(i) = myStatistic(sampX1,sampX2);
end
1
Thử nghiệm bootstrap là gì?

Khởi động dữ liệu bằng cách lấy ra các cặp có thay thế. Chúng tôi sẽ sử dụng phương pháp 'BCa' ở đây.

Hiển thị phân phối các giá trị bootrapped và khoảng tin cậy

Thử nghiệm bootstrap là gì?

Vì phần dưới của khoảng tin cậy của chúng tôi cao hơn 0, chúng tôi kết luận rằng mối tương quan của chúng tôi có ý nghĩa ở mức p <. 01 cấp (hai đuôi)

Ví dụ 6. Kiểm tra hoán vị thay vì bootstrapping

'Thử nghiệm hoán vị' là phương pháp lấy mẫu lại thứ hai giải quyết câu hỏi liệu mối tương quan có đáng kể hay không. Mặc dù phương pháp bootstrap ước tính khoảng tin cậy xung quanh thống kê đo được của bạn, nhưng phép thử hoán vị ước tính xác suất lấy được dữ liệu của bạn một cách tình cờ

Đối với ví dụ về gpa lsat, nó liên quan đến việc xáo trộn liên tục mối quan hệ giữa hai biến và tính toán mối tương quan. Nó giống như việc gán lại điểm trung bình của một sinh viên với lsat của một sinh viên khác một cách ngẫu nhiên để kiểm tra sự phân bố của giả thuyết khống rằng không có mối quan hệ nào với việc ghép cặp cụ thể của hai biến

Về mặt tính toán, nó tương tự như phương thức bootstrap. Trên mỗi lần lặp, chúng tôi sẽ xáo trộn thứ tự các giá trị của một trong các biến trước khi tính toán mối tương quan

Sau nhiều lần lặp lại, chúng tôi sẽ so sánh sự phân bố của các mối tương quan được xáo trộn lại với mối tương quan được quan sát của chúng tôi. Nếu nó rơi ra ở phần đuôi thì chúng tôi quyết định rằng chúng tôi có một mối tương quan đáng kể

Lưu ý, phép thử hoán vị thực sự sử dụng mọi khả năng xáo trộn lại dữ liệu. Đối với 15 quan sát của chúng tôi, có 15 giai thừa, hoặc khoảng một nghìn tỷ kết hợp. Để hợp lý, chúng tôi sẽ chỉ lấy mẫu con 20.000 mẫu từ các kết hợp nghìn tỷ này. Lấy mẫu con này được gọi là mô phỏng Monte Carlo

xác định có bao nhiêu mối tương quan được chia sẻ lại vượt quá giá trị quan sát của chúng tôi

myStatistic = @(x1,x2) mean(x1)-mean(x2);

sampStat = myStatistic(x1,x2);
bootstrapStat = zeros(nReps,1);
for i=1:nReps
    sampX1 = x1(ceil(rand(n1,1)*n1));
    sampX2 = x2(ceil(rand(n2,1)*n2));
    bootstrapStat(i) = myStatistic(sampX1,sampX2);
end
2

Hiển thị biểu đồ về các mối tương quan được chia sẻ lại và giá trị được quan sát của chúng tôi

myStatistic = @(x1,x2) mean(x1)-mean(x2);

sampStat = myStatistic(x1,x2);
bootstrapStat = zeros(nReps,1);
for i=1:nReps
    sampX1 = x1(ceil(rand(n1,1)*n1));
    sampX2 = x2(ceil(rand(n2,1)*n2));
    bootstrapStat(i) = myStatistic(sampX1,sampX2);
end
3
Thử nghiệm bootstrap là gì?

Kiểm tra thống kê tiêu chuẩn cho các mối tương quan là giả sử phân phối t với bậc tự do n-2. Thử nghiệm này sẽ kết luận rằng chúng tôi có mối tương quan đáng kể với giá trị p là 0. 000665.

Thật thú vị khi lưu ý những điểm tương đồng và khác biệt giữa bootstrap và phép thử hoán vị ở đây

Bootstrap sử dụng lấy mẫu mà không cần thay thế trong khi thử nghiệm hoán vị lấy mẫu có thay thế (xáo trộn lại)

Bootstrap duy trì mối quan hệ theo cặp giữa hai biến và do đó tạo ra phân phối các giá trị tập trung vào giá trị được quan sát của chúng tôi. Phép thử hoán vị thực hiện ngược lại - xáo trộn các mối quan hệ theo cặp và do đó tạo ra một phân phối có tâm là 0

Quyết định trong phương pháp bootstrap được đưa ra bằng cách xác định bao nhiêu phần đuôi của phân phối giảm xuống dưới 0. Quyết định trong phép thử perumation được đưa ra bằng cách xác định mức độ phân phối vượt quá giá trị quan sát của chúng tôi

Tôi không biết bài kiểm tra nào phù hợp hơn hoặc liệu họ có đưa ra quyết định tương tự không

từ Wikipedia

Good (2000) giải thích sự khác biệt giữa phép thử hoán vị và phép thử bootstrap theo cách sau. "Giả thuyết kiểm tra hoán vị liên quan đến phân phối; bootstraps kiểm tra giả thuyết liên quan đến tham số. Kết quả là, bootstrap đòi hỏi các giả định ít nghiêm ngặt hơn. "

Vì vậy, có bạn đi

Tốt, P. (2002) Mở rộng khái niệm về khả năng trao đổi và ứng dụng của chúng, J. ứng dụng hiện đại. thống kê. Phương pháp, 1. 243-247

Bootstrapping là gì và tại sao nó được sử dụng?

Bootstrapping là quá trình xây dựng doanh nghiệp từ đầu mà không cần thu hút đầu tư hoặc với nguồn vốn bên ngoài tối thiểu . Đó là một cách để tài trợ cho các doanh nghiệp nhỏ bằng cách mua và sử dụng tài nguyên bằng chi phí của chủ sở hữu mà không chia sẻ vốn chủ sở hữu hoặc vay một khoản tiền lớn từ ngân hàng.

Lấy mẫu bootstrap nghĩa là gì?

Đây là định nghĩa chính thức về Lấy mẫu Bootstrap. Trong thống kê, Lấy mẫu Bootstrap là phương pháp liên quan đến việc vẽ dữ liệu mẫu lặp đi lặp lại với sự thay thế từ nguồn dữ liệu để ước tính tham số tổng thể .

Bootstrap có tốt hơn t test không?

Và lý thuyết kiểm định t không áp dụng cho một số tham số/thống kê quan tâm, e. g. phương tiện cắt, độ lệch chuẩn, lượng tử, v.v. Ưu điểm của bootstrap là nó có thể ước tính phân phối lấy mẫu mà không cần nhiều giả định theo phương pháp tham số .

Bootstrap nghĩa là gì trong SPSS?

Bootstrapping là một phương pháp để đưa ra các ước tính mạnh về sai số chuẩn và khoảng tin cậy cho các ước tính như giá trị trung bình, trung vị, tỷ lệ, tỷ lệ chênh lệch, hệ số tương quan hoặc hệ số hồi quy. Nó cũng có thể được sử dụng để xây dựng các bài kiểm tra giả thuyết