1
2
3
4
5
dbinom(3,10,0.1) # 확률질량함수
dbinom(3.3,10,0.1)
Warning message:
In dbinom(3.3, 10, 0.1) : non-integer x = 3.300000
# ↑확률질량함수이기 때문에 연속형일때는 연산불가

cs


d함수 :

x가 특정 값 하나일때만 됨

P(X=x) 확률 계산 : dbinom(x, size, prob)


- 확률질량함수 또는 확률밀도함수 제공
- 확률변수 x가 x일때의 매칭되는 y값(확률) 제공

- ex) dbinom, dnorm, dt ......
       dbinom( ) 함수 : 이항분포의 확률값

p함수 :
P(X<=x) 확률 계산 : pbinom(x, size, prob, lower.tail= TRUE )
P(X>x) 확률 계산 : pbinom(x, size, prob, lower.tail= FALSE)


- P(X<=x) 값 제공 # n회 이하일 때의 확률
- ex) pbinom, pnorm, pt......

pbinom( ) 함수 : 이항분포의 누적확률값

q함수 :
가설검정시 중요한 함수


- P(X<=x) = p를 갖는 x 값 출력
- 이항분포에서 성공횟수가 몇 회 이하일 확률이 50%일까?
- ex) qbinom, qnorm, qt......
       qbinom( ) 함수 : 이항분포의 백분위수



1
2
3
4
5
6
7
8
9
# 이항분포 테스트
# 1. n=10, p=0.1인 이항분포 출력
dbinom(0, 10, 0.1) # P(X=0)
dbinom(1, 10, 0.1) # P(X=1)
dbinom(2, 10, 0.1) # P(X=2)
 
p1 <- dbinom(0:10, 10, 0.1) # P(X=x), 0 <= x <= 10
dev.new()
plot(0:10, p1, type='l')
cs




1
2
3
4
5
6
7
8
9
# 2. 위의 이항분포에서 성공횟수가 2회 이하일 확률(P(x<=2))
# => 0회,1회,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)
pbinom(2,10,0.1) # n회 이하일때의 확률
 
plot(0:10, p1, type='l')
abline(v=2) # 수직선
abline(h=0) # 수평선
cs




1
2
3
4
5
6
7
8
9
10
# (0,0), (0,f(0)), (1,f(1)), (2,f(2)), (2,0)
# 3. polygon(vector_x, vector_y) #주어진 점을 연결(도형생성)
 
f <- function(x) {
  dbinom(x, 10, 0.1)
}
 
polygon(c(0, 0, 1, 2, 2),
        c(0, f(0),f(1), f(2), 0),
        col = 'red')
cs




1
2

# 4. P(X<=a) = p 인 값 찾기
qbinom(0.8, 10, 0.1)
[1] 2
cs


1
2
3
4
5
6
7
8
9
10
11
12
# 5. P(X<=a) = 0.8을 만족하는 임계값(a) 시각화
dev.new()
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.5, 2, 0, length = 0.1) #화살표 그리기
cs



[정규분포]


- 확률변수 x와 그 확률과의 관계가 종모양을 띄는 경우(평균을 중심으로 좌우대칭)
- 이항분포가 정규분포가 될 수도 있음
- 평균과 표준편차로 분포의 모양을 결정
- 확률의 총합이 1


[표준정규분포]


- 평균으로 뺀 값을 표준편차로 나눈 표준화된 값이 가지는 분포 X~N(0,1)
- 해당 확률 변수를 평균으로 나누고 그것의 표준편차로 나눠주는 작업
- 어떤 정규분포든 표준화시키면 평균이 0, 분산이 1
- 모든 정규분포는 표준정규분포로 변환 가능



1
2
3
4
5
6
7
8
9
10
11
# 정규분포 그리기
x1 <- seq(-3,3,0.01)
y1 <- dnorm(x1,0,1)
 
dev.new()
plot(x1, y1, type= 'l', col = 'red', ann = F, axes = F)
abline(h=0)
abline(v=0, lty=2) # lty=2 : 점선
text(0, 0, '0', cex=0.8)
text(-3, 0, '-3', cex=0.8)
text(3, 0, '3', cex=0.8)
cs



'R > 통계' 카테고리의 다른 글

이항분포  (0) 2019.02.07


[ 이항 분포 ]


베르누이 시행 시 성공할 확률이 각 반복마다 동일할때
성공한 횟수(확률변수)가 취할 수 있는 확률분포를 이항분포라 정의함
X ~ B(n,p)



1. 이항분포 test
동전 던지는 시행을 10회 반복, 앞면이 나오는 사건,
각 확률변수가 취하는 분포 확인

n <- 10

p <- 0.5
FFFFFFFFF => 0.5 * 0.5 * 0.5 * ......
P(X=0) = 10C0 * (0.5)^0 * (0.5)^10 = choose(10,0) * (0.5)^0 * (0.5)^10
P(X=1) = 10C1 * (0.5)^1 * (0.5)^9 = choose(10,1) * (0.5)^1 * (0.5)^9
HFFFFFFFFF = (0.5)^1 * (0.5)^9
FHFFFFFFFF =
FFHFFFFFFF
.....

P(X=4) = choose(10,4) * (0.5)^4 * (0.5)^6



1
2
3
4
5
6
7
8
# 이항분포의 확률 밀도함수를 사용한 확률 계산
dbinom(4,size = 10, prob = 0.5)  # 10회중 4번 성공할 확률
b1 <- dbinom(0:10,size = 10, prob = 0.5) 
 
# 이항분포의 시각화
dev.new()
barplot(b1)
plot(b1, type = 'l')
cs




1
2
3
4
5
6
7
8
9
10
11
12
13
# n의 변화에 따른 이항분포 비교
p <- 0.3
x1 <- 0:5
x2 <- 0:10
x3 <- 0:30
 
p1 <- dbinom(x1,5,p)
p2 <- dbinom(x2,10,p)
p3 <- dbinom(x3,30,p)
 
plot(x3, p3, type = 'l', col = 'black', ylim = c(0,0.4))
lines(x2, p2, type = 'l', col = 'blue', ylim = c(0,0.4))
lines(x1, p1, type = 'l', col = 'red', ylim = c(0,0.4))

cs



※ 이항분포는 시행횟수를 크게하면 정규분포에 근사하다.


'R > 통계' 카테고리의 다른 글

정규분포  (0) 2019.02.07

+ Recent posts