R - 이진 분포: 초보자 가이드
안녕하세요, 미래의 R 프로그래머 여러분! 오늘 우리는 R에서 이진 분포의 fascineting 세상으로 뛰어들어 볼 거예요. 걱정하지 마세요, 이전에 코드를 작성해 본 적이 없어도 괜찮아요 - 이 여정에서 여러분의 친절한 안내자가 되겠습니다. 이 튜토리얼의 끝을 맺을 때, 여러분은 이진 분포를 마스터처럼 다룰 수 있을 거예요!
이진 분포란 무엇인가요?
코드로 뛰어들기 전에, 이진 분포가 무엇인지 이해해 보겠습니다. 동전을 10번 뒤집는다고 상상해 보세요. 이진 분포는 특정 수의 머리를 얻는 확률을 계산하는 데 도움을 줍니다. 이것은 고정된 수의 독립적인 시험에서 성공의 확률을 계산하는 것입니다.
이제 R에서 이진 분포를 다루기 위한 네 가지 주요 함수를 탐구해 보겠습니다.
이진 분포의 멋진 네 가지
R은 우리에게 이진 분포를 다루기 위한 네 가지 강력한 함수를 제공합니다. 이제 그들을 만나보겠습니다:
함수 | 목적 |
---|---|
dbinom() | 확률 밀도 계산 |
pbinom() | 누적 확률 계산 |
qbinom() | 분위수 계산 |
rbinom() | 난수 생성 |
이제 이들 중 하나씩 자세히 탐구해 보겠습니다.
dbinom(): 확률 마에스트로
dbinom()는 무엇을 하나요?
dbinom()
함수는 정확히 k 개의 성공을 n 회 시험에서 얻는 확률을 계산합니다. 이는 "동전을 5번 뒤집어서 정확히 3번 머리를 얻는 확률은 얼마인가요?"하는 질문과 같습니다.
문법과 매개변수
dbinom(x, size, prob)
- x: 우리가 관심을 가진 성공의 수
- size: 시험의 수
- prob: 각 시험에서 성공의 확률
예제: 동전 뒤집기
동전을 5번 뒤집어서 정확히 3번 머리를 얻는 확률을 계산해 보겠습니다:
probability <- dbinom(3, size = 5, prob = 0.5)
print(probability)
이 코드를 실행하면 다음과 같은 결과를 볼 수 있습니다:
[1] 0.3125
이는 5번 뒤집어서 정확히 3번 머리를 얻는 확률이 31.25%임을 의미합니다.
pbinom(): 누적 확률 계산기
pbinom()는 무엇을 하나요?
pbinom()
함수는 누적 확률 - n 회 시험에서 k 개 이하의 성공을 얻는 확률을 계산합니다. 이는 "동전을 5번 뒤집어서 3개 이하의 머리를 얻는 확률은 얼마인가요?"하는 질문과 같습니다.
문법과 매개변수
pbinom(q, size, prob, lower.tail = TRUE)
- q: 우리가 관심을 가진 성공의 수
- size: 시험의 수
- prob: 각 시험에서 성공의 확률
- lower.tail: TRUE이면 P(X ≤ x)를 계산, FALSE이면 P(X > x)를 계산
예제: 시험 점수
10개의 문항으로 구성된 복수 선택지 시험에서 추측으로 6개 이하의 문항을 맞출 확률은 얼마인가요?
probability <- pbinom(6, size = 10, prob = 0.25)
print(probability)
이 코드를 실행하면 다음과 같은 결과를 볼 수 있습니다:
[1] 0.9803073
이는 추측으로 6개 이하의 문항을 맞출 확률이 98.03%임을 의미합니다.
qbinom(): 분위수 탐구
qbinom()는 무엇을 하나요?
qbinom()
함수는 pbinom()
의 반대입니다. 주어진 누적 확률에 해당하는 최소 성공 수를 찾습니다.
문법과 매개변수
qbinom(p, size, prob, lower.tail = TRUE)
- p: 누적 확률
- size: 시험의 수
- prob: 각 시험에서 성공의 확률
- lower.tail: TRUE이면 P(X ≤ x)를 사용, FALSE이면 P(X > x)를 사용
예제: 품질 관리
공장에서 전구를 생산합니다. 그들은 95%의 품질 기준을 유지하기 위해 배치당 최대 몇 개의 불량 전구를 가질 수 있는지 알고 싶습니다.
max_defects <- qbinom(0.05, size = 100, prob = 0.03, lower.tail = FALSE)
print(max_defects)
이 코드는 다음과 같은 결과를 출력합니다:
[1] 6
이는 그들이 95%의 품질 기준을 유지하기 위해 배치당 최대 6개의 불량 전구를 가질 수 있음을 의미합니다.
rbinom(): 난수 생성기
rbinom()는 무엇을 하나요?
rbinom()
함수는 이진 분포에서 난수를 생성합니다. 실제 시험을 시뮬레이션하는 것과 같습니다!
문법과 매개변수
rbinom(n, size, prob)
- n: 생성할 난수의 수
- size: 시험의 수
- prob: 각 시험에서 성공의 확률
예제: 동전 뒤집기 시뮬레이션
동전을 10번 뒤집어서, 이를 5번 반복하는 시뮬레이션을 해 보겠습니다:
simulations <- rbinom(5, size = 10, prob = 0.5)
print(simulations)
이 코드의 출력은 다음과 같을 수 있습니다:
[1] 4 6 5 3 7
각 숫자는 10번 뒤집은 동전에서 머리의 수를 나타내며, 각 시뮬레이션마다 다릅니다!
모든 것을 통합해 보자
이제 각 함수를 탐구한 만큼, 실제 시나리오에서 사용해 보겠습니다. 예를 들어, 날씨 예측가로서 일주일 동안 비가 오는 날을 예측해 보겠습니다.
# 일주일 동안 정확히 3일 비가 오는 확률
exactly_three <- dbinom(3, size = 7, prob = 0.3)
# 일주일 동안 3일 이하 비가 오는 확률
three_or_fewer <- pbinom(3, size = 7, prob = 0.3)
# 80% 확률로 비가 오는 일수
days_with_80_percent <- qbinom(0.8, size = 7, prob = 0.3)
# 10주 동안의 비가 오는 날 시뮬레이션
rain_simulations <- rbinom(10, size = 7, prob = 0.3)
print(paste("정확히 3일 비가 오는 확률:", exactly_three))
print(paste("3일 이하 비가 오는 확률:", three_or_fewer))
print(paste("80% 확률로 비가 오는 일수:", days_with_80_percent))
print("10주 동안의 비가 오는 날 시뮬레이션:")
print(rain_simulations)
이 종합 예제는 이 함수들이 어떻게 함께 작용하여 비가 오는 날 패턴을 분석하고 예측하는지 보여줍니다.
결론
축하합니다! 이제 R에서 이진 분포의 세계로 첫 걸음을 내디뎠습니다. 연습이 완벽을 만듭니다. 이 예제에서 숫자를 바꿔보고 어떤 일이 일어나는지 확인해 보세요. 곧 경험 많은 데이터 과학자처럼 이 함수들을 사용할 수 있을 거예요!
행복하게 코딩하시고, 확률이 여러분에게 항상 유리하길 바랍니다!
Credits: Image by storyset