Phương pháp lấy mẫu / mô phỏng: monte carlo, bootstrapping, jackknifing, xác thực chéo, kiểm tra ngẫu nhiên và kiểm tra hoán vị


74

Tôi đang cố gắng tìm hiểu sự khác biệt giữa các phương pháp lấy mẫu khác nhau (mô phỏng Monte Carlo, bootstrapping tham số, bootstrapping không tham số, jackknifing, xác thực chéo, kiểm tra ngẫu nhiên và kiểm tra hoán vị) và thực hiện chúng trong bối cảnh của riêng tôi bằng R.

Giả sử tôi có tình huống sau - Tôi muốn thực hiện ANOVA với biến Y ( Yvar) và biến X ( Xvar). Xvarlà phân loại. Tôi quan tâm đến những điều sau đây:

(1) Ý nghĩa của giá trị p - tỷ lệ phát hiện sai

(2) kích thước hiệu ứng của các Xvarcấp

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)

Bạn có thể yêu cầu tôi giải thích sự khác biệt lấy mẫu với các ví dụ hoạt động rõ ràng làm thế nào các phương pháp lấy mẫu này hoạt động không?

Chỉnh sửa: Đây là những nỗ lực của tôi:

Bootstrap 10 mẫu bootstrap, số lượng mẫu thay thế, có nghĩa là mẫu có thể được lặp lại

boot.samples <- list()
for(i in 1:10) {
   t.xvar <- Xvar[ sample(length(Xvar), length(Xvar), replace=TRUE) ]
   t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=TRUE) ]
   b.df <- data.frame (t.xvar, t.yvar) 
   boot.samples[[i]] <- b.df 
}
str(boot.samples)
 boot.samples[1]

Hoán vị : 10 mẫu hoán vị, số lượng mẫu không thay thế

 permt.samples <- list()
    for(i in 1:10) {
       t.xvar <- Xvar[ sample(length(Xvar), length(Xvar), replace=FALSE) ]
       t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
       b.df <- data.frame (t.xvar, t.yvar) 
       permt.samples[[i]] <- b.df 
    }
    str(permt.samples)
    permt.samples[1]

Mô phỏng Monte Caro

Mặc dù thuật ngữ "lấy mẫu lại" thường được sử dụng để chỉ bất kỳ mô phỏng lấy mẫu ngẫu nhiên hoặc giả ngẫu nhiên lặp đi lặp lại, khi "lấy mẫu lại" được thực hiện từ một phân phối lý thuyết đã biết, thuật ngữ chính xác là mô phỏng "Monte Carlo".

Tôi không chắc chắn về tất cả các điều khoản trên và liệu các chỉnh sửa trên của tôi có đúng không. Tôi đã tìm thấy một số thông tin về jacknife nhưng tôi không thể chế ngự nó theo tình huống của mình.


3
Jackknife là một tiền thân đơn giản hơn của bootstrap. vi.wikipedia.org/wiki/Jackknife_(statistic)
EngrStudent

4
Chính xác hơn: jackknife là mô hình lại một lần duy nhất [nhưng không được sử dụng để xác thực chéo]
cbeleites

Câu trả lời:


122

Chúng ta có thể tìm thấy các phương pháp Lấy mẫu khác nhau , hay còn gọi là phương pháp " mô phỏng ", phụ thuộc vào việc lấy mẫu lại hoặc xáo trộn các mẫu. Có thể có sự khác biệt về ý kiến ​​liên quan đến thuật ngữ thích hợp, nhưng các cuộc thảo luận sau đây cố gắng khái quát hóa và đơn giản hóa những gì có sẵn trong tài liệu thích hợp:

