> For the complete documentation index, see [llms.txt](https://kmis.gitbook.io/statistics/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kmis.gitbook.io/statistics/chapter-5.-continuous-random-variables/5-3.-probability-computations-for-general-normal-random-variables.md).

# 5-3. Probability Computations for General Normal Random Variables

## 1. Standard Normal Random Variable

> If $$X$$ is a normally distributed random variable with mean $$μ$$ and standard deviation $$σ$$ , then
>
> &#x20;                                $$P(a\<X\<b)=P(\frac{a−μ}{σ}\<Z<\frac{b−μ}{σ})$$&#x20;
>
> where $$Z$$ denotes a **standard normal random variable**. $$a$$ can be any decimal number or $$−∞$$ ; $$b$$ can be any decimal number or $$∞$$ .<br>

![Probability for an Interval of Finite Length](/files/-Lr0uAW_I5-N4GpFEt9m)

**EXAMPLE 9.** Let $$X$$ be a normal random variable with mean $$μ = 10$$ and standard deviation $$σ = 2.5$$ . Compute the following probabilities.

1. $$P(X < 14).$$&#x20;
2. $$P(8\<X<14).$$&#x20;

**\[ Solution ]**

$$1. P(X<14)=P(Z<\frac{14−μ}{σ})=P(Z<\frac{14−10}{2.5})=P(Z<1.60)=0.9452$$&#x20;

![](/files/-Lr14u0XRR-fytWSvEoa)

$$2. P(8\<X<14)=P(\frac{8−10}{2.5}\<Z<\frac{14−10}{2.5})=P(−0.80\<Z<1.60)=0.9452−0.2119=0.7333$$&#x20;

![](/files/-Lr14x1PNpzmMEyPeoiF)

{% tabs %}
{% tab title="R Source" %}

```
library(Rstat)

# 1-1. Compute P(X<14)
mu <- 10; sd <- 2.5
a <- 0; b <- 14
pnorm(b, mean=mu, sd=sd) - pnorm(a, mean=mu, sd=sd)

# 1-2. Plot
norm.trans(mu, sd, a=a, b=b)

# 2-1. Compute P(8<X<14)
a <- 8; b <- 14
pnorm(b, mean=mu, sd=sd) - pnorm(a, mean=mu, sd=sd)

# 2-2. Plot
norm.trans(mu, sd, a=a, b=b)
```

{% endtab %}

{% tab title="1. P(X<14) " %}

```
> # 1-1. Compute P(X<14)
> mu <- 10; sd <- 2.5
> a <- 0; b <- 14
> pnorm(b, mean=mu, sd=sd) - pnorm(a, mean=mu, sd=sd)
## [1] 0.945169
```

{% endtab %}

{% tab title="1. Plot" %}

```
> # 1-2. Plot
> norm.trans(mu, sd, a=a, b=b)
## Pr(0 < X < 14) =  0.945169 
## Pr(-4 < Z < 1.6) =  0.945169 
```

![](/files/-Lt4x96ABJiJ26Uoy8zw)
{% endtab %}

{% tab title="2. P(8\<X<14)" %}

```
> # 2-1. Compute P(8<X<14)
> a <- 8; b <- 14
> pnorm(b, mean=mu, sd=sd) - pnorm(a, mean=mu, sd=sd)
## [1] 0.7333453
```

{% endtab %}

{% tab title="2. Plot" %}

```
> # 2-2. Plot
> norm.trans(mu, sd, a=a, b=b)
## Pr(8 < X < 14) =  0.7333453 
## Pr(-0.8 < Z < 1.6) =  0.7333453 
```

![](/files/-Lt4xLqUMDa45jY2HeAu)
{% endtab %}
{% endtabs %}

**EXAMPLE 10.** The lifetimes of the tread of a certain automobile tire are normally distributed with mean 37,500 miles and standard deviation 4,500 miles. Find the probability that the tread life of a randomly selected tire will be between 30,000 and 40,000 miles.

**\[ Solution ]**&#x20;

$$P(30\<X<40)=P(\frac{30−μ}{σ}\<Z<\frac{40−μ}{σ})$$ \
$$=P(\frac{30−37.5}{4.5}\<Z<\frac{40−37.5}{4.5})$$ \
$$=P(−1.67\<Z<0.56)=0.7123−0.0475=0.6648$$&#x20;

![](/files/-Lr15A_f4GaJcPjaQ5IZ)

{% tabs %}
{% tab title="R Source" %}

```
library(Rstat)

# 1-1. Compute P(30<X<40)
mu <- 37.5; sd <- 4.5
a <- 30; b <- 40
pnorm(b, mean=mu, sd=sd) - pnorm(a, mean=mu, sd=sd)

# 1-2. Plot
norm.trans(mu, sd, a=a, b=b)
```

{% endtab %}

{% tab title="P(30 < X < 40)" %}

```
> # 1-1. Compute P(30<X<40)
> mu <- 37.5; sd <- 4.5
> a <- 30; b <- 40
> pnorm(b, mean=mu, sd=sd) - pnorm(a, mean=mu, sd=sd)
## [1] 0.6629523
```

{% endtab %}

{% tab title="Plot" %}

```
> # 1-2. Plot
> norm.trans(mu, sd, a=a, b=b)
## Pr(30 < X < 40) =  0.6629523 
## Pr(-1.6667 < Z < 0.5556) =  0.6629523 
```

![](/files/-Lt4y_c_Qob_qcEdcBWk)
{% endtab %}
{% endtabs %}

**EXAMPLE 11**. Scores on a standardized college entrance examination (*CEE*) are normally distributed with mean 510 and standard deviation 60. A selective university considers for admission only applicants with *CEE* scores over 650. Find percentage of all individuals who took the *CEE* who meet the university's *CEE* requirement for consideration for admission.

**\[ Solution ]**

$$P(X>650)=P(Z>\frac{650−μ}{σ})=P(Z>\frac{650−510}{60})=P(Z>2.33)=1−0.9901=0.0099$$&#x20;

![](/files/-Lr15kV5lDA1dkmkUc9t)

{% tabs %}
{% tab title="R Source" %}

```
library(Rstat)

# 1-1. Compute P(X>650)
mu <- 510; sd <- 60
a <- 650; b <- 900
1- pnorm(a, mean=mu, sd=sd)

# 1-2. Plot
norm.trans(mu, sd, a=a, b=b)
```

{% endtab %}

{% tab title="P(X>650)" %}

```
> # 1-1. Compute P(X>650)
> mu <- 510; sd <- 60
> a <- 650; b <- 900
> 1- pnorm(a, mean=mu, sd=sd)
## [1] 0.009815329
```

{% endtab %}

{% tab title="Plot" %}

```
> # 1-2. Plot
> norm.trans(mu, sd, a=a, b=b)
## Pr(650 < X < 900) =  0.009815329 
## Pr(2.3333 < Z < 6.5) =  0.009815329 
```

![](/files/-Lt50Y5t1nFbGOC9B3-j)
{% endtab %}
{% endtabs %}

**EXAMPLE 12.** 표준정규분포의 누적확률 표와 그래프를 작성하시오.

**\[ Solution ]**

{% tabs %}
{% tab title="R Source" %}

```
library(Rstat)

# 1. Table
# 표준정규 누적확률 ( 0 ~ 2.49 ), 0.01 단위, 10개 열
pv <- matrix(pnorm(0:299/100), ncol=10, byrow=TRUE)
colnames(pv) <- 0:9/100; rownames(pv) <- 0:29/10
(round(pv, 4))

# 2. Plot cdf
# 누적확률 그래프에 표시할 점 지정
zp <- seq(-2, 2, by=0.5)

# 누적확률 그래프 작성 : snorm.cdf()
snorm.cdf(zp)
```

{% endtab %}

{% tab title="Table" %}

```
> # 1. Table
> # 표준정규 누적확률 ( 0 ~ 2.49 ), 0.01 단위, 10개 열
> pv <- matrix(pnorm(0:299/100), ncol=10, byrow=TRUE)
> colnames(pv) <- 0:9/100; rownames(pv) <- 0:29/10
> (round(pv, 4))
##          0   0.01   0.02   0.03   0.04   0.05   0.06   0.07   0.08   0.09
## 0   0.5000 0.5040 0.5080 0.5120 0.5160 0.5199 0.5239 0.5279 0.5319 0.5359
## 0.1 0.5398 0.5438 0.5478 0.5517 0.5557 0.5596 0.5636 0.5675 0.5714 0.5753
## 0.2 0.5793 0.5832 0.5871 0.5910 0.5948 0.5987 0.6026 0.6064 0.6103 0.6141
## 0.3 0.6179 0.6217 0.6255 0.6293 0.6331 0.6368 0.6406 0.6443 0.6480 0.6517
## 0.4 0.6554 0.6591 0.6628 0.6664 0.6700 0.6736 0.6772 0.6808 0.6844 0.6879
## 0.5 0.6915 0.6950 0.6985 0.7019 0.7054 0.7088 0.7123 0.7157 0.7190 0.7224
## 0.6 0.7257 0.7291 0.7324 0.7357 0.7389 0.7422 0.7454 0.7486 0.7517 0.7549
## 0.7 0.7580 0.7611 0.7642 0.7673 0.7704 0.7734 0.7764 0.7794 0.7823 0.7852
## 0.8 0.7881 0.7910 0.7939 0.7967 0.7995 0.8023 0.8051 0.8078 0.8106 0.8133
## 0.9 0.8159 0.8186 0.8212 0.8238 0.8264 0.8289 0.8315 0.8340 0.8365 0.8389
## 1   0.8413 0.8438 0.8461 0.8485 0.8508 0.8531 0.8554 0.8577 0.8599 0.8621
## 1.1 0.8643 0.8665 0.8686 0.8708 0.8729 0.8749 0.8770 0.8790 0.8810 0.8830
## 1.2 0.8849 0.8869 0.8888 0.8907 0.8925 0.8944 0.8962 0.8980 0.8997 0.9015
## 1.3 0.9032 0.9049 0.9066 0.9082 0.9099 0.9115 0.9131 0.9147 0.9162 0.9177
## 1.4 0.9192 0.9207 0.9222 0.9236 0.9251 0.9265 0.9279 0.9292 0.9306 0.9319
## 1.5 0.9332 0.9345 0.9357 0.9370 0.9382 0.9394 0.9406 0.9418 0.9429 0.9441
## 1.6 0.9452 0.9463 0.9474 0.9484 0.9495 0.9505 0.9515 0.9525 0.9535 0.9545
## 1.7 0.9554 0.9564 0.9573 0.9582 0.9591 0.9599 0.9608 0.9616 0.9625 0.9633
## 1.8 0.9641 0.9649 0.9656 0.9664 0.9671 0.9678 0.9686 0.9693 0.9699 0.9706
## 1.9 0.9713 0.9719 0.9726 0.9732 0.9738 0.9744 0.9750 0.9756 0.9761 0.9767
## 2   0.9772 0.9778 0.9783 0.9788 0.9793 0.9798 0.9803 0.9808 0.9812 0.9817
## 2.1 0.9821 0.9826 0.9830 0.9834 0.9838 0.9842 0.9846 0.9850 0.9854 0.9857
## 2.2 0.9861 0.9864 0.9868 0.9871 0.9875 0.9878 0.9881 0.9884 0.9887 0.9890
## 2.3 0.9893 0.9896 0.9898 0.9901 0.9904 0.9906 0.9909 0.9911 0.9913 0.9916
## 2.4 0.9918 0.9920 0.9922 0.9925 0.9927 0.9929 0.9931 0.9932 0.9934 0.9936
## 2.5 0.9938 0.9940 0.9941 0.9943 0.9945 0.9946 0.9948 0.9949 0.9951 0.9952
## 2.6 0.9953 0.9955 0.9956 0.9957 0.9959 0.9960 0.9961 0.9962 0.9963 0.9964
## 2.7 0.9965 0.9966 0.9967 0.9968 0.9969 0.9970 0.9971 0.9972 0.9973 0.9974
## 2.8 0.9974 0.9975 0.9976 0.9977 0.9977 0.9978 0.9979 0.9979 0.9980 0.9981
## 2.9 0.9981 0.9982 0.9982 0.9983 0.9984 0.9984 0.9985 0.9985 0.9986 0.9986

```

{% endtab %}

{% tab title="Plot" %}

```
> # 2. Plot cdf
> # 누적확률 그래프에 표시할 점 지정
> zp <- seq(-2, 2, by=0.5)
> 
> # 누적확률 그래프 작성 : snorm.cdf()
> snorm.cdf(zp)
```

![](/files/-Lt4m-D1k-GuAHUa-AcP)
{% endtab %}
{% endtabs %}

**EXAMPLE 13.** 표준정규분포에서 0 을 중심으로 $$\pm k$$  사이에 들어갈 확률을 나타내는 그래프를 작성하시오.

**\[ Solution ]**

{% tabs %}
{% tab title="R Source" %}

```
library(Rstat)

# 1. Plot cdf
# 누적확률 그래프에 표시할 점 지정
zp <- 1:4
snorm.cdf(zp)
```

{% endtab %}

{% tab title="Plot" %}

```
> # 누적확률 그래프 작성 : snorm.cdf()
> snorm.cdf(zp)
> zp <- 1:4
> snorm.cdf(zp)
```

![](/files/-Lt4nYj0IVzf7oysPYwB)
{% endtab %}
{% endtabs %}

**EXAMPLE 14.** 누적확률 0.5%, 1.0%, 2.5%, 5.0%, 10% \~ 90%, 95%, 97.5%, 99%, 99.5%에 대한 표준정규분포의 분위수 표를 작성하시오.

**\[ Solution ]**

{% tabs %}
{% tab title="R Source" %}

```
library(Rstat)

# 분위수 계산/표시 누적확률
pv <- c(0.005, 0.01, 0.025, 0.05, 1:9/10, 0.95, 0.975, 0.99, 0.995)

# 표준정규 분위수 작성 : snorm.quant()
snorm.quant(pv, pv)
```

{% endtab %}

{% tab title="Table & Plot" %}

```
> # 분위수 계산/표시 누적확률
> pv <- c(0.005, 0.01, 0.025, 0.05, 1:9/10, 0.95, 0.975, 0.99, 0.995)
> 
> # 표준정규 분위수 작성 : snorm.quant()
> snorm.quant(pv, pv)
##   0.005    0.01   0.025    0.05     0.1     0.2     0.3     0.4     0.5 
## -2.5758 -2.3263 -1.9600 -1.6449 -1.2816 -0.8416 -0.5244 -0.2533  0.0000 
##     0.6     0.7     0.8     0.9    0.95   0.975    0.99   0.995 
##  0.2533  0.5244  0.8416  1.2816  1.6449  1.9600  2.3263  2.5758 
```

![](/files/-Lt4p9bG5w9hn1jCTPM1)
{% endtab %}
{% endtabs %}

**EXAMPLE 15.** 20대 남성의 신장이 평균 175, 분산 64인 정규분포를 따른다고 할 때, 20대 남성 중 180과 185 사이의 신장을 갖는 비율을 구하시오.

**\[ Solution ]**

$$X \sim N(175, 8^2 )$$**,**

$$P(180\<X<185) =  p( \frac{180-175}{8} < \frac{X-175}{8} < \frac{185-175}{8} )$$                                          $$= P(0.625 < Z < 1.25) = P(Z<1.25) - P(Z<0.625) = 0.8944-0.7340 = 0.1604$$&#x20;

{% tabs %}
{% tab title="R Source" %}

```
library(Rstat)

# 1-1. Compute P(180<X<185)
mu <- 175; sd <- 8
a <- 180; b <- 185
pnorm(b, mean=mu, sd=sd) - pnorm(a, mean=mu, sd=sd)

# 1-2. Plot
norm.trans(mu, sd, a=a, b=b)
```

{% endtab %}

{% tab title="P(180\<X<185)" %}

```
> # 1-1. Compute P(180<X<185)
> mu <- 175; sd <- 8
> a <- 180; b <- 185
> pnorm(b, mean=mu, sd=sd) - pnorm(a, mean=mu, sd=sd)
## [1] 0.1603358
```

{% endtab %}

{% tab title="Plot" %}

```
> # 1-2. Plot
> norm.trans(mu, sd, a=a, b=b)
## Pr(180 < X < 185) =  0.1603358 
## Pr(0.625 < Z < 1.25) =  0.1603358 
```

![](/files/-Lt4r3pDSlSTXRiTOuu3)
{% endtab %}
{% endtabs %}

**EXAMPLE 16.** A사 Q모델의 엔진 수명은 평균 10년, 표준편차가 1.5년인 정규분포를 따른다고 알려져 있다. Q 모델 엔진의 무상보증비율을 5% 이내로 유지해야 한다면, 무상보증기간은 최대 몇 년까지 가능하겠는가?

**\[ Solution ]**

$$X \sim N(10, 1.5^2 )$$**,** 무상보증기간을 $$m$$이라 하면, $$P(X\<m) \le 0.05)$$ 를 만족해야 하므로, &#x20;

