Objetivo
Realizar cálculos de probabilida bajo la distribución Normal
Las librerías
library(dplyr)
library(mosaic)
library(readr)
library(ggplot2) # Para gráficos
library(knitr) # Para formateo de datos
Los datos
datos <- read.table("https://raw.githubusercontent.com/rpizarrog/probabilidad-y-estad-stica/master/datos/body.dat.txt", quote="\"", comment.char="")
datos <- as.data.frame(datos)
#datos
Seleccionar y poner nombres de columnas a las columnas 23, 24 y 25 solamente
colnames(datos)[23:25] <- c("peso", "estatura", "genero")
kable(head(datos))
| 42.9 |
26.0 |
31.5 |
17.7 |
28.0 |
13.1 |
10.4 |
18.8 |
14.1 |
106.2 |
89.5 |
71.5 |
74.5 |
93.5 |
51.5 |
32.5 |
26.0 |
34.5 |
36.5 |
23.5 |
16.5 |
21 |
65.6 |
174.0 |
1 |
| 43.7 |
28.5 |
33.5 |
16.9 |
30.8 |
14.0 |
11.8 |
20.6 |
15.1 |
110.5 |
97.0 |
79.0 |
86.5 |
94.8 |
51.5 |
34.4 |
28.0 |
36.5 |
37.5 |
24.5 |
17.0 |
23 |
71.8 |
175.3 |
1 |
| 40.1 |
28.2 |
33.3 |
20.9 |
31.7 |
13.9 |
10.9 |
19.7 |
14.1 |
115.1 |
97.5 |
83.2 |
82.9 |
95.0 |
57.3 |
33.4 |
28.8 |
37.0 |
37.3 |
21.9 |
16.9 |
28 |
80.7 |
193.5 |
1 |
| 44.3 |
29.9 |
34.0 |
18.4 |
28.2 |
13.9 |
11.2 |
20.9 |
15.0 |
104.5 |
97.0 |
77.8 |
78.8 |
94.0 |
53.0 |
31.0 |
26.2 |
37.0 |
34.8 |
23.0 |
16.6 |
23 |
72.6 |
186.5 |
1 |
| 42.5 |
29.9 |
34.0 |
21.5 |
29.4 |
15.2 |
11.6 |
20.7 |
14.9 |
107.5 |
97.5 |
80.0 |
82.5 |
98.5 |
55.4 |
32.0 |
28.4 |
37.7 |
38.6 |
24.4 |
18.0 |
22 |
78.8 |
187.2 |
1 |
| 43.3 |
27.0 |
31.5 |
19.6 |
31.3 |
14.0 |
11.5 |
18.8 |
13.9 |
119.8 |
99.9 |
82.5 |
80.1 |
95.3 |
57.5 |
33.0 |
28.0 |
36.6 |
36.1 |
23.5 |
16.9 |
21 |
74.8 |
181.5 |
1 |
datos <- select(datos, peso, estatura, genero)
kable(head(datos))
| 65.6 |
174.0 |
1 |
| 71.8 |
175.3 |
1 |
| 80.7 |
193.5 |
1 |
| 72.6 |
186.5 |
1 |
| 78.8 |
187.2 |
1 |
| 74.8 |
181.5 |
1 |
Poner la columna genero como factor 1, 0
datos$genero <- as.factor(datos$genero)
Ver estadísticos
summary(datos)
## peso estatura genero
## Min. : 42.00 Min. :147.2 0:260
## 1st Qu.: 58.40 1st Qu.:163.8 1:247
## Median : 68.20 Median :170.3
## Mean : 69.15 Mean :171.1
## 3rd Qu.: 78.85 3rd Qu.:177.8
## Max. :116.40 Max. :198.1
Visulizar datos con diagrama de cajas. Peso
ggplot(datos, aes(genero, peso)) +
geom_boxplot(colour = c("deeppink", "dodgerblue4"))

Visulizar datos con diagrama de cajas. Estatura
ggplot(datos, aes(genero, estatura)) +
geom_boxplot(colour = c("deeppink", "dodgerblue4"))

Filtrar masculinos y femeninos
masculinos <- filter(datos, genero == 1)
summary(masculinos)
## peso estatura genero
## Min. : 53.90 Min. :157.2 0: 0
## 1st Qu.: 70.95 1st Qu.:172.9 1:247
## Median : 77.30 Median :177.8
## Mean : 78.14 Mean :177.7
## 3rd Qu.: 85.50 3rd Qu.:182.7
## Max. :116.40 Max. :198.1
femeninos <- filter(datos, genero == 0)
summary(femeninos)
## peso estatura genero
## Min. : 42.0 Min. :147.2 0:260
## 1st Qu.: 54.5 1st Qu.:160.0 1: 0
## Median : 59.0 Median :164.5
## Mean : 60.6 Mean :164.9
## 3rd Qu.: 65.6 3rd Qu.:169.5
## Max. :105.2 Max. :182.9
Calculando estadísticos de masculinos y femeninos peso
media.peso.m <- mean(masculinos$peso)
desv.std.peso.m <- sd(masculinos$peso)
media.peso.f <- mean(femeninos$peso)
desv.std.peso.f <- sd(femeninos$peso)
media.peso.m
## [1] 78.14453
desv.std.peso.m
## [1] 10.51289
media.peso.f
## [1] 60.60038
desv.std.peso.f
## [1] 9.615699
Calculando estadísticos de masculinos y femeninos estatura
media.estatura.m <- mean(masculinos$estatura)
desv.std.estatura.m <- sd(masculinos$estatura)
media.estatura.f <- mean(femeninos$estatura)
desv.std.estatura.f <- sd(femeninos$estatura)
media.estatura.m
## [1] 177.7453
desv.std.estatura.m
## [1] 7.183629
media.estatura.f
## [1] 164.8723
desv.std.estatura.f
## [1] 6.544602
Calcular probabilidades PESO
1. ¿Cual es la probabilidad de elegir a una persona al azar que sea varón \(masculinos\)y que pese mas de 60 kilos
- Se requieren los datos de masculinos
- Visulizando la curva de campana
plotDist("norm", mean = media.peso.m, sd = desv.std.peso.m, groups = x > 60, type = "h", xlab = "Peso Hombres", ylab = "Densidad" )

