2014-12-20 4 views
0

에서 나는 독립적 인 이벤트에 대한 성공의 확률의 목록을 가지고 :확률 목록으로 이항 확률을 효율적으로 계산하는 방법은 무엇입니까? R

probs <- c(.2,.3,.4) 

나는이 질문에 대한 대답 함수를 작성하려면 :이 독립적 인 사건에서 적어도 X의 성공을 얻기의 가능성은 무엇인가?

현재 나의 접근 방식은 for 루프를 사용하여 다음 코드를 수천 번 실행하는 것입니다. 더 효율적인 방법이 있습니까?

sim_results <- probs - runif(length(probs), 0, 1) 
length(sim_results[sim_results > 0]) 
+0

교육적 이유로 또는 결과를 알고 싶어 했습니까? 확률을 원한다면 정말 평범하기 때문에 ... – Rufflewind

+2

3 개의 독립적 인 베르누이 임의 변수의 기대 값을 찾고 있다면 프로그래밍 문제가 아닙니다. 프로그래머가 아닌 통계 교사가 필요한 것 같습니다. 여기서 누락 된 프로그래밍 문제가 있습니까? – MrFlick

+0

이 질문에 답하는 R 코드를 작성하는 방법을 묻습니다. 아마도 매우 쉽습니다. 그러나 필자가 작성한 코드는 "probs"가 크기 때문에 매우 느립니다. – user2374133

답변

1

한 샷으로 모든 난수를 생성하고 루프를 피하십시오.

# number of random probabilities 
p = 100 
# number of simulations 
N = 1000 
# random probabilities 
probs = runif(p) 
M = matrix(runif(p*N), N, p) 
# outcome 
y = apply(M,1,function(x) sum(probs>x)) 
hist(y) 
관련 문제