일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 다익스트라
- binary search
- Brute Force
- Hash
- Dijkstra
- Stored Procedure
- Trie
- Two Points
- 그래프
- DP
- MYSQL
- 스토어드 프로시저
- two pointer
- 이진탐색
- union find
- String
- SQL
- Today
- Total
codingfarm
R-정규 분포 함수 본문
<참고자료>
https://hsm-edu.tistory.com/263?category=750249
난수함수(rnorm)
특정 평균값과 분산을 만족하는 임의의 변수값을 생성해 준다.
디폴트는 평균0과 표준편차1이다.
>a=rnorm(1000)
|
cs |
배열의 크기가 충분히 커야 의도한 데이터분포를 확보 할 수 있으며
mean(a)와 var(a)로 평균, 표준편차를 확인하면 각각 0과 1에 가까운 값이 얻어짐을 확인 할 수 있다.
평균이 100, 표준편차가 5인 데이터 10개를 확보하기 위해선
>a=rnorm(10,mean=100,sd=5)
|
cs |
확률밀도함수(dnorm)
확률 밀도 함수의 함수값을 구해준다.
확률밀도함수 이므로 값자체가 확률을 의미하진 않는다.
> dnorm(0)
[1] 0.3989423
> dnorm(1)
[1] 0.2419707
> dnorm(2)
[1] 0.05399097
> dnorm(-1)
[1] 0.2419707
> dnorm(-2)
[1] 0.05399097
|
cs |
평균이 0, 표준편차가 1인 확률 밀도 함수에 대해선
0에서 최대값을 가지며, 0에 대해서 좌우대칭, 0에서 멀어질수록 값이 작아짐을 확인 할 수 있다.
평균값이 달라질 경우 그래프가 이동하므로 최대값을 가지는 지점 또한 변한다.
> dnorm(0)
[1] 0.3989423
> dnorm(5, mean=5)
[1] 0.3989423
|
cs |
표준편차가 달라질 경우 그래프의 폭이 변하므로 최대값이 변화함을 확인 할 수 있다.
> dnorm(0)
[1] 0.3989423
> dnorm(0,sd=10)
[1] 0.03989423
> dnorm(0, sd = 0.1)
[1] 3.989423
> dnorm(0, sd = 5)
[1] 0.07978846
dnorm(0, sd = 0.5)
[1] 0.7978846
|
cs |
누적분포함수(pnorm)
확률 밀도 함수의 너비를 구한다
pnorm(1)은 위에서 표시한 부분의 넓이이다.
> pnorm(Inf)
[1] 1
> pnorm(1)
[1] 0.8413447
|
cs |
전체 구간의 넓이는 1이며, 1까지의 범위는 84%임을 알 수 있다.
> pnorm(0)
[1] 0.5
> m=5
> pnorm(m,mean=m)
[1] 0.5
|
cs |
평균치 까지의 넓이는 0.5가 됨을 알 수 있다.
반대편에서의 누적분포를 알고싶으면 아래와 같은
> pnorm(1, lower.tail=FALSE)
[1] 0.1586553
|
cs |
위 그림을 보면 평균치를 기준으로 표준편차 사이의 넓이는 68%가 됨을 알수있다.
그러므로 아래의 코드를 통해 68%의 너비가 나옴을 확인 할 수 있다.
> pnorm(1)-pnorm(-1)
[1] 0.6826895
> m = 5
> s = 0.5
> pnorm(m+s, mean=m,sd=s) - pnorm(m-s,mean=m,sd=s)
[1] 0.6826895
|
cs |
분위수함수
확률을 입력변수 삼아, 해당 확률에 해당하는 변수를 찾아준다.
> pnorm(1)
[1] 0.8413447
> qnorm(0.8413447)
[1] 0.9999998
|
cs |
누적분포함수와의 대응을 통해 값이 정확히 맞아 떨어짐을 확인할 수 있다.