Phương pháp lấy mẫu lại được sử dụng trong (1) ước tính độ chính xác / độ chính xác của thống kê mẫu thông qua việc sử dụng tập hợp con của dữ liệu (ví dụ: Jackknifing) hoặc vẽ ngẫu nhiên với sự thay thế từ một tập hợp các điểm dữ liệu (ví dụ: bootstrapping) (2) Trao đổi nhãn trên các điểm dữ liệu khi thực hiện ý nghĩa kiểm tra ( kiểm tra hoán vị, còn được gọi là kiểm tra chính xác, kiểm tra ngẫu nhiên hoặc kiểm tra ngẫu nhiên lại) (3) Xác thực các mô hình bằng cách sử dụng các tập hợp con ngẫu nhiên (bootstrapping, xác thực chéo) (xem wikipedia: phương pháp lấy mẫu lại )

KHAI THÁC

" Bootstrapping là một phương pháp thống kê để ước tính phân phối lấy mẫu của công cụ ước tính bằng cách lấy mẫu với sự thay thế từ mẫu ban đầu". Phương pháp này gán các số đo độ chính xác (được xác định theo các sai lệch , phương sai , khoảng tin cậy , lỗi dự đoán hoặc một số biện pháp khác) cho các ước tính mẫu.

Ý tưởng cơ bản của bootstrapping là suy luận về dân số từ dữ liệu mẫu ( mẫu → dân số ) có thể được mô hình hóa bằng cách lấy lại dữ liệu mẫu và thực hiện suy luận trên (mẫu lại → mẫu). Vì dân số chưa được biết, lỗi thực sự trong một thống kê mẫu so với giá trị dân số của nó là không thể biết được. Trong các mẫu thử bootstrap, 'dân số' trên thực tế là mẫu và điều này được biết đến; do đó chất lượng suy luận từ dữ liệu mẫu lại → mẫu 'đúng' là có thể đo lường được. "xem wikipedia

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)

#To generate a single bootstrap sample
sample(Yvar, replace = TRUE) 

 #generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000) 
   boot[[i]] <- sample(Yvar,replace=TRUE)

Trong các vấn đề đơn biến, thường có thể chấp nhận lấy mẫu lại các quan sát riêng lẻ bằng thay thế ("lấy mẫu trường hợp"). Ở đây chúng tôi lấy mẫu lại dữ liệu bằng thay thế và kích thước của mẫu lại phải bằng kích thước của tập dữ liệu gốc.

Trong các vấn đề hồi quy, việc lấy mẫu lại trường hợp đề cập đến sơ đồ đơn giản là lấy lại các trường hợp riêng lẻ - thường là các hàng của tập dữ liệu trong các vấn đề hồi quy, các biến giải thích thường được cố định hoặc ít nhất là được quan sát với nhiều điều khiển hơn biến phản ứng. Ngoài ra, phạm vi của các biến giải thích xác định thông tin có sẵn từ chúng. Do đó, để lấy mẫu lại các trường hợp có nghĩa là mỗi mẫu bootstrap sẽ mất một số thông tin (xem Wikipedia ). Vì vậy, sẽ hợp lý khi lấy mẫu các hàng của dữ liệu chứ không phải chỉ Yvar.

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)    

boot.samples <- list()
for(i in 1:10) {
   b.samples.cases <- sample(length(Xvar), length(Xvar), replace=TRUE) 
   b.mydf <- mydf[b.samples.cases,] 
   boot.samples[[i]] <- b.mydf
}
str(boot.samples)
 boot.samples[1]

Bạn có thể thấy một số trường hợp được lặp lại khi chúng tôi đang lấy mẫu với sự thay thế.

" Bootstrap tham số - một mô hình tham số được gắn vào dữ liệu, thường là theo khả năng tối đa và các mẫu số ngẫu nhiên được rút ra từ mô hình được trang bị này . Thông thường, mẫu được vẽ có cùng cỡ mẫu với dữ liệu gốc. Sau đó, số lượng hoặc ước tính Quá trình lấy mẫu này được lặp đi lặp lại nhiều lần như đối với các phương pháp bootstrap khác. Việc sử dụng một mô hình tham số ở giai đoạn lấy mẫu của phương pháp bootstrap dẫn đến các quy trình khác với các quy trình thu được bằng cách áp dụng lý thuyết thống kê cơ bản suy luận cho cùng một mô hình. "(xem Wikipedia ). Sau đây là bootstrap tham số với giả định phân phối bình thường với các tham số độ lệch chuẩn và trung bình.

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)

