Giải thích về mô phỏng thống kê


10

Tôi không phải là một nhà thống kê. Vì vậy, xin vui lòng chịu với sai lầm ngớ ngẩn của tôi nếu có.

Bạn vui lòng giải thích một cách đơn giản cách mô phỏng được thực hiện? Tôi biết rằng nó chọn một số mẫu ngẫu nhiên từ một phân phối bình thường và sử dụng để mô phỏng. Nhưng, đừng hiểu rõ.


11
Mô phỏng cái gì?! :-)
chl

Chính xác là nitpicking, nhưng đôi khi các câu hỏi làm nản lòng người hỏi, và đây là một trường hợp như vậy.
amit

1
@phaedrus Đây có phải là một nhận xét cho ý định của tôi? Nếu vậy, bạn có thể giải thích những gì bạn hiểu từ câu hỏi trên?
chl

Câu trả lời:


27

Trong thống kê, mô phỏng được sử dụng để đánh giá hiệu suất của một phương pháp, điển hình là khi thiếu nền tảng lý thuyết. Với các mô phỏng, nhà thống kê biết và kiểm soát sự thật .

Mô phỏng được sử dụng thuận lợi trong một số tình huống. Điều này bao gồm việc cung cấp ước tính theo kinh nghiệm của các phân phối lấy mẫu, nghiên cứu việc xác định sai các giả định trong quy trình thống kê, xác định sức mạnh trong các thử nghiệm giả thuyết, v.v.

Nghiên cứu mô phỏng nên được thiết kế với nhiều sự nghiêm ngặt. Burton và cộng sự. (2006) đã đưa ra một cái nhìn tổng quan rất hay trong bài báo của họ ' Thiết kế nghiên cứu mô phỏng trong thống kê y học '. Nghiên cứu mô phỏng được thực hiện trong một loạt các tình huống có thể được tìm thấy trong các tài liệu tham khảo.

Ví dụ minh họa đơn giản Xem xét mô hình tuyến tính

y=μ+βx+ϵ

trong đó là hiệp phương sai nhị phân ( hoặc ) và . Sử dụng mô phỏng trong R, hãy để chúng tôi kiểm tra xemxx=0x=1ϵN(0,σ2)

E(β^)=β.
> #------settings------
> n <- 100            #sample size                          
> mu <- 5             #this is unknown in practice                         
> beta <- 2.7         #this is unknown in practice
> sigma <- 0.15       #this is unknown in practice
> #--------------------
> 
> #------set the seed so that this example can be replicated------
> set.seed(937)
> #---------------------------------------------------------------
>
> #------generate 1000 data sets and store betaHat------
> betaHat <- numeric(1000)
> for(i in 1:1000)
+ {
+     #generate the binary covariate --> n Bernoulli trials
+   x <- sample(x=c(0, 1), size=n, replace=TRUE, prob=c(0.5, 0.5))
+     #generate the errors
+   epsilon <- rnorm(n=n, mean=0, sd=sigma)
+     #form the response variable      
+   y <- mu + beta * x + epsilon 
+     #the ith generated data set
+   data_i <- data.frame(y=y, x=x)
+     #fit the model
+   mod <- lm(y~x, data=data_i)
+     #store the estimate of beta
+   betaHat[i] <- as.numeric(coef(mod)[2])     
+ }    
> #-----------------------------------------------------
> 
> #------E(betaHat) = beta?------
> mean(betaHat)
[1] 2.698609
> #------------------------------

Lưu ý : Có một bức thư cho biên tập viên cho bài viết được tham chiếu ở trên.


9

Trước hết, có rất nhiều, rất nhiều loại mô phỏng khác nhau trong thống kê, và thậm chí nhiều hơn trong các lĩnh vực xung quanh. Chỉ nói "Mô phỏng" cũng hữu ích như nói "Mô hình" - nghĩa là không có gì nhiều.