# ó directamente, sin las variables
#plotDist("norm", mean = mean(masculinos$peso), sd = sd(masculinos$peso), groups = x > 60, type = "h")
- Calculando la probabilidad
pnorm(q = 60, mean = media.peso.m, sd = desv.std.peso.m, lower.tail = FALSE)
## [1] 0.9578202
# ó
1 - pnorm(q = 60, mean = media.peso.m, sd = desv.std.peso.m)
## [1] 0.9578202
2. ¿Cual es la probabilidad de elegir a una persona al azar que sea varón \(masculinos\) y que pese entre 70 7 80 kilos
- Se requieren los datos de masculinos
- Visulizando la curva de campana
# Falta código
- Calculando la probabilidad
# Falta código
3. ¿Cual es la probabilidad de elegir a una persona al azar que sea varón \(masculinos\) y que pese menos de 75 kilos
- Se requieren los datos de masculinos
- Visulizando la curva de campana
# Falta código
- Calculando la probabilidad
# Falta código
4. ¿Cual es la probabilidad de elegir a una persona al azar que sea mujer \(femeninos\)y que pese mas de 55 kilos
- Se requieren los datos de femeninos
- Visulizando la curva de campana
plotDist("norm", mean = media.peso.f, sd = desv.std.peso.f, groups = x > 55, type = "h", xlab = "Peso Mujeres", ylab = "Densidad" )

- Calculando la probabilidad
pnorm(q = 55, mean = media.peso.f, sd = desv.std.peso.f, lower.tail = FALSE)
## [1] 0.7198584
5. ¿Cual es la probabilidad de elegir a una persona al azar que sea mujer \(femeninos\) y que pese entre 50 y 60 kilos
- Se requieren los datos de femeninos
- Visulizando la curva de campana
# Falta código
cat("A realizar")
## A realizar
- Calculando la probabilidad
# Falta código
cat("A realizar")
## A realizar
6. ¿Cual es la probabilidad de elegir a una persona al azar que sea mujer \(femeninos\) y que pese menos de 45 kilos
- Se requieren los datos de femeninos
- Visulizando la curva de campana
# Falta código
cat("A realizar")
## A realizar
- Calculando la probabilidad
# Falta código
cat("A realizar")
## A realizar
Calcular probabilidades ESTATURA
7. ¿Cual es la probabilidad de elegir a una persona al azar que sea varón \(masculinos\)y que mida mas de 165 cm de altura
- Se requieren los datos de masculinos
- Visulizando la curva de campana
plotDist("norm", mean = media.estatura.m, sd = desv.std.estatura.m, groups = x > 165, type = "h", xlab = "Estatura Hombres", ylab = "Densidad")

- Calculando la probabilidad
pnorm(q = 165, mean = media.estatura.m, sd = desv.std.estatura.m, lower.tail = FALSE)
## [1] 0.9619867
# ó
#1 - pnorm(q = 165, mean =media.estatura.m, sd = desv.std.estatura.m)
8. ¿Cual es la probabilidad de elegir a una persona al azar que sea varón \(masculinos\) y que mida entre 175 y 185 de estatura
- Se requieren los datos de masculinos
- Visulizando la curva de campana
# Falta código
cat("A realizar")
## A realizar
- Calculando la probabilidad
# Falta código
cat("A realizar")
## A realizar
9. ¿Cual es la probabilidad de elegir a una persona al azar que sea varón \(masculinos\) y que mida menos de 170 de altura
- Se requieren los datos de masculinos
- Visulizando la curva de campana
cat("A realizar")
## A realizar
- Calculando la probabilidad
# Falta código
10. ¿Cual es la probabilidad de elegir a una persona al azar que sea mujer \(femeninos\)y que mida mas de 155 de altura
- Se requieren los datos de femeninos
- Visulizando la curva de campana
plotDist("norm", mean = media.estatura.f, sd = desv.std.estatura.f, groups = x > 155, type = "h", xlab = "Estatura Mujeres", ylab = "Densidad")

- Calculando la probabilidad
pnorm(q = 155, mean =media.estatura.f, sd = desv.std.estatura.f, lower.tail = FALSE)
## [1] 0.9342823
11. ¿Cual es la probabilidad de elegir a una persona al azar que sea mujer \(femeninos\) y que mida entre 165 y 170 de estatura
- Se requieren los datos de femeninos
- Visulizando la curva de campana
# Falta código
cat("A realizar")
## A realizar
- Calculando la probabilidad
# Falta código
cat("A realizar")
## A realizar
12. ¿Cual es la probabilidad de elegir a una persona al azar que sea mujer \(femeninos\) y mida que menos de 155 de altura
- Se requieren los datos de femeninos
- Visulizando la curva de campana
# Falta código
cat("A realizar")
## A realizar
- Calculando la probabilidad
# Falta código
cat("A realizar")
## A realizar