# parameters for Yvar 
mean.y <- mean(Yvar)
sd.y <- sd(Yvar)

#To generate a single bootstrap sample with assumed normal distribution (mean, sd)
rnorm(length(Yvar), mean.y, sd.y)

 #generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000) 
   boot[[i]] <- rnorm(length(Yvar), mean.y, sd.y)

Có các biến thể khác của bootstrap, vui lòng tham khảo trang wikipedia hoặc bất kỳ cuốn sách thống kê tốt nào về việc lấy mẫu lại.

JACKNIFE

"Công cụ ước tính jackknife của một tham số được tìm thấy bằng cách bỏ đi một cách có hệ thống từng quan sát từ bộ dữ liệu và tính toán ước tính và sau đó tìm trung bình của các tính toán này. Cho một mẫu có kích thước N, ước tính jackknife được tìm thấy bằng cách tổng hợp các ước tính của từng N − 1ước tính trong mẫu. " xem: wikipedia Sau đây cho thấy làm thế nào để jackknife Yvar.

jackdf <- list()
jack <- numeric(length(Yvar)-1)

for (i in 1:length (Yvar)){

for (j in 1:length(Yvar)){
     if(j < i){ 
            jack[j] <- Yvar[j]
}  else if(j > i) { 
             jack[j-1] <- Yvar[j]
}
}
jackdf[[i]] <- jack
}
jackdf

"bootstrap thông thường và jackknife, ước tính độ biến thiên của một thống kê từ tính biến thiên của thống kê đó giữa các mẫu phụ, thay vì từ các giả định tham số . Đối với jackknife tổng quát hơn, jackknife quan sát được có thể được xem là ngẫu nhiên Cả hai đều mang lại kết quả bằng số tương tự nhau, đó là lý do tại sao mỗi kết quả có thể được xem là gần đúng với nhau. " Xem câu hỏi này trên Bootstrap vs Jacknife.

KIỂM TRA RANDOMIZATION

"Trong các thử nghiệm tham số, chúng tôi lấy mẫu ngẫu nhiên từ một hoặc nhiều quần thể. Chúng tôi đưa ra một số giả định nhất định về các quần thể đó, phổ biến nhất là chúng thường được phân phối với phương sai bằng nhau. Chúng tôi thiết lập một giả thuyết null được đóng khung theo các tham số, thường có dạng m1 -m2 = 0. Chúng tôi sử dụng số liệu thống kê mẫu của chúng tôi để ước tính các tham số dân số tương ứng và tính toán thống kê kiểm tra (chẳng hạn như khi kiểm tra). Ví dụ: trong Student t - test về sự khác biệt về phương tiện khi không xác định được phương sai, nhưng được xem xét bằng nhau. Giả thuyết về lợi ích là thế H0: m1 = m2. Một trong những giả thuyết thay thế sẽ được nêu là:HA: m1 < m2. Cho hai mẫu được rút ra từ các quần thể 1 và 2, giả sử rằng đây là những quần thể phân phối bình thường có phương sai bằng nhau và các mẫu được rút ra độc lập và ngẫu nhiên từ mỗi quần thể, sau đó có thể xây dựng một thống kê để phân phối H0.

Một cách để tránh các giả định phân phối này là cách tiếp cận được gọi là thống kê không tham số, thứ tự - thứ tự, thứ hạng - như và phân phối - miễn phí. Các thống kê phân phối miễn phí này thường bị chỉ trích là kém "hiệu quả" hơn so với thử nghiệm tương tự dựa trên giả định rằng các quần thể được phân phối bình thường.