$$P(X\<m) = P( Z < \frac{m-10}{1.5}) =0.05$$ ==> $$\frac{m-10}{1.5} \le -1.645, \therefore m \le 7.5325$$&#x20;

따라서 무상보증기간은 최대 약 7.53년이 된다.

{% tabs %}
{% tab title="R Source" %}

```
qnorm(0.05, mean=10, sd=1.5)
```

{% endtab %}

{% tab title="m" %}

```
> qnorm(0.05, mean=10, sd=1.5)
## [1] 7.53272
```

{% endtab %}
{% endtabs %}

## 2. Probability Computation using R

1. $$P(X<1)$$&#x20;
2. $$P(-1 < X <1)$$&#x20;
3. $$P(X > 2)$$&#x20;

{% tabs %}
{% tab title="R Source" %}

```
# 1. P(X<1)
pnorm(q=c(1), mean=0, sd=1)   # p(x<1)

# 2.   P(x<1) - p(x<-1)
b <- pnorm(q=c(1), mean=0, sd=1)   # p(x<1)
a <- pnorm(q=c(-1), mean=0, sd=1)   # p(x<-1)
(b-a)

# 3. (1 - p(X<2))
1 - pnorm(q=c(2), mean=0, sd=1)   # 1- p(x<2)
# OR
pnorm(q=c(2), mean=0, sd=1, lower.tail=FALSE)   # p(x>2)
```

