z_score
This is an old revision of the document!
평균이 0, 표준편차가 1인 정상분포에서의 개인점수를 말한다.
\begin{equation*} \text{z} = \frac {X - \mu} {\sigma} \end{equation*}
stdscore.rc
rnorm2 <- function(n,mean,sd) {
mean+sd*scale(rnorm(n)) }
set.seed(1)
a <- rnorm2(1000000, 100, 10)
m.a <- mean(a)
sd.a <- sd(a)
hist(a)
abline(v=mean(a), col='red', lwd = 2)
abline(v=c(m.a-sd.a, m.a+sd.a), col='blue', lwd = 2)
abline(v=c(m.a-2*sd.a, m.a+2*sd.a), col='green', lwd = 2)
abline(v=c(m.a-3*sd.a, m.a+3*sd.a), col='black', lwd = 2)
# score 110
pnorm(110, m.a, sd.a)
pnorm(90, m.a, sd.a)
pnorm(110, m.a, sd.a) - pnorm(90, m.a, sd.a)
pnorm(120, m.a, sd.a)
pnorm(80, m.a, sd.a)
pnorm(120, m.a, sd.a) - pnorm(80, m.a, sd.a)
pnorm(m.a+3*sd.a, m.a, sd.a)
pnorm(m.a-3*sd.a, m.a, sd.a)
pnorm(m.a+3*sd.a, m.a, sd.a) -
pnorm(m.a-3*sd.a, m.a, sd.a)
# 110이 평균에서 얼마나 떨어져 있는가를 구해서
# 그 값에 standard deviation이 몇개나 들어가나 보면?
# 110 = 1개
# 120 = 2개
# 125 = 2.5개
stdscore.ro
> rnorm2 <- function(n,mean,sd) {
+ mean+sd*scale(rnorm(n)) }
>
> set.seed(1)
> a <- rnorm2(1000000, 100, 10)
> m.a <- mean(a)
> sd.a <- sd(a)
>
> hist(a)
> abline(v=mean(a), col='red', lwd = 2)
> abline(v=c(m.a-sd.a, m.a+sd.a), col='blue', lwd = 2)
> abline(v=c(m.a-2*sd.a, m.a+2*sd.a), col='green', lwd = 2)
> abline(v=c(m.a-3*sd.a, m.a+3*sd.a), col='black', lwd = 2)
>
> # score 110
> pnorm(110, m.a, sd.a)
[1] 0.8413447
> pnorm(90, m.a, sd.a)
[1] 0.1586553
> pnorm(110, m.a, sd.a) - pnorm(90, m.a, sd.a)
[1] 0.6826895
>
> pnorm(120, m.a, sd.a)
[1] 0.9772499
> pnorm(80, m.a, sd.a)
[1] 0.02275013
> pnorm(120, m.a, sd.a) - pnorm(80, m.a, sd.a)
[1] 0.9544997
>
> pnorm(m.a+3*sd.a, m.a, sd.a)
[1] 0.9986501
> pnorm(m.a-3*sd.a, m.a, sd.a)
[1] 0.001349898
> pnorm(m.a+3*sd.a, m.a, sd.a) -
+ pnorm(m.a-3*sd.a, m.a, sd.a)
[1] 0.9973002
>
> # 110이 평균에서 얼마나 떨어져 있는가를 구해서
> # 그 값에 standard deviation이 몇개나 들어가나 보면?
> # 110 = 1개
> # 120 = 2개
> # 125 = 2.5개
in R, pnorm(zscore) or pnorm(sd)
for z-score (표준점수) 1, 2, 3에 대한 proportion (percentage) 값은 r에서 아래와 같이 알아본다.
sd.1 <- pnorm(1) - pnorm(-1) sd.2 <- pnorm(2) - pnorm(-2) sd.3 <- pnorm(3) - pnorm(-3) sd.1 sd.2 sd.3
> sd.1 <- pnorm(1) - pnorm(-1) > sd.2 <- pnorm(2) - pnorm(-2) > sd.3 <- pnorm(3) - pnorm(-3) > sd.1 [1] 0.6826895 > sd.2 [1] 0.9544997 > sd.3 [1] 0.9973002 >
이전에 소개한 표준점수 1, 2, 3에 해당하는 면적이 68, 95, 99%라고 소개했지만, 정확한 면적은 각각
0.6826895, 0.9544997, 0.9973002 임을 알수 있다.
그렇다면 68, 95, 99%에 해당하는 정확한 zscore는 (표준점수는) 무엇일까? 이는 R에서 qnorm을 써서 알 수 있다.
in R, qnorm(percentage)는 zscore를 (표준점수를) 출력한다.
qnorm(.025) qnorm(.975)
# 68%에 해당하는 점수 qnorm(0.68+(0.32/2)) qnorm(0.32/2) # 95%에 해당하는 점수 qnorm(0.95+(0.05/2)) qnorm(0.05/2) # 99%에 해당하는 점수 qnorm(0.99+(0.01/2)) qnorm(0.01/2)
아래의 아웃풋으로 우리는
평균을 중심으로
- 64%에 해당하는 점수는 +-0.9944579 (1이라고 소개했지만)
- 95%에 해당하는 점수는 +-1.959964 (2라고 소개했지만)
- 99%에 해당하는 점수는 +-2.326348 (3이라고 소개했지만)
> # 64%에 해당하는 점수 > qnorm(0.84) [1] 0.9944579 > qnorm(0.16) [1] -0.9944579 > > # 95%에 해당하는 점수 > qnorm(0.025) [1] -1.959964 > qnorm(0.975) [1] 1.959964 > > # 99%에 해당하는 점수 > qnorm(0.01) [1] -2.326348 > qnorm(0.99) [1] 2.326348 > > qnorm(0.001) [1] -3.090232 > qnorm(0.999) [1] 3.090232
z_score.1789343841.txt.gz · Last modified: by hkimscil




