통계 시뮬레이션 설명


10

저는 통계학자가 아닙니다. 따라서 실수가 있으면 내 실수를 참아주십시오.

시뮬레이션이 어떻게 수행되는지 간단한 방법으로 설명해 주시겠습니까? 정규 분포에서 임의의 샘플을 골라 시뮬레이션에 사용한다는 것을 알고 있습니다. 그러나 명확하게 이해하지 마십시오.


11
무엇을 시뮬레이션?! :-)
chl

정확히 nitpicking하지만 때로는 질문에 대한 망설임이 실망 스럽습니다.
amit

1
@phaedrus 이것은 나의 의도에 대한 주석입니까? 그렇다면 위의 질문에서 이해 한 내용을 설명해 주시겠습니까?
chl

답변:


27

통계에서 시뮬레이션은 이론적 배경이 부족한 경우 분석법의 성능을 평가하는 데 사용됩니다. 시뮬레이션을 통해 통계학 자는 진실을 알고 제어합니다 .

시뮬레이션은 여러 상황에서 유리하게 사용됩니다. 여기에는 표본 분포의 경험적 추정 제공, 통계 절차에서 가정의 잘못된 사양 연구, 가설 검정의 검정력 결정 등이 포함됩니다.

시뮬레이션 연구는 많은 엄격함을 가지고 설계되어야합니다. 버튼 등. (2006)은 그들의 논문에서 ' 의료 통계 시뮬레이션 설계의 설계 '에서 아주 좋은 개요를 주었다 . 다양한 상황에서 수행 된 시뮬레이션 연구는 참고 문헌에서 찾을 수 있습니다.

간단한 예시 예 선형 모형을 고려하십시오

y=μ+βx+ϵ

여기서 는 이진 공변량 ( 또는 )이고 입니다. R에서 시뮬레이션을 사용하여x = 0 x = 1 ϵ N ( 0 , σ 2 )xx=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
> #------------------------------

참고 : 위에 언급 된 논문 의 편집자에게 편지가 있습니다.


9

우선, 통계 및 주변 분야에서 훨씬 더 다양한 유형의 시뮬레이션이 있습니다. "시뮬레이션"을 말하는 것만으로는 "모델"을 말하는 것만큼이나 유용합니다.

나머지 질문을 바탕으로 Monte Carlo 시뮬레이션을 의미한다고 생각하지만 조금 모호합니다. 기본적으로, 무슨 일이 반복에서 샘플을 그릴 것입니다 , 속성 알려져과 인공 인구에 대한 몇 가지 통계 분석을하기 위해 (정상 필요는 없다) 분포하지만 무작위로.

이것의 목적은 두 가지 범주로 분류되는 경향이 있습니다.

내 방법으로 X를 처리 할 수 ​​있습니까? : 본질적으로, 알려진 "올바른"답변으로 일련의 많은 무작위 모집단을 시뮬레이션하여 새로운 기술이 올바른 답변을 제공하는지 확인합니다. 기본적인 예로, 두 변수 X와 Y 사이의 상관 관계를 측정하는 새로운 방법이라고 생각하는 것을 개발했다고 가정 해 봅시다. Y 값이 X 값에 의존하는 두 변수를 시뮬레이트합니다. 임의의 노이즈. 예를 들어 Y = 0.25x + 노이즈입니다. 그런 다음 임의의 X 값, 0.25x + 임의의 숫자, 수천 또는 아마도 수천 번인 Y 값을 가진 모집단을 만든 다음, 평균적으로 새로운 기술이 Y = 0.25x임을 올바르게 보여줍니다.

어떻게됩니까? 기존 연구에 대한 민감도 분석으로 시뮬레이션을 수행 할 수 있습니다. 예를 들어 코호트 연구를 실시했지만 노출 측정이 좋지 않다는 것을 알고 있습니다. 내 피험자의 30 %가 노출되지 않아야 할 때 노출 된 것으로 잘못 분류되고 내 피험자의 10 %가 노출되지 않아야 할 때 노출되지 않은 것으로 분류됩니다. 문제는 더 나은 테스트가 없기 때문에 어느 것이 어느 것인지 모릅니다.

저는 인구를 모아서 노출 된 각 피험자에게 노출되지 않은 상태로 전환 할 확률을 30 %, 노출되지 않은 각 피험자는 노출로 전환 할 확률을 10 %로 지정했습니다. 그런 다음 수천 명의 새로운 인구를 만들어 무작위로 어떤 주제를 바꾸고 내 분석을 다시 실행합니다. 그 결과의 범위는 내가 모든 사람을 올바르게 분류 할 수 있다면 연구 결과가 얼마나 변할 수 있는지에 대한 좋은 평가를 줄 것입니다.

