Objetivo

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


Las librerías

1. library(dplyr)
2. library(mosaic)
3. library(readr)
4. library(ggplot2)
5. library(knitr)

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)

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))
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22 peso estatura genero
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))
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

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

# MASCULINO

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
# FEMENINO 

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

ESTADISTICOS

P1 ESTADISTICOS

Calculando estadísticos de masculinos y femeninos peso

# MASCULINO
media.peso.m <- mean(masculinos$peso)
desv.std.peso.m <- sd(masculinos$peso)

# FEMENINO 
media.peso.f <- mean(femeninos$peso)
desv.std.peso.f <- sd(femeninos$peso)
# MASCULINO

media.peso.m
## [1] 78.14453
desv.std.peso.m
## [1] 10.51289
# FEMENINO 

media.peso.f
## [1] 60.60038
# FEMENINO 

desv.std.peso.f
## [1] 9.615699

P2 ESTADISTICOS

Calculando estadísticos de masculinos y femeninos estatura

# MASCULINO
media.estatura.m <- mean(masculinos$estatura)
desv.std.estatura.m <- sd(masculinos$estatura)

# FEMENINO 
media.estatura.f <- mean(femeninos$estatura)
desv.std.estatura.f <- sd(femeninos$estatura)
# MASCULINO

media.estatura.m
## [1] 177.7453
# MASCULINO

desv.std.estatura.m
## [1] 7.183629
# FEMENINO 

media.estatura.f
## [1] 164.8723
# FEMENINO 

desv.std.estatura.f
## [1] 6.544602

Calcular probabilidades PESO

P1

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" )

  • Calculando la probabilidad
pnorm(q = 60, mean = media.peso.m, sd = desv.std.peso.m, lower.tail = FALSE)
## [1] 0.9578202

P2

2. ¿Cual es la probabilidad de elegir a una persona al azar que sea varón masculinos y que pese entre 70 y 80 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 > 70 & x < 80, type = "h", xlab = "Peso Hombres", ylab = "Densidad" )

  • Calculando la probabilidad
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

P3

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
plotDist("norm", mean = media.peso.m, sd = desv.std.peso.m, groups = x < 75, type = "h", xlab = "Peso Hombres", ylab = "Densidad" )

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

P4

4. ¿Cual es la probabilidad de elegir a una persona al azar que sea mujer femeninosy 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

P5

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

  • Calculando la probabilidad
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

P6

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
plotDist("norm", mean = media.peso.f, sd = desv.std.peso.f, groups = x < 45, type = "h", xlab = "Peso Mujeres", ylab = "Densidad" )

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

Calcular probabilidades ESTATURA

P7

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

P8

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

  • Calculando la probabilidad
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

P9

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
plotDist("norm", mean = media.estatura.m, sd = desv.std.estatura.m, groups = x < 170, type = "h", xlab = "Estatura Hombres", ylab = "Densidad")

  • Calculando la probabilidad
1 - pnorm(q = 170, mean = media.estatura.m, sd = desv.std.estatura.m, lower.tail = FALSE)
## [1] 0.1404736

P10

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

P11

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
plotDist("norm", mean = media.estatura.f, sd = desv.std.estatura.f, groups = x > 165 & x < 170, type = "h", xlab = "Estatura Mujeres", ylab = "Densidad")

  • Calculando la probabilidad
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

P12

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
plotDist("norm", mean = media.estatura.f, sd = desv.std.estatura.f, groups = x < 155, type = "h", xlab = "Estatura Mujeres", ylab = "Densidad")

  • Calculando la probabilidad
1 - pnorm(q = 155, mean =media.estatura.f, sd = desv.std.estatura.f, lower.tail = FALSE)
## [1] 0.06571769

CONCLUSIONES

la probabilidad es una estrategia mediante la cual se intenta estimar la frecuencia con la que se obtiene un cierto resultado en el marco de una experiencia en la que se conocen todos los resultados posibles. Así, el ejemplo más tradicional consiste en definir cual es la prevalencia de obtener un número al arrojar un dado.