[R] 정규분포 (dnorm, pnorm, qnorm) / plot, polygon

 

 

 

# 정규 분포 그리기

✔︎ x <- seq(최소값, 최대값, length=빈도수)

     y <- dnorm(x, mean=평균, sd=표준편차)

     plot(x, y, type="l", col="원하는 색") 

* plot에서 type을 선(line)으로 지정안하면 작은 동그라미들로

 

✔︎ polygon(c(최소값, x, 최대값), c(0,y,0), col="원하는 색")

   : 다분면 구역 그리기

 

✔︎ dnorm(x, mean=평균,sd=표준편차) : x축으로 분포 그림

✔︎ pnorm(a, mean=평균, sd=표준편차) : a값까지의 %, 넓이

✔︎ qnorm(b, mean=평균, sd=표준편차): b%에 해당되는 x값

✔︎ rnorm(~): 난수 발생

## normal dist. mean=80, sd=10
x <- seq(40,120,length=500)
y <- dnorm(x, mean=80, sd=10)
plot(x,y, type="l", col="blue")
 #결과는 아래 이미지

## probability between 65~75
# 구역 그려보기
x2 <- seq(65, 75, length=200)
y2 <- dnorm(x2, mean=80, sd=10)
polygon(c(65,x2,75), c(0,y2,0), col="light grey")
 #결과는 아래 이미지

> pnorm(75, mean=80, sd=10) - pnorm(65,mean=80, sd=10)
[1] 0.2417303

## probability over 92
> pnorm(92, mean=80, sd=10, lower.tail = FALSE)
[1] 0.1150697

> 1- pnorm(92,mean=80, sd=10)
[1] 0.1150697

## cutoff that seperates the bottom 30%/30th percentile
> qnorm(0.3, mean=80, sd=10)
[1] 74.75599

## cutoff that contain the middle 60%
# 가운데 60% 지점 찾기=상하위 각 20% 지점 찾기
> qnorm(0.2, mean=80, sd=10)
[1] 71.58379
> qnorm(0.8, mean=80, sd=10)
[1] 88.41621

 

파란 선: 정규분포(mean=80, sd=10) / 회색: probability between 65~75