Realizar cálculos de probabilida bajo la distribución Normal

Datos y columnas

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)

colnames(datos)[23:25] <- c("peso", "estatura", "genero")
datos= select(datos, peso, estatura, genero)

kable(head(datos))
peso estatura genero
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

Estadisticos

datos$genero <- as.factor(datos$genero)
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

Peso

ggplot(datos, aes(genero, peso)) +
geom_boxplot(colour = c("deeppink", "dodgerblue4"))

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 Estadisticos de genero

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

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

Calculo de probabilidades

Peso:

1. Varón que pese mas de 60 kilos

plotDist("norm", mean = media.peso.m, sd = desv.std.peso.m, groups = x > 60, type = "h", xlab = "Peso Hombres", ylab = "Densidad" )

1 - pnorm(q = 60, mean = media.peso.m, sd = desv.std.peso.m)
## [1] 0.9578202

2. Varón que pese entre 70 y 80 kilos

plotDist("norm", mean = media.peso.m, sd = desv.std.peso.m, groups = x > 70 & x<80, type = "h", xlab = "Peso Hombres", ylab = "Densidad" )

pnorm(q = 80, mean = media.peso.m, sd = desv.std.peso.m, )-pnorm(q = 70, mean = media.peso.m, sd = desv.std.peso.m, )
## [1] 0.3507943

3. Varón que pese menos de 75 kilos

plotDist("norm", mean = media.peso.m, sd = desv.std.peso.m, groups =x<75, type = "h", xlab = "Peso Hombres", ylab = "Densidad" )

pnorm(q = 75, mean = media.peso.m, sd = desv.std.peso.m, )
## [1] 0.3824272

4. Mujer que pese mas de 55 kilos

plotDist("norm", mean = media.peso.f, sd = desv.std.peso.f, groups = x > 55, type = "h", xlab = "Peso Mujeres", ylab = "Densidad" )

pnorm(q = 55, mean = media.peso.f, sd = desv.std.peso.f, lower.tail = FALSE)
## [1] 0.7198584

5. Mujer que pese entre 50 y 60 kilos

plotDist("norm", mean = media.peso.f, sd = desv.std.peso.f, groups = x > 50 & x<60, type = "h", xlab = "Peso Mujeres", ylab = "Densidad" )

pnorm(q = 60, mean = media.peso.f, sd = desv.std.peso.f, )-pnorm(q = 50, mean = media.peso.f, sd = desv.std.peso.f, )
## [1] 0.339964

6. Mujer que pese menos de 45 kilos

plotDist("norm", mean = media.peso.f, sd = desv.std.peso.f, groups =  x<45, type = "h", xlab = "Peso Mujeres", ylab = "Densidad" )

pnorm(q = 45, mean = media.peso.f, sd = desv.std.peso.f, )
## [1] 0.05236025

Estatura:

7. Varón que mida mas de 165 cm de altura

plotDist("norm", mean = media.estatura.m, sd = desv.std.estatura.m, groups = x > 165, type = "h", xlab = "Estatura Hombres", ylab = "Densidad" )

1-pnorm(q = 165, mean = media.estatura.m, sd = desv.std.estatura.m, )
## [1] 0.9619867

8. Varón que mida entre 175 y 185 de estatura

plotDist("norm", mean = media.estatura.m, sd = desv.std.estatura.m, groups = x > 175 & x<185, type = "h", xlab = "Estatura Hombres", ylab = "Densidad" )

pnorm(q = 185, mean = media.estatura.m, sd = desv.std.estatura.m, )-pnorm(q = 175, mean = media.estatura.m, sd = desv.std.estatura.m, )
## [1] 0.4925565

9. Varón que mida menos de 170 de altura

plotDist("norm", mean = media.estatura.m, sd = desv.std.estatura.m, groups =x<170, type = "h", xlab = "Estatura Hombres", ylab = "Densidad" )

pnorm(q = 170, mean = media.estatura.m, sd = desv.std.estatura.m, )
## [1] 0.1404736

10. Mujer que mida mas de 155 de altura

plotDist("norm", mean = media.estatura.f, sd = desv.std.estatura.f, groups = x > 155, type = "h", xlab = "Estatura Mujeres", ylab = "Densidad")

pnorm(q = 155, mean =media.estatura.f, sd = desv.std.estatura.f, lower.tail = FALSE)
## [1] 0.9342823

11. Mujer que mida entre 165 y 170 de estatura

plotDist("norm", mean = media.estatura.f, sd = desv.std.estatura.f, groups = x > 165 & x<170, type = "h", xlab = "Peso Mujeres", ylab = "Densidad" )

pnorm(q = 170, mean = media.estatura.f, sd = desv.std.estatura.f, )-pnorm(q = 165, mean = media.estatura.f, sd = desv.std.estatura.f, )
## [1] 0.2755498

12. Mujer mida que menos de 155 de altura

plotDist("norm", mean = media.estatura.f, sd = desv.std.estatura.f, groups =  x<155, type = "h", xlab = "Estatura Mujeres", ylab = "Densidad" )

pnorm(q = 155, mean = media.estatura.f, sd = desv.std.estatura.f, )
## [1] 0.06571769