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)
library(ggplot2)
library(knitr)
FUENTE: https://scielo.conicyt.cl/scielo.php?script=sci_arttext&pid=S0717-75182008000400003
Caso de mediciones del cuerpo humano (Peso y Estatura)
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)
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
ggplot(datos, aes(x = 1:nrow(datos), y = peso)) +
geom_point(colour = "blue")
ggplot(datos, aes(x = 1:nrow(datos), y = estatura)) +
geom_point(colour = "blue")
ggplot(datos) +
geom_histogram(aes(x = peso))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
ggplot(datos) +
geom_histogram(aes(x = estatura))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
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)
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)
plotDist("norm", mean = media.peso.m, sd = desv.std.peso.m, groups = x <= 60, type = "h", xlab = "Peso Hombres", ylab = "Densidad" )
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 %"
plotDist("norm", mean = media.peso.f, sd = desv.std.peso.f, groups = x <= 60, type = "h", xlab = "Peso Mujeres", ylab = "Densidad" )
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 %"
plotDist("norm", mean = media.estatura.m, sd = desv.std.estatura.m, groups = x >= 180, type = "h", xlab = "Estatura Hombres", ylab = "Densidad" )
prob <- pnorm(q = 180, mean = media.estatura.m, sd = desv.std.estatura.m, lower.tail = FALSE)
paste("La probabilidad de encontrar a una persona masculino que tenga una estatura mayor o igual de 180 de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona masculino que tenga una estatura mayor o igual de 180 de: 37.6814 %"
plotDist("norm", mean = media.estatura.m, sd = desv.std.estatura.m, groups = x >= 190, type = "h", xlab = "Estatura Hombres", ylab = "Densidad" )
prob <- pnorm(q = 190, mean = media.estatura.m, sd = desv.std.estatura.m, lower.tail = FALSE)
paste("La probabilidad de encontrar a una persona masculino que tenga una estatura mayor o igual de 190 de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona masculino que tenga una estatura mayor o igual de 190 de: 4.4012 %"
plotDist("norm", mean = media.estatura.m, sd = desv.std.estatura.m, groups = x >= 160 & x <= 170, type = "h", xlab = "Estatura Hombres", ylab = "Densidad" )
prob <- pnorm(q = 170, mean = media.estatura.m, sd = desv.std.estatura.m) - pnorm(q = 160, mean = media.estatura.m, sd = desv.std.estatura.m)
paste("La probabilidad de encontrar a una persona masculino que tenga una estatura entre 160 y 170 centímeros de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona masculino que tenga una estatura entre 160 y 170 centímeros de: 13.3723 %"
plotDist("norm", mean = media.estatura.m, sd = desv.std.estatura.m, groups = x >= 190 & x <= 195, type = "h", xlab = "Estatura Hombres", ylab = "Densidad" )
prob <- pnorm(q = 195, mean = media.estatura.m, sd = desv.std.estatura.m) - pnorm(q = 190, mean = media.estatura.m, sd = desv.std.estatura.m)
paste("La probabilidad de encontrar a una persona masculino que tenga una estatura entre 190 y 195 centímeros es de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona masculino que tenga una estatura entre 190 y 195 centímeros es de: 3.5858 %"
plotDist("norm", mean = media.estatura.f, sd = desv.std.estatura.f, groups = x >= 180, type = "h", xlab = "Estatura Mujeres", ylab = "Densidad" )
prob <- pnorm(q = 180, mean = media.estatura.f, sd = desv.std.estatura.f, lower.tail = FALSE)
paste("La probabilidad de encontrar a una persona femenino que tenga una estatura mayor o igual de 180 de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona femenino que tenga una estatura mayor o igual de 180 de: 1.0403 %"
plotDist("norm", mean = media.estatura.f, sd = desv.std.estatura.f, groups = x >= 190, type = "h", xlab = "Estatura Mujeres", ylab = "Densidad" )
prob <- pnorm(q = 190, mean = media.estatura.f, sd = desv.std.estatura.f, lower.tail = FALSE)
paste("La probabilidad de encontrar a una persona femenino que tenga una estatura mayor o igual de 190 de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona femenino que tenga una estatura mayor o igual de 190 de: 0.0062 %"
plotDist("norm", mean = media.estatura.f, sd = desv.std.estatura.f, groups = x >= 160 & x <= 170, type = "h", xlab = "Estatura Mujeres", ylab = "Densidad" )
prob <- pnorm(q = 170, mean = media.estatura.f, sd = desv.std.estatura.f) - pnorm(q = 160, mean = media.estatura.f, sd = desv.std.estatura.f)
paste("La probabilidad de encontrar a una persona femenino que tenga una estatura entre 160 y 170 centímeros de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona femenino que tenga una estatura entre 160 y 170 centímeros de: 55.5039 %"
plotDist("norm", mean = media.estatura.f, sd = desv.std.estatura.f, groups = x >= 190 & x <= 195, type = "h", xlab = "Estatura Mujeres", ylab = "Densidad" )
prob <- pnorm(q = 195, mean = media.estatura.f, sd = desv.std.estatura.f) - pnorm(q = 190, mean = media.estatura.f, sd = desv.std.estatura.f)
paste("La probabilidad de encontrar a una persona femenino que tenga una estatura entre 190 y 195 centímeros es de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona femenino que tenga una estatura entre 190 y 195 centímeros es de: 0.006 %"
plotDist("norm", mean = mean(datos$estatura), sd = sd(datos$estatura), groups = x >= 160 & x <= 170, type = "h", xlab = "Estatura Hombres y Mujeres", ylab = "Densidad" )
prob <- pnorm(q = 170, mean = mean(datos$estatura), sd = sd(datos$estatura)) - pnorm(q = 160, mean = mean(datos$estatura), sd = sd(datos$estatura))
paste("La probabilidad de encontrar a una persona femenino que tenga una estatura entre 190 y 195 centímeros es de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona femenino que tenga una estatura entre 190 y 195 centímeros es de: 33.3526 %"
EJERCICIO #2
Los sueldos mensuales en una empresa siguen una distribución normal con media de 1200 soles, y desviación estándar de 200 soles. ¿Qué porcentaje de trabajadores ganan entre 1000 y 1550 soles?(matemovil, n.d.)
media <- 1200
desv.stadandar <- 200
plotDist("norm", mean = media, sd = desv.stadandar, groups = x >= 1000 & x <= 1550, type = "h", xlab = "Ganancias de trabajadores en soles", ylab = "Densidad" )
prob <- pnorm(q = 1550, mean = media, sd = desv.stadandar) - pnorm(q = 1000, mean = media, sd = desv.stadandar)
paste("El porcentaje de que una persona gane entre 1000 y 1550 soles es de:", round(prob * 100, 4), "%")
## [1] "El porcentaje de que una persona gane entre 1000 y 1550 soles es de: 80.1286 %"
En este caso numero 20 trabajamos con el tema de distribucion normal, el cual es algo similar al tema anterior, se nos pide al igaul que en anteriores casos calcularar probabilidades, en las cuales obtuvimos los siguientes resultados:
En el Ejercicio #1: estamos buscando lo que son las mediciones del cuerpo humano y estas son la estatura y el peso, para esto nos piden que encontremos lo siguiente:
En el Ejercicio #2: se pide encontral el porcentaje de trabajadores ganan entre 1000 y 1550 soles