Đây có phải là một mô phỏng Monte Carlo?


7

Vì vậy, hãy so sánh hai phân phối bình thường

Do this x times: 

runs <- 100000
a.samples <- rnorm(runs, mean = 5) 
b.samples <- rbeta(runs, mean = 0) 
mc.p.value <- sum(a.samples > b.samples)/runs

Giá trị mc.p. giảm xuống dưới mức alpha (0,05) của chúng tôi chia cho x sau đó sẽ đưa ra tỷ lệ lỗi type1. H0 của chúng tôi là a.samples> = b.samples. (Lấy cảm hứng từ https://www.countbayesie.com/blog/2015/3/3/6-amazed-trick-with-monte-carlo-simutions )

Nhưng, tôi nghĩ rằng một mô phỏng montecarlo phải tuân theo các bước sau:

Thuật toán:

  1. Thiết lập một số phân phối cho dữ liệu, f () hoặc f (θ) và một số H0
  2. Lặp lại hai bước sau nhiều lần: (a) Mô phỏng tập dữ liệu theo H0 (b) Tính T (x) bằng dữ liệu mô phỏng
  3. Thêm T (X) được đánh giá từ dữ liệu mẫu
  4. Đặt hàng tất cả các T (x) s
  5. giá trị p là tỷ lệ của T (x) s là cực trị hoặc cực trị hơn so với giá trị từ dữ liệu mẫu

Vì vậy, đoạn mã đầu tiên không phải là mô phỏng caro bona fide monte? và là giá trị p hợp lệ, bởi vì, nếu bạn đi vào biểu đồ, bạn không nhận được tỷ lệ lỗi 5% type1 dự kiến ​​mà người ta có thể mong đợi cho một bài kiểm tra thống kê.

Câu trả lời:


8

Đây là một mô phỏng Monte Carlo, mặc dù tôi nghi ngờ nó đang làm những gì bạn muốn, và thực sự không có ích gì trong thực tế. Những gì bạn đang so sánh là 10000 nghiên cứu mẫu đơn lẻ và xác định có bao nhiêu trong số các giá trị quan sát riêng lẻ này trung bình cao hơn. Vì vậy, có lẽ tốt hơn để khái niệm mã của bạn thành mã kém hiệu quả hơn sau đây:

runs <- 10000
result <- logical(runs)

for(i in 1:runs){
  a <- rnorm(1, mean = 0) 
  b <- rnorm(1, mean = 0)
  result[i] <- a > b
} 
mc.p.value <- mean(result)

Đoạn mã trên, khi các phân phối bằng nhau, sẽ cho thấy rằng cao hơn 50% thời gian, nhưng loại kết quả này về cơ bản là vô dụng trong thực tế vì bạn chỉ có và suy luận thống kê không được áp dụng ( tức là, không có phương sai trong mỗi nhóm có sẵn để định lượng độ không đảm bảo lấy mẫu).abN=2

Những gì bạn đang thiếu là so sánh hai thống kê tóm tắt quan tâm để xác định các thuộc tính lấy mẫu của chúng, thường là chủ đề suy luận thống kê và yêu cầu ít nhất một số điểm dữ liệu tối thiểu để định lượng một số dạng không chắc chắn lấy mẫu.

Vì thế, đây thường là một thiết lập test độc lập tiêu chuẩn . Vì vậy, bạn có thể so sánh một số thứ, chẳng hạn như mức độ thường xuyên của nhóm thứ nhất cao hơn nhóm thứ hai, tần suất -test cho kết quả (hoặc tương tự, tỷ lệ thường xuyên hơn hơn cắt bỏ), và như vậy.ttp<α|t|

Ví dụ: Nếu cho mỗi nhóm và phân phối bằng nhau trong dân số thìn= =20

runs <- 10000
n <- 20
alpha <- .05
result.p <- result.mean <- numeric(runs)

for(i in 1:runs){
  a <- rnorm(n, mean = 0) 
  b <- rnorm(n, mean = 0)
  result.mean[i] <- mean(a) > mean(b)
  result.p[i] <- t.test(a, b)$p.value
} 
mc.p.value <- mean(result.p < alpha)
mc.a_gt_b.value <- mean(result.mean)

Chơi xung quanh với các tham số khác, chẳng hạn như thay đổi nhóm đầu tiên thành 1, sẽ thay đổi bản chất của mô phỏng (thay đổi từ mô phỏng lỗi Loại I, như bây giờ, sang nghiên cứu công suấ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.