티스토리 뷰
#. 이항분포 in R
dbinom(x = 이산형 확률변수, size = 수행횟수, prob = 성공확률)
# 동전을 10회 반복하여 던질 때, 앞 면이 나오는 사건, 각 확률변수가 취하는 분포 확인
n <- 10
p <- 0.5
> choose(10,0) * (0.5)^0 * (0.5)^10 # P(X=0) 10C0 x (1/2)0 x (1/2)10
[1] 0.0009765625 # 성공 횟수(10회 중 0번 성공) x 성공 확률 x 실패 확률
> choose(10,1) * (0.5)^1 * (0.5)^9 # P(X=1)
[1] 0.009765625 # 1번 성공할 경우의 수 {앞뒤뒤뒤뒤뒤뒤뒤뒤뒤}, {뒤앞뒤뒤뒤뒤뒤뒤뒤뒤}, {뒤뒤앞뒤뒤뒤뒤뒤뒤뒤}, ..
> choose(10,2) * (0.5)^2 * (0.5)^8 # P(X=2)
[1] 0.04394531
...
> choose(10,10) * (0.5)^10 * (0.5)^0 # P(X=10)
[1] 0.0009765625
# 이항분포의 확률밀도함수를 사용한 확률 계산
> dbinom(4, size = 10, prob = 0.5) # 10회 중 4번 성공할 확률
[1] 0.2050781
> dbinom(0:10, size = 10, prob = 0.5) # 0~10번 까지의 성공 확률
[1] 0.0009765625 0.0097656250 0.0439453125 0.1171875000 0.2050781250 0.2460937500
[7] 0.2050781250 0.1171875000 0.0439453125 0.0097656250 0.0009765625
# 이항분포의 시각화
> b1 <- dbinom(0:10, size = 10, prob = 0.5)
> names(b1) <- 0:10
> barplot(b1, ylim = c(0,0.3), xlab = '확률변수(X)', ylab = '성공확률(P(X=x))') # 확률 질량함수
# n, p 값의 변화에 따른 이항분표 비교
# n의 변화에 따른 이항분표 비교
> p1 <- dbinom(0:30, 10, 0.3)
> p2 <- dbinom(0:30, 20, 0.3)
> p3 <- dbinom(0:30, 30, 0.3)
> p4 <- dbinom(0:30, 40, 0.3)
> p5 <- dbinom(0:30, 50, 0.3)
> plot(p1, type = 'l', col = 1, ylim = c(0,0.3),
xlab='성공횟수(X)', ylab='확률(P(X=x))')
> lines(p2, type = 'l', col = 2)
> lines(p3, type = 'l', col = 3)
> lines(p4, type = 'l', col = 4)
> lines(p5, type = 'l', col = 5)
> legend(25,0.4, c('n=10','n=20','n=30','n=40','n=50'),
cex = 1, pch = 1, col = 1:5, lty = 1)
# 이항분포에서 반복횟수가 커질수록 대칭형(종모형)에 가까워짐 -> 정규분포
# p의 변화에 따른 이항분표 비교
> p1 <- dbinom(0:10, 10, 0.1)
> p2 <- dbinom(0:10, 10, 0.3)
> p3 <- dbinom(0:10, 10, 0.5)
> p4 <- dbinom(0:10, 10, 0.7)
> p5 <- dbinom(0:10, 10, 0.9)
> plot(p1, type = 'l', col = 1, ylim = c(0,0.4),
xlab='성공횟수(X)', ylab='확률(P(X=x))')
> lines(p2, type = 'l', col = 2)
> lines(p3, type = 'l', col = 3)
> lines(p4, type = 'l', col = 4)
> lines(p5, type = 'l', col = 5)
> legend(5,0.4, c('p=0.1','p=0.3','p=0.5','p=0.7','p=0.9'),
cex = 1, pch = 1, col = 1:5, lty = 1)
#. 정규분포 in R
dnorm(x=연속형 확률변수 , mean = 평균, sd = 표준편차)
# 정규분포 그리기
> x1 <- seq(-3, 3, 0.01)
> y1 <- dnorm(x1, 0, 1) # 평균 0 표준편차 1
> plot(x1, y1, type = 'l', col = 'red', ylim = c(0,0.4), ann = F, axes = F)
> abline(h=0)
> abline(v=0, lty = 2)
> axis(1, c(-3:3))
> axis(2, seq(0,0.4,0.1))
#. 확률분포 함수
각 함수의 차이점을 이해하는게 중요합니다.
1. d 함수
확률변수(X)의 분포
- 확률질량함수 또는 확률밀도함수 제공
- 확률변수(X)가 x일 때(X=x)의 매칭되는 y값(확률)을 제공
- ex) dbinom(), dnorm(), dt ...
### 1. n=10, p=0.1 인 이항분포 출력
# p(X=x) # 확률변수(X), 대응값(x)
> dbinom(0, 10, 0.1) # P(X=0)
[1] 0.3486784
> dbinom(1, 10, 0.1) # P(X=1)
[1] 0.3874205
> dbinom(2, 10, 0.1) # P(X=2)
[1] 0.1937102
...
> p1 <- dbinom(0:10, 10, 0.1) # P(X=x), 0 <= x <= 10
> plot(0:10, p1, type = 'l') # n=10, p=0.1 일 때 이항분포
2. p 함수
특정 확률변수(X) 이하일 경우 분포
- P(X<=x) 값 제공
- ex) pbinom(), pnorm(), pt ...
### 2. 위의 이항분포에서 성공횟수가 2회 이하일 확률(P(X<=2))
# P(X<=2) = P(X=0) + P(X=1) + P(X=2)
> dbinom(0, 10, 0.1) + dbinom(1, 10, 0.1) + dbinom(2, 10, 0.1)
[1] 0.9298092
> pbinom(2, 10, 0.1) # 성공횟수가 2회 이하 확률의 합
[1] 0.9298092
> plot(0:10, p1, type = 'l', ylim = c(0,0.5))
> abline(v=2) # 수직선
> abline(h=0) # 수평선
# arrows(x_Start, y_start, x_end, y_end, length) : 화살표 그리기 => start, end : 좌표, length : 화살표 크기
> arrows(2, 0.45, 1.5, 0.45, length = 0.05)
# text(x,y,text) : 그래프 위 원하는 위치에 글자 출력
> text(0.8, 0.45, "P(X<=2)")
# polygon(vector_x, vector_y, col) : 주어진 점을 채우기
> f <- function(x) {
return(dbinom(x, 10, 0.1))
}
> polygon(c(0,0,1,2,2),
c(0,f(0), f(1), f(2), 0),
col = 'red')
3. q 함수
성공확률(p)에 해당하는 확률변수(X)
- P(X<=x) = p 를 갖는 x값 출력
- 이항분포에서 80%이하의 확률을 갖는 확률변수(X=성공횟수)는 몇 일까?
- 상위 n%의 확률변수(X) 구하기
- 가설 기각에 주로 사용
- ex) qbinom(), qnorm(), qt ...
### 4. P(X<=a) = p 인 값 찾기 (구간에 해당하는 값 찾기)
> qbinom(0.8, 10, 0.1) # 80%의 확률을 갖는 확률변수(X) = 2
[1] 2 # 확률변수(X)가 연속형이 아니므로 정확한 값을 얻긴 어려움
# P(X<=a) = 0.8을 만족하는 임계값(a) 시각화
> par(mar=c(5,3,1,1))
> plot(0:10, p1, type = 'l', ylim = c(-0.05, 0.5), ann = F, axes = F)
> axis(2, ylim = c(-0.05, 0.5))
> abline(h=0) # 수평선
> polygon(c(0,0,1,2,2),
c(0,f(0), f(1), f(2), 0),
col = 'red')
> text(1, 0.2, '80%')
> arrows(2, -0.01, 2, 0, length = 0.05)
> text(2, -0.03, '?', cex = 1)
'Data > Statistics' 카테고리의 다른 글
[Statistics/R] 모집단 추론, 추정 (0) | 2019.01.31 |
---|---|
[Statistics] 표준 정규 분포 (0) | 2019.01.31 |
[Statistics/R] 중심극한정리(표본과 모집단) (0) | 2019.01.30 |
[Statistics] 모집단과 표본 (0) | 2019.01.25 |
[Statistics] 확률 기초 용어 정리(확률분포, 이항분포, 정규분포) (2) | 2019.01.24 |