Một cách tiếp cận khác là cách tiếp cận ngẫu nhiên - "quá trình gán ngẫu nhiên các cấp bậc cho các quan sát độc lập với kiến ​​thức của một người trong đó mẫu quan sát là một thành viên. Thử nghiệm ngẫu nhiên sử dụng một quy trình như vậy, nhưng thực hiện bằng cách vận hành các quan sát thay vì khớp Vì lý do này, việc phân phối một thống kê tương tự (tổng các quan sát trong một mẫu) không thể được lập bảng dễ dàng, mặc dù về mặt lý thuyết có thể liệt kê một phân phối như vậy "( xem )

Các xét nghiệm ngẫu nhiên khác với các xét nghiệm tham số ở hầu hết mọi khía cạnh. (1) Không có yêu cầu rằng chúng tôi có các mẫu ngẫu nhiên từ một hoặc nhiều quần thể, trên thực tế, chúng tôi thường không lấy mẫu ngẫu nhiên. (2) Chúng tôi hiếm khi nghĩ về các quần thể mà dữ liệu xuất phát và không cần phải giả định bất cứ điều gì về tính quy tắc hoặc tính đồng nhất (3) Giả thuyết khống của chúng tôi không liên quan gì đến các tham số, nhưng được đặt ra khá mơ hồ, như, ví dụ, giả thuyết rằng việc điều trị không ảnh hưởng đến cách người tham gia thực hiện. (4) Vì chúng tôi không quan tâm đến dân số, chúng tôi không quan tâm đến việc ước tính (hoặc thậm chí thử nghiệm) các đặc điểm đó (5) Chúng tôi tính toán một số loại thống kê kiểm tra, tuy nhiên chúng tôi không so sánh thống kê đó với phân phối theo bảng. Thay thế, chúng tôi so sánh nó với kết quả chúng tôi thu được khi liên tục ngẫu nhiên hóa dữ liệu giữa các nhóm và tính toán thống kê tương ứng cho mỗi ngẫu nhiên. (6) Thậm chí nhiều hơn các xét nghiệm tham số, xét nghiệm ngẫu nhiên nhấn mạnh tầm quan trọng của việc chỉ định ngẫu nhiên người tham gia điều trị. "thấy .

Loại thử nghiệm ngẫu nhiên rất phổ biến là thử nghiệm hoán vị. Nếu cỡ mẫu của chúng tôi là 12 và 5, tổng hoán vị có thể là C(12,5) = 792. Nếu cỡ mẫu của chúng tôi là 10 và 15 thì có thể có hơn 3,2 triệu sắp xếp. Đây là thách thức điện toán: Sau đó thì sao? Mẫu . Khi vũ trụ sắp xếp có thể quá lớn để liệt kê tại sao không sắp xếp mẫu từ vũ trụ này một cách độc lập và ngẫu nhiên? Việc phân phối thống kê kiểm tra qua loạt mẫu này sau đó có thể được lập bảng, giá trị trung bình và phương sai của nó và tỷ lệ lỗi liên quan đến kiểm tra giả thuyết được ước tính.

KIỂM TRA XÁC NHẬN

Theo wikipedia "Một thử nghiệm hoán vị (còn gọi là thử nghiệm ngẫu nhiên , thử nghiệm ngẫu nhiên lại hoặc thử nghiệm chính xác ) là một loại thử nghiệm có ý nghĩa thống kê trong đó phân phối thống kê thử nghiệm theo giả thuyết null có được bằng cách tính toán tất cả các giá trị có thể của thống kê kiểm tra theo sự sắp xếp lại các nhãn trên các điểm dữ liệu được quan sát. Các phép thử hoán vị tồn tại cho bất kỳ thống kê kiểm tra nào, bất kể phân phối của nó có được biết hay không. Do đó, người ta luôn tự do chọn thống kê phân biệt tốt nhất giữa giả thuyết và thay thế và giúp giảm thiểu tổn thất. "

Sự khác biệt giữa hoán vị và bootstrap là mẫu bootstraps có thay thế và mẫu hoán vị mà không thay thế . Trong cả hai trường hợp, thứ tự thời gian của các quan sát bị mất và do đó phân cụm biến động bị mất - do đó đảm bảo rằng các mẫu nằm dưới giả thuyết null không có cụm biến động.