{% endtab %}

{% tab title="1. P(X<1)" %}

```
> # 1. P(X<1)
> pnorm(q=c(1), mean=0, sd=1)   # p(x<1)
## [1] 0.8413447
```

{% endtab %}

{% tab title="2. P(-1\<X<1)" %}

```
> # 2.   P(x<1) - p(x<-1)
> b <- pnorm(q=c(1), mean=0, sd=1)   # p(x<1)
> a <- pnorm(q=c(-1), mean=0, sd=1)   # p(x<-1)
> (b-a)
## [1] 0.6826895
```

{% endtab %}

{% tab title="3. P(X>2)" %}

```
> # 3. (1 - p(X<2))
> 1 - pnorm(q=c(2), mean=0, sd=1)   # 1- p(x<2)
## [1] 0.02275013
> # OR
> pnorm(q=c(2), mean=0, sd=1, lower.tail=FALSE)   # p(x>2)
## [1] 0.02275013
```

{% endtab %}
{% endtabs %}

## 3. Using pnormGC()

### 3-1. Install packages

```
install.packages("tigerstats")
library(tigerstats)
```

### 3-2. Finding $$P(X\<x)$$ & Plotting

* `pnormGC(bound=  , region="below", mean= , sd= , graph=TRUE)`

* mean $$μ=70$$ and standard deviation $$σ=3$$ : $$X \~ norm(70, 3)$$ ,    $$P(X<66)$$ ?.