Dựa trên phần còn lại của câu hỏi của bạn, tôi sẽ đoán bạn có nghĩa là mô phỏng Monte Carlo, nhưng thậm chí điều đó hơi mơ hồ. Về cơ bản, những gì xảy ra là bạn liên tục rút mẫu từ một bản phân phối (không cần phải bình thường) để thực hiện một số phân tích thống kê về dân số nhân tạo với các thuộc tính đã biết, nhưng ngẫu nhiên.

Mục đích của việc này có xu hướng rơi vào hai loại:

Phương pháp của tôi có thể xử lý X không? : Về cơ bản, bạn đang mô phỏng một loạt nhiều quần thể ngẫu nhiên với câu trả lời "đúng" đã biết để xem liệu kỹ thuật mới của bạn có trả lời đúng không. Ví dụ cơ bản, giả sử bạn đã phát triển những gì bạn nghĩ là một cách mới để đo lường mối tương quan giữa hai biến, X và Y. Bạn sẽ mô phỏng hai biến trong đó giá trị của Y phụ thuộc vào giá trị của X, cùng với một số tiếng ồn ngẫu nhiên. Ví dụ: Y = 0,25x + nhiễu. Sau đó, bạn sẽ tạo một quần thể với một số giá trị ngẫu nhiên là X, một số giá trị của Y là 0,25x + một số ngẫu nhiên, có thể nhiều nghìn lần, và sau đó cho thấy, trung bình, kỹ thuật mới của bạn tạo ra một số đúng cho thấy Y = 0,25x.

Chuyện gì sẽ xảy ra nếu? Mô phỏng có thể được thực hiện như một phân tích độ nhạy cho một nghiên cứu hiện có. Hãy nói ví dụ tôi đã thực hiện một nghiên cứu đoàn hệ, nhưng tôi biết rằng đo lường phơi nhiễm của tôi không tốt lắm. Nó phân loại không chính xác 30% đối tượng của tôi là bị lộ khi họ không nên và phân loại 10% đối tượng của tôi là không phơi sáng khi họ không nên. Vấn đề là, tôi không có bài kiểm tra tốt hơn, vì vậy tôi không biết đó là bài kiểm tra nào.

Tôi sẽ lấy dân số của mình và cho mỗi đối tượng tiếp xúc có 30% cơ hội chuyển sang không phơi sáng và mỗi đối tượng không phơi sáng có 10% cơ hội chuyển sang tiếp xúc. Sau đó, tôi sẽ tạo ra hàng ngàn quần thể mới, xác định ngẫu nhiên đối tượng nào chuyển đổi và chạy lại phân tích của tôi. Phạm vi của những kết quả đó sẽ cho tôi một ước tính tốt về kết quả học tập của tôi có thể thay đổi bao nhiêu nếu tôi có thể phân loại chính xác mọi người.

Tất nhiên, như mọi khi, độ phức tạp, sắc thái và tiện ích lớn hơn cho mô phỏng, tùy thuộc vào mức độ bạn muốn đào.


1. Vì vậy, những gì bạn giải thích trong câu trả lời của bạn là mô phỏng Monte-Carlo? 2. Có loại mô phỏng nào khác (ngoài Monte-Carlo) được sử dụng trong thống kê không?
vasili111

5

Mô phỏng cũng có thể được sử dụng để xem xét các quy trình thực trong các điều kiện lý thuyết, trong đó các quy trình đó có đầu vào phi tuyến. Ví dụ, một công ty sản xuất có thể quan tâm đến việc thêm một dây chuyền sản xuất bổ sung có hiệu quả về chi phí hay không, một trung tâm cuộc gọi có thể quan tâm đến cách định tuyến các cuộc gọi xung quanh các nhà khai thác để giảm thời gian xếp hàng chờ đợi cho người gọi, bộ phận khẩn cấp có thể quan tâm đến cách tốt nhất để sắp xếp nhân viên và chuyển bệnh nhân, hoặc một cảng vận chuyển có thể quan tâm đến cách hiệu quả nhất để bố trí các hoạt động của container. Mô phỏng sự kiện rời rạc có thể được sử dụng để mô hình hóa các quy trình này và người ta có thể điều chỉnh các tham số để trả lời các câu hỏi loại "what if".