Các hoán vị luôn có tất cả các quan sát giống nhau, vì vậy chúng giống dữ liệu gốc hơn các mẫu bootstrap. Kỳ vọng là thử nghiệm hoán vị nên nhạy hơn thử nghiệm bootstrap. Các hoán vị phá hủy phân cụm biến động nhưng không thêm bất kỳ biến động nào khác .

Xem câu hỏi về hoán vị so với bootstrapping - "Kiểm tra hoán vị là tốt nhất để kiểm tra các giả thuyết và bootstrapping là tốt nhất để ước tính khoảng tin cậy ".

Vì vậy, để thực hiện hoán vị trong trường hợp này, chúng ta chỉ cần thay đổi replace = FALSEtrong ví dụ bootstrap ở trên.

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
     #generate 1000 bootstrap samples
       permutes <-list()
    for (i in 1:1000) 
       permutes[[i]] <- sample(Yvar,replace=FALSE)

Trong trường hợp có nhiều hơn một biến, chỉ cần chọn các hàng và chia sẻ lại thứ tự sẽ không tạo ra bất kỳ sự khác biệt nào vì dữ liệu sẽ giữ nguyên. Vì vậy, chúng tôi cải tổ lại biến y. Một cái gì đó những gì bạn đã làm, nhưng tôi không nghĩ rằng chúng ta không cần xáo trộn đôi của cả hai xy variables(như bạn đã làm).

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)

 permt.samples <- list()
    for(i in 1:10) {
       t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
       b.df <- data.frame (Xvar, t.yvar) 
       permt.samples[[i]] <- b.df 
    }
    str(permt.samples)
    permt.samples[1]

PHƯƠNG PHÁP MONTE CARLO

"Phương pháp Monte Carlo (hoặc thí nghiệm Monte Carlo) là một loại thuật toán tính toán rộng lớn dựa trên việc lấy mẫu ngẫu nhiên lặp đi lặp lại để thu được kết quả bằng số, thông thường người ta chạy mô phỏng nhiều lần để có được sự phân phối của một thực thể xác suất không xác định. từ sự giống nhau của kỹ thuật đến hành động chơi và ghi lại kết quả trong một sòng bạc thực sự. "xem Wikipedia

"Trong các thống kê được áp dụng, các phương pháp Monte Carlo thường được sử dụng cho hai mục đích:

(1) Để so sánh thống kê cạnh tranh cho các mẫu nhỏ trong điều kiện dữ liệu thực tế. Mặc dù lỗi loại I và thuộc tính công suất của số liệu thống kê có thể được tính cho dữ liệu được rút ra từ các phân phối lý thuyết cổ điển (ví dụ: đường cong thông thường, phân phối Cauchy) cho các điều kiện tiệm cận (ví dụ, kích thước mẫu vô hạn và hiệu ứng xử lý cực nhỏ), dữ liệu thực thường làm không có phân phối như vậy.

(2) Để cung cấp việc triển khai các thử nghiệm giả thuyết hiệu quả hơn các thử nghiệm chính xác như thử nghiệm hoán vị (thường không thể tính toán) trong khi chính xác hơn các giá trị quan trọng đối với phân phối tiệm cận.

Các phương pháp Monte Carlo cũng là một sự thỏa hiệp giữa các thử nghiệm ngẫu nhiên và hoán vị gần đúng . Một thử nghiệm ngẫu nhiên gần đúng dựa trên một tập hợp con cụ thể của tất cả các hoán vị (đòi hỏi khả năng giữ nhà rất lớn trong đó các hoán vị đã được xem xét). Cách tiếp cận Monte Carlo dựa trên một số hoán vị được rút ngẫu nhiên xác định ( trao đổi một tổn thất nhỏ về độ chính xác nếu hoán vị được rút ra hai lần - hoặc thường xuyên hơn là hiệu quả của việc không phải theo dõi các hoán vị nào đã được chọn ). "