{% tabs %}
{% tab title="R Source" %}

```
# P(X < 66)
pnormGC(bound=66, region="below", mean=70, sd=3)  # without graph
pnormGC(bound=66, region="below", mean=70, sd=3, graph=TRUE)  # with graph
```

{% endtab %}

{% tab title="Result" %}

```
> pnormGC(bound=66, region="below", mean=70, sd=3)
## [1] 0.09121122
```

{% endtab %}

{% tab title="Plot" %}
![](/files/-Lr1X1XrHSRM_rvbTQRH)
{% endtab %}
{% endtabs %}

### 3-3. Finding $$P(X>x)$$ & Plotting

* `pnormGC(bound=  , region="above", mean= , sd= , graph=TRUE)`

* mean $$μ=70$$ and standard deviation $$σ=3$$ : $$X \~ norm(70, 3)$$ ,    $$P(X > 69)$$ ?.

{% tabs %}
{% tab title="R Source" %}

```
# P(X > 69)
pnormGC(bound=66, region="above", mean=70, sd=3)  # without graph
pnormGC(bound=66, region="above", mean=70, sd=3, graph=TRUE)  # with graph
```

{% endtab %}

{% tab title="Result" %}

```
> pnormGC(bound=66, region="above", mean=70, sd=3, graph=TRUE)  # with graph
## [1] 0.9087888
```