Một lĩnh vực quan tâm khác trong mô phỏng là các hệ thống phức tạp. Đặc biệt trong khoa học xã hội, mô phỏng dựa trên tác nhân là một loại mô phỏng thú vị đang bắt đầu thu thập nhiều người đề xuất hơn. Trong mô phỏng dựa trên tác nhân, các tác nhân (ví dụ như từng người) được cung cấp các thuộc tính như tính cách và tương tác với nhau, do đó mô hình hóa một hệ thống hỗn loạn. Mô phỏng dựa trên tác nhân xem xét ảnh hưởng của các tác nhân xung quanh với nhau và có thể bao gồm hiệu ứng ở khoảng cách xa. Mặc dù tôi chưa thực hiện bất kỳ mô phỏng dựa trên tác nhân nào, tôi đã thấy nó được sử dụng để mô hình hóa các hệ thống như sự lan truyền địa lý của quy mô dân số trong một cộng đồng thời tiền sử theo thời gian.


Bạn có thể vui lòng cung cấp một số ví dụ?
vasili111

Tôi không chắc ý của bạn là gì bởi một số ví dụ. Tôi đã đưa ra một số ví dụ trong đoạn đầu tiên của tôi.
Michelle

2

Mô phỏng tái tạo tính ngẫu nhiên vốn có của mẫu thống kê bằng cách sử dụng trình tạo giả ngẫu nhiên (ví dụ: trình tạo bình thường như rnorm) và sử dụng khả năng tái tạo của thế hệ giả ngẫu nhiên để suy luận về phân phối của thủ tục thống kê áp dụng cho mẫu ban đầu.x1,,xn

Một ví dụ đặc biệt quan trọng của kỹ thuật thống kê dựa trên mô phỏng được liên kết với bootstrap , được giới thiệu bởi Efron (1979). Cho một mẫu , cdf theo kinh nghiệm là một tụ (trong ) xấp xỉ với lũy đúng, . Do đó, bất kỳ số lượng nào tùy thuộc vào , ví dụ: kỳ vọng, hoặc phân phối số liệu thống kê , có thể được xấp xỉ theo số lượng tương ứng theox1,,xn

F^n(x)=1ni=1nIxix
nFFEF[h(X)]ψ(X1,,Xn)F^n. Mà chỉ có thể được đánh giá bằng mô phỏng, trừ trường hợp đặc biệt. Chẳng hạn, xác định độ lệch của như một công cụ ước tính của có thể được thực hiện bằng bootstrap: sao chép các mẫu có kích thước từ và tính toán sự khác biệt Điều này tạo ra một đánh giá bootstrap mô phỏng về độ lệch.
σ^n2(x1,,xn)=1n+1i=1n(xix¯)2
σ2=varF(X)n x1,,xnF^n
β=σ^n2(x1,,xn)σ^n2(x1,,xn)

3
Tôi tin rằng sẽ rất hữu ích khi tách hai khái niệm thiết yếu đằng sau phương thức bootstrapping. Bản thân bootstrap nên được coi là một cách sửa đổi một công cụ ước tính để tạo ra một công cụ ước tính khác (hy vọng tốt hơn). Nó có thể được tính toán trên lý thuyết, chính xác và (đôi khi) ở dạng đóng. Mô phỏng không phải là một phần vốn có của bootstrap! Tuy nhiên, trong nhiều trường hợp mô phỏng là một cách tự nhiên và dễ dàng để xấp xỉ các ước lượng bootstrap. Xem phần giới thiệu và chương 1 trong Hall, The Bootstrap và Edgeworth Expansion.
whuber

1
Liên quan đến chỉnh sửa: đây thực sự là một ví dụ hay về trường hợp ước tính sai lệch bootstrap có thể được tính toán chính xác ở dạng đóng:E[β | sample]=[2/(n+1)]σ^n2(x1,,xn).
whuber
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.