2012-06-29 3 views
1

입수 Y가 = A + B + C는 R은 I는 관계가 확률 분포

I는 평균 및 표준 편차를 갖고, B 및 C 및 I는 Y의 확률 분포를 획득하고자 몬테카를로 시뮬레이션.

이 작업을 수행하는 데 사용할 수있는 기능 또는 패키지가 있습니까?

답변

3

입력 a, b 및 c는 평균 및 표준 편차로 정의 할 수 있으므로 정규 분포라고 가정합니다. 그렇다면 특수 패키지없이이 작업을 매우 빠르게 수행 할 수 있습니다.

mu.a=33 
mu.b=32 
mu.c=13 
sigma.a=22 
sigma.b=22 
sigma.c=222 

n= a.large.number=10^5 
a=rnorm(n,mu.a,sigma.a) 
b=rnorm(n,mu.b,sigma.b) 
c=rnorm(n,mu.c,sigma.c) 
y=a+b+c 
plot(density(y)) 
mean(y) 
sd(y) 

우리가 y, a, bc하고 있습니다 모든 가정에주의해야합니다. y의 평균의 샘플링 분산을 계산하는 것과 같이 좀 더 복잡한 작업을 원한다면. 그런 다음이 절차를 여러 번 수집하여 평균을 구하십시오.

mysimfun=function(n,mu,sigma,stat.you.want='mean') 
    # mu is length 3 and sigma is too. 

{ 
n= a.large.number=10^5 
    a=rnorm(n,mu[1],sigma[1]) 
    b=rnorm(n,mu[2],sigma[2]) 
    c=rnorm(n,mu[3],sigma[3]) 
    y=a+b+c 
    plot(density(y)) 


return(ifelse(stat.you.want=='mean',mean(y),sd(y)) 
} 


mu=c(mu.a,my.b,mu.c) 
sigma=c(sigma.a,sigma.b,sigma.c) 
mi=rep(NA,100) 

그런 다음 일종의 루프로 실행하십시오.

for(i in 1:100) {mi[i]=mysimfun(10,mu,sigma,stat.you.want='mean') } 

par(mfrow=c(2,1) 
hist(mi) 
plot(density(mi)) 

mean(mi) 
sd(mi) 
+0

정말 감사합니다 –

2

두 가지 방법이있을 것입니다 : 내가 생각하는 부트 스트랩은 몬테카를로에 의해 의미 할 것입니다 또는 당신은 경험적 분포는 'DISTR'패키지와 그 친구의 distrSim에서 견적을 건설보다는 이론에 더 관심이있는 경우 "와"distrTEst "대단한

require(boot) 
ax <- rnorm(100); bx<-runif(100); cx<- rexp(100) 
dat <- data.frame(ax=ax,bx=bx,cx=cx) 

boot(dat, function(d){ with(d, mean(ax+bx+cx))}, R=1000, sim="parametric") 
boot(dat, function(d){ with(d, sd(ax+bx+cx))}, R=1000, sim="parametric") 
+0

덕분에 매우 흥미도 –

+0

:..... http://www.statoo.com/en/publications/bootstrap_scgn_v131.pdf –

+0

도 : HTTP : //www.statmethods.net/advstats/bootstrapping.html –