Cả MC và phép thử Hoán vị đôi khi được gọi chung là các thử nghiệm ngẫu nhiên . Sự khác biệt là trong MC chúng tôi lấy mẫu các mẫu hoán vị, thay vì sử dụng tất cả các kết hợp có thể thấy .

XÁC NHẬN CROSS

Ý tưởng ngoài việc xác nhận chéo là các mô hình nên được kiểm tra với dữ liệu không được sử dụng để phù hợp với mô hình. Xác nhận chéo có lẽ thường được sử dụng trong bối cảnh dự đoán .

"Xác thực chéo là một phương pháp thống kê để xác thực mô hình dự đoán. Các tập hợp con của dữ liệu được tổ chức để sử dụng làm bộ xác thực ; một mô hình phù hợp với dữ liệu còn lại (tập huấn luyện) và được sử dụng để dự đoán cho tập xác thực. chất lượng của các dự đoán trên các bộ xác nhận mang lại một thước đo tổng thể về độ chính xác dự đoán.

Một hình thức xác nhận chéo để lại một quan sát duy nhất tại một thời điểm; điều này tương tự như jackknife. Một cách khác, xác thực chéo K, chia dữ liệu thành các tập con K; mỗi cái được tổ chức lần lượt dưới dạng tập xác thực. "xem Wikipedia . Xác thực chéo thường được thực hiện với dữ liệu định lượng. Bạn có thể chuyển đổi định tính (dữ liệu nhân tố) sang định lượng theo cách nào đó để phù hợp với mô hình tuyến tính và kiểm tra mô hình này. chiến lược nắm giữ trong đó 50% dữ liệu được sử dụng để dự đoán mô hình trong khi phần còn lại được sử dụng để thử nghiệm. Giả sử Xvarcũng là biến định lượng.

    Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
    Xvar <- c(rep(1, 5),  rep(2, 5),    rep(3, 5))
    mydf <- data.frame (Yvar, Xvar)
    training.id <- sample(1:nrow(mydf), round(nrow(mydf)/2,0), replace = FALSE)
    test.id <- setdiff(1:nrow(mydf), training.id)
   # training dataset 
    mydf.train <- mydf[training.id]

    #testing dataset 
    mydf.test <- mydf[test.id]

Không giống như kiểm tra bootstrap và hoán vị, bộ dữ liệu xác nhận chéo cho đào tạo và kiểm tra là khác nhau. Hình dưới đây cho thấy một bản tóm tắt về việc lấy mẫu lại trong các phương pháp khác nhau.

nhập mô tả hình ảnh ở đây

Mong cái này giúp được chút ít.


23
Điều này thật ấn tượng - và đặc biệt là như vậy, vì đó là câu trả lời đầu tiên của bạn! Tôi hy vọng bạn tiếp tục tham gia ở đây và tôi mong muốn những đóng góp trong tương lai của bạn cho trang web của chúng tôi.
whuber

Câu trả lời này thật TUYỆT VỜI một câu trả lời lớn. Tuy nhiên, một số liên kết dường như bị bỏ rơi. Có ai có manh mối về nơi các liên kết là?
tintinthong

7

Đây là đóng góp của tôi.

Dữ liệu

Yvar <- c(8,9,10,13,12,
          14,18,12,8,9,
          1,3,2,3,4)
Xvar <- rep(LETTERS[1:3], each=5)
mydf <- data.frame(Yvar, Xvar)

Monte Carlo

Tôi thấy Monte Carlo là một phương pháp để có được sự phân phối của một biến ngẫu nhiên (kết quả), là kết quả của một hàm không cần thiết của các biến ngẫu nhiên (đầu vào) khác. Tôi không thấy ngay sự trùng lặp với phân tích ANOVA hiện tại, có lẽ các thành viên diễn đàn khác có thể đưa ra ý kiến ​​đóng góp của họ ở đây.

Bootstrapping