{% endtab %}

{% tab title="Plot" %}
![](/files/-Lr1YXkRFVqmZfiIRob-)
{% endtab %}
{% endtabs %}

### 3-4. Finding $$P(a\<X\<b)$$ & Plotting

* `pnormGC(bound=c(a,b), region="between", mean= , sd= , graph=TRUE)`

* mean $$μ=70$$ and standard deviation $$σ=3$$ : $$X \~ norm(70, 3)$$ ,    $$P(68\<X < 72)$$ ?.

{% tabs %}
{% tab title="R Source" %}

```
# P(68 < X < 72)
pnormGC(bound=c(68,72), region="between", mean=70, sd=3)  # without graph
pnormGC(bound=c(68,72), region="between", mean=70, sd=3, graph=TRUE)  # with graph
```

{% endtab %}

{% tab title="Result" %}

```
> pnormGC(bound=c(68,72), region="between", mean=70, sd=3, graph=TRUE)  # with graph
## [1] 0.4950149
```

{% endtab %}

{% tab title="Plot" %}
![](/files/-Lr1ZFqxxz6-e7fGisPV)
{% endtab %}
{% endtabs %}

### 3-5. Finding "Outside" Probabilities$$P(a<X or X>b)$$ & Plotting

* `pnormGC(bound=c(a,b), region="outside", mean= , sd= , graph=TRUE)`

* mean $$μ=70$$ and standard deviation $$σ=3$$ : $$X \~ norm(70, 3)$$ ,    $$P(66<X or X>73)$$ ?.

{% tabs %}
{% tab title="R Source" %}

```
# P(66<X or X>73)
pnormGC(bound=c(66,73), region="outside", mean=70, sd=3)  # without graph
pnormGC(bound=c(66,73), region="outside", mean=70, sd=3, graph=TRUE)  # with graph
```

{% endtab %}

{% tab title="Result" %}

```
> pnormGC(bound=c(66,73), region="outside", mean=70, sd=3, graph=TRUE)  # with graph
## [1] 0.2498665
```

{% endtab %}

{% tab title="Plot" %}
![](/files/-Lr1_3pRYy3E2RdCZx_a)
{% endtab %}
{% endtabs %}