물론, 얼마만큼 파고 싶은지에 따라 더 큰 복잡성, 뉘앙스 및 시뮬레이션 유틸리티가 있습니다.


1. 답에서 설명했던 것은 Monte-Carlo 시뮬레이션입니까? 2. 통계에 사용되는 다른 종류의 시뮬레이션 (Monte-Carlo 이외)이 있습니까?
vasili111

5

또한 시뮬레이션은 비선형 입력이있는 이론적 조건에서 실제 프로세스를 보는 데 사용할 수 있습니다. 예를 들어, 제조 회사는 추가 생산 라인을 추가하는 것이 비용 효율적인지 여부에 관심이있을 수 있고, 콜 센터는 오퍼레이터 주위에 통화를 라우팅하여 발신자에 대한 대기 시간 및 발목 속도를 줄이는 방법에 관심이있을 수 있습니다. 직원을 로스팅하고 환자를 이송하는 최선의 방법에 관심이 있거나 운송 포트가 컨테이너 작업을 배치하는 가장 효율적인 방법에 관심이있을 수 있습니다. 불연속 이벤트 시뮬레이션을 사용하여 이러한 프로세스를 모델링 할 수 있으며 "what if"유형 질문에 응답하도록 매개 변수를 조정할 수 있습니다.

시뮬레이션의 또 다른 관심 분야는 복잡한 시스템입니다. 특히 사회 과학에서 에이전트 기반 시뮬레이션은 더 많은 지지자를 모으기 시작하는 흥미로운 유형의 시뮬레이션입니다. 에이전트 기반 시뮬레이션에서 에이전트 (예 : 개인)는 특성과 같은 속성이 부여되고 서로 상호 작용하므로 혼돈 시스템을 모델링합니다. 에이전트 기반 시뮬레이션은 주변 에이전트가 서로에 미치는 영향을 살펴보고 거리에 영향을 줄 수 있습니다. 에이전트 기반 시뮬레이션을 직접 수행하지는 않았지만 시간이 지남에 따라 선사 시대 커뮤니티에서 인구 규모의 지리적 분포와 같은 시스템을 모델링하는 데 사용되는 것을 보았습니다.


몇 가지 예를 들어 주시겠습니까?
vasili111

몇 가지 예가 무엇을 의미하는지 잘 모르겠습니다. 첫 단락에서 몇 가지 예를 들었습니다.
Michelle

2

시뮬레이션 은 의사 난수 생성기 (예 : rnorm과 같은 일반 생성기)를 사용하여 통계 샘플 에 내재 된 임의성을 재현하고 의사 난수 생성의 재현성을 사용하여 통계 절차의 분포를 유추합니다 원래 샘플에 적용됩니다.x1,,xn

시뮬레이션 기반 통계 기법의 특히 중요한 사례는 Efron (1979)에 의해 소개 된 부트 스트랩 과 연결되어 있습니다. 샘플 주어지면 경험적 cdf 는 수렴 (에 진정한 CDF에) 근사 . 따라서 에 따른 수량 ( 예 : 기대치, 또는 통계량 분포 은 아래의 해당 수량에 의해 근사 될 수 있습니다.x1,,xn

F^n(x)=1ni=1nIxix
nFFEF[h(X)]ψ(X1,,Xn)F^n. 특별한 경우를 제외하고는 시뮬레이션으로 만 평가할 수 있습니다. 예를 들어, 의 추정량은 부트 스트랩으로 수행 할 수 있습니다 : 크기 을 하고 차이 계산 바이어스의 시뮬레이션 된 부트 스트랩 평가를 생성합니다.
σ^n2(x1,,xn)=1n+1i=1n(xix¯)2
σ2=varF(X)n x1,,xnF^n
β=σ^n2(x1,,xn)σ^n2(x1,,xn)

3
부트 스트랩 방법 뒤에 두 가지 필수 개념을 분리하는 것이 유용하다고 생각합니다. 부트 스트랩 자체는 다른 (희망적으로 더 나은) 추정기를 생성하기 위해 추정기를 수정하는 방법으로 생각되어야합니다. 이론적으로, 정확하게, 때로는 닫힌 형태로 계산 될 수 있습니다. 시뮬레이션은 부트 스트랩의 고유 한 부분 이 아닙니다 ! 그러나 많은 경우 시뮬레이션은 부트 스트랩 추정기 를 근사화 하는 자연스럽고 쉬운 방법 입니다. Hall, The Bootstrap 및 Edgeworth Expansion
whuber

1
편집과 관련하여 : 이것은 실제로 부트 스트랩 바이어스 추정값을 닫힌 형식으로 정확하게 계산할 수있는 좋은 예입니다.E[β | sample]=[2/(n+1)]σ^n2(x1,,xn).
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.