Mục đích là để có một ý tưởng về tính không chắc chắn của một thống kê được tính toán từ một mẫu được quan sát. Ví dụ: chúng ta có thể tính toán trung bình mẫu của Yvar là 8.4, nhưng chúng ta có ý nghĩa nhất định về dân số đối với Yvar như thế nào? Bí quyết là làm như thể mẫu là dân số, và lấy mẫu nhiều lần từ dân số giả đó.

n <- 1000
bootstrap_means <- numeric(length=n)
for(i in 1:n){
   bootstrap_sample <- sample(x=Yvar, size=length(Yvar), replace=TRUE)
   bootstrap_means[i] <- mean(bootstrap_sample)
}
hist(bootstrap_means)

Chúng tôi chỉ lấy mẫu và không giả sử bất kỳ phân phối tham số. Đây là bootstrap không đối xứng . Nếu bạn cảm thấy thoải mái khi giả sử Xvar được phân phối bình thường, bạn cũng có thể lấy mẫu từ một phân phối bình thường ( rnorm(...)) bằng cách sử dụng giá trị trung bình và độ lệch chuẩn ước tính, đây sẽ là bootstrap tham số .

Những người dùng khác có thể cung cấp cho các ứng dụng của bootstrap liên quan đến kích thước hiệu ứng của các Xvarcấp độ?

Vô cảm

Các jackknife dường như là một chút lỗi thời. Để hoàn thiện, bạn có thể so sánh nó ít nhiều với bootstrap, nhưng chiến lược là ở đây để xem điều gì sẽ xảy ra nếu chúng ta bỏ qua một quan sát (và lặp lại điều này cho mỗi lần quan sát).

Xác nhận chéo

Trong xác thực chéo, bạn chia dữ liệu (thường là lớn) của mình trong tập huấn luyện và tập xác thực, để xem mô hình ước tính của bạn có thể dự đoán các giá trị trong tập xác thực tốt đến mức nào. Cá nhân tôi chưa thấy một ứng dụng xác nhận chéo nào cho ANOVA, vì vậy tôi thích để phần này cho người khác.

Các thử nghiệm ngẫu nhiên / hoán vị

Được cảnh báo, thuật ngữ không được thỏa thuận. Xem sự khác biệt giữa kiểm tra ngẫu nhiên và kiểm tra hoán vị .

Giả thuyết không có giá trị là không có sự khác biệt giữa các nhóm A, B và C, vì vậy chúng ta không nên trao đổi ngẫu nhiên các nhãn của 15 giá trị Xvar. Nếu giá trị F được quan sát ban đầu (hoặc thống kê khác) không đồng ý với giá trị thu được sau khi trao đổi nhãn ngẫu nhiên, thì có lẽ điều đó có vấn đề và giả thuyết null có thể bị bác bỏ.

observed_F_value <- anova(lm(Yvar ~ Xvar))$"F value"[1]

n <- 10000
permutation_F_values <- numeric(length=n)

for(i in 1:n){
   # note: the sample function without extra parameters defaults to a permutation
   temp_fit <- anova(lm(Yvar ~ sample(Xvar)))
   permutation_F_values[i] <- temp_fit$"F value"[1]
}

hist(permutation_F_values, xlim=range(c(observed_F_value, permutation_F_values)))
abline(v=observed_F_value, lwd=3, col="red")
cat("P value: ", sum(permutation_F_values >= observed_F_value), "/", n, "\n", sep="")

biểu đồ

Hãy cẩn thận với cách bạn gán lại nhãn trong trường hợp thiết kế phức tạp. Cũng lưu ý rằng trong trường hợp phương sai không bằng nhau, giả thuyết khống về khả năng trao đổi là không đúng ngay từ đầu, vì vậy phép thử hoán vị này sẽ không đúng.

Ở đây chúng tôi không rõ ràng đi qua tất cả các hoán vị có thể có của nhãn, đây là ước tính của Monte Carlo về giá trị P. Với các bộ dữ liệu nhỏ, bạn có thể đi qua tất cả các hoán vị có thể, nhưng mã R ở trên dễ hiểu hơn một chút.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.