R - 이진 분포: 초보자 가이드

안녕하세요, 미래의 R 프로그래머 여러분! 오늘 우리는 R에서 이진 분포의 fascineting 세상으로 뛰어들어 볼 거예요. 걱정하지 마세요, 이전에 코드를 작성해 본 적이 없어도 괜찮아요 - 이 여정에서 여러분의 친절한 안내자가 되겠습니다. 이 튜토리얼의 끝을 맺을 때, 여러분은 이진 분포를 마스터처럼 다룰 수 있을 거예요!

R - Binomial Distribution

이진 분포란 무엇인가요?

코드로 뛰어들기 전에, 이진 분포가 무엇인지 이해해 보겠습니다. 동전을 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