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 = FALSE
trong 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 x
và y 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ử Xvar
cũ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.
Mong cái này giúp được chút ít.