2016-06-25 8 views
0

나는이 시뮬레이션에서 "성장"매개 변수는 다른 평균과 sd를 가진 두 개의 정규 분포에서 확률이 p으로 샘플링됩니다.샘플이 R로 그려지는 분포를 2 가지 중에서 어떻게 알 수 있습니까?

R_0 <- sample(c(sample(rnorm(5000, mean = 3.5, sd = 0.7), 1),sample(rnorm(5000, mean = 1.5, sd = 0.3), 1)),1, prob = c(1 - p, p)) 

개의 분포가 양호한 환경 스트레스 (편의상 B와 S)에 대응한다 : I가 그렇게 사용하고이 코드는 다음과 같다. 문제는 나중에 코드에서 고정 된 수량에 따라 증가율 R_0을 수정해야한다는 것입니다. 이 양은 R_0 계수가 B 또는 S 환경에서 샘플링되었는지 여부에 따라 다릅니다. R_0이 샘플링 된 두 분포 중 어느 것을 알 수있는 방법이 있습니까?

내가 사용할 수 있고 else 문이 있지만 초기화하는 방법을 잘 모르겠다.

미리 감사드립니다.

답변

1

먼저 첫 번째 샘플링 결과 저장 :

set.seed(123) 
p <- .5 
my_sample <- c(sample(rnorm(5000, mean = 3.5, sd = 0.7), 1),sample(rnorm(5000, mean = 1.5, sd = 0.3), 1)) 
R_0 <- sample(my_sample,1, prob = c(1 - p, p)) 

이 그럼 당신은 확인할 수 있습니다 (샘플에서 나온 첫 번째/A 또는 초/B 분배)되는 : 작은 있습니다

my_sample == R_0 
[1] FALSE TRUE 

두 샘플 값이 동일 할 확률. 따라서 최종 샘플의 출처를 알 수있는 깃발을 사용할 수도 있습니다.

p <- .5 
set.seed(123) 
sample(c(paste("A", sample(rnorm(5000, mean = 3.5, sd = 0.7), 1), sep = " "), 
    paste("B", sample(rnorm(5000, mean = 1.5, sd = 0.3), 1), sep = " ")),1, prob = c(1 - p, p)) 
[1] "B 1.45624041440113" 
+0

안녕 DatamineR, 제안 주셔서 감사합니다. 제공 한 코드가 제대로 작동하는 것 같습니다. 시뮬레이션이 원활하게 진행됩니다. – Cinghio

2

시도해보십시오. 나는 정확히 형태로 당신이 원하는되지 않은 출력을 느낌,하지만 더 컨텍스트없이 나는 귀하의 경우에 가장 적합한 것이 무엇인지 알 수 없다 : 당신이 출력 작업을 만드는 방법을 파악하지 못할 경우

set.seed(9087) 

R_0 <- function(p){ 
    pick<- sample(c("B","S"), 1, prob = c(p, 1-p)) 
    if(pick == "B") samp<-sample(rnorm(5000, mean = 3.5, sd = 0.7), 1) 
    if(pick == "S") samp<-sample(rnorm(5000, mean = 1.5, sd = 0.3), 1) 
    return(paste("Value of", samp, "drawn from", pick, sep = " ")) 
} 

R_0(.5) 

[1] "Value of 5.31171245776231 drawn from B" 

너의 상황, 알려줘.

+0

안녕하세요, Bryan에게 제안 해 주셔서 감사합니다. 나는 DatamineR 접근법 (아래 참조)이 내가해야 할 일에 대해 더 잘 작동 할 것이라고 생각한다. – Cinghio