Caso 20. Distribución Normal

Objetivo

Identificar en una distribución normal, los valores de la curva o los valores de la función de densidad, graficar el área bajo la curva y calcular probabildiades.

Descripción

Realizar distribuciones de probabilidad conforme a la distribución de probabilidad normal a partir de valores iniciales de los ejercicios identificando y visualizando la función de densidad y calculando probabilidades.

Las librerías

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(mosaic)
## Warning: package 'mosaic' was built under R version 4.0.3
## Registered S3 method overwritten by 'mosaic':
##   method                           from   
##   fortify.SpatialPolygonsDataFrame ggplot2
## 
## The 'mosaic' package masks several functions from core packages in order to add 
## additional features.  The original behavior of these functions should not be affected by this.
## 
## Attaching package: 'mosaic'
## The following object is masked from 'package:Matrix':
## 
##     mean
## The following object is masked from 'package:ggplot2':
## 
##     stat
## The following objects are masked from 'package:dplyr':
## 
##     count, do, tally
## The following objects are masked from 'package:stats':
## 
##     binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
##     quantile, sd, t.test, var
## The following objects are masked from 'package:base':
## 
##     max, mean, min, prod, range, sample, sum
library(readr)
## Warning: package 'readr' was built under R version 4.0.3
library(ggplot2)  # Para gráficos
library(knitr)    # Para formateo de datos
## Warning: package 'knitr' was built under R version 4.0.3

Ejercicios

Ejercicio 1. Caso de mediciones del cuerpo humano (Peso y Estatura)

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

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

# Solo nos interesan las tres últimas columnas
datos <- select(datos, estatura, peso, genero)
  • Ver los primeros seis y últimos seis registros
head(datos)
##   estatura peso genero
## 1    174.0 65.6      1
## 2    175.3 71.8      1
## 3    193.5 80.7      1
## 4    186.5 72.6      1
## 5    187.2 78.8      1
## 6    181.5 74.8      1
tail(datos)
##     estatura peso genero
## 502    157.5 76.8      0
## 503    176.5 71.8      0
## 504    164.4 55.5      0
## 505    160.7 48.6      0
## 506    174.0 66.4      0
## 507    163.8 67.3      0

Visualiar la dispersión de los datos

*Diagrama de dispersión del peso

ggplot(datos, aes(x = 1:nrow(datos), y = peso)) +
  geom_point(colour = "red") 

  • Diagrama de dispersión de la estatura
ggplot(datos, aes(x = 1:nrow(datos), y = estatura)) +
  geom_point(colour = "blue")

Histrogramas

  • Histograma del peso
ggplot(datos) +
  geom_histogram(aes(x = peso))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

* Histograma de la estatura

ggplot(datos) +
  geom_histogram(aes(x = estatura))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

## Identificar medias y desviaciones necesarias * Estadísticos de la variable peso

datos$genero <- as.factor(datos$genero)

masculinos <- filter(datos, genero == 1)

femeninos <- filter(datos, genero == 0)

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)
  • Estadísticos de la variable 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)

Calcular probabilidades

  1. ¿Cuál es la probabilidad de encontrar a una persona masculino que pese menor o igual de 60 kilogramos?
  • Graficar la función en donde x<60

  • Grafíca de desidad

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

* Calcular la probabilidad

prob <- pnorm(q = 60, mean = media.peso.m, sd = desv.std.peso.m)
paste("La probabilidad de encontrar a una persona masculino que pese menor de 60 kilogramos es de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona masculino que pese menor de 60 kilogramos es de: 4.218 %"
  1. ¿Cuál es la probabilidad de encontrar a una persona femenino que pese menor o igual de 50 kilogramos?
  • Graficar la función en donde x<60
  • Grafíca de desidad
plotDist("norm", mean = media.peso.f, sd = desv.std.peso.f, groups = x <= 60, type = "h", xlab = "Peso Mujeres", ylab = "Densidad" )

* Calcular la probabilidad

prob <- pnorm(q = 60, mean = media.peso.f, sd = desv.std.peso.f)
paste("La probabilidad de encontrar a una persona femenino que pese menor de 50 kilogramos es de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona femenino que pese menor de 50 kilogramos es de: 47.5107 %"
  1. ¿Cuál es la probabilidad de encontrar a una persona masculino que tenga una estatura mayor o igual de 180 centímetros?
  • Graficar la función en donde x>=180

  • Grafíca de desidad

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