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)
*Cargar 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)
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 = "red")
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)
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" )
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 %"
Graficar la función en donde x<=50
Grafíca de desidad
plotDist("norm", mean = media.peso.f, sd = desv.std.peso.f, groups = x <= 50, type = "h", xlab = "Peso Mujeres", ylab = "Densidad" )
prob <- pnorm(q = 50, 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: 13.5143 %"
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 %"
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 160 y 170 centímeros es de:", round(prob * 100,4), "%")
## [1] "La probabilidad de encontrar a una persona femenino que tenga una estatura entre 160 y 170 centímeros es de: 33.3526 %"
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" )
Cálculo de la probabilidad * ¿Qué porcentaje de trabajadores ganan entre 1000 y 1550 soles?
prob <- pnorm(q = 1550, mean = media, sd = desv.stadandar) - pnorm(q = 1000, mean = media, sd = desv.stadandar)
paste("La probabilidad de que una persona gane entre 1000 y 1550 soles es de:", round(prob * 100, 4), "%")
## [1] "La probabilidad de que una persona gane entre 1000 y 1550 soles es de: 80.1286 %"
En el caso 20 se hablará sobre la distribución normal, los valores de la curva de densidad y las gráficas, empezaremos con 2 ejercicios:
Ejercicio 1: Trata sobre un grupo de personas con estatura, peso y géneros diferentes y en las diferentes graficas y diagramas como lo es la primera que es el diagrama de dispersión del peso, en donde cada punto es una persona con peso de entre 40 a 120 kg, al igual que en el de estatura, después se crearan los datos para poder realizar las probabilidades siguientes: A) ¿Cuál es la probabilidad de encontrar a una persona masculino que pese menor o igual de 60 kilogramos? Y como necesitamos encontrar el peso masculino que sea menor de 60 en la variable q le ponemos el resultado como 60. Y dicha probabilidad es del 4.2%. B) ¿Cuál es la probabilidad de encontrar a una persona femenino que pese menor o igual de 50 kilogramos? Igual que en el anterior, pero tomando la media del peso, pero de mujeres al igual que la desviación estándar la probabilidad es del 13.5%. C) ¿Cuál es la probabilidad de encontrar a una persona masculino que tenga una estatura mayor o igual de 180 centímetros? Sacaremos la grafica para dicha probabilidad y es muy útil ya que con la grafica se da uno la idea, la probabilidad es del 37.6%. D) ¿Cuál es la probabilidad de encontrar a una persona masculino que tenga una estatura mayor o igual de 190 centímetros? La función seria cuando x>=190, la probabilidad es del 4.4% de encontrar a la persona masculina con estatura mayor o igual de 190. E) ¿Cuál es la probabilidad de encontrar a una persona masculino que tenga una estatura entre 160 y 170 centímetros? La probabilidad es del 13.37% F) ¿Cuál es la probabilidad de encontrar a una persona masculino que tenga una estatura entre 190 y 195 centímetros? La probabilidad es del 3.58%. G) ¿Cuál es la probabilidad de encontrar a una persona femenino que tenga una estatura mayor o igual de 180 centímetros? La probabilidad es de apenas 1.04%. H) ¿Cuál es la probabilidad de encontrar a una persona femenino que tenga una estatura mayor o igual de 190 centímetros? Esta bastante difícil para que encuentre una persona femenina con dicha estatura, la probabilidad es del 0.0062%. I) ¿Cuál es la probabilidad de encontrar a una persona femenino que tenga una estatura entre 160 y 170 centímetros? La probabilidad es del 55.5%. J) ¿Cuál es la probabilidad de encontrar a una persona femenino que tenga una estatura entre 190 y 195 centímetros? También es muy poco probable, es del 0.006% Y, Por último, K) ¿Cuál es la probabilidad de encontrar a una persona masculino o femenino que tenga una estatura entre 160 y 170 centímetros? Y es de 33.35%.
Ejercicio 2: Trata sobre los sueldos mensuales que la empresa sigue una distribución normal con media de 1200 soles y desviación estándar de 200 soles. La pregunta es ¿Qué porcentaje de trabajadores ganan entre 1000 y 1550 soles? Y como se crean los datos a partir de los que nos están dando, la probabilidad es del 80.12% de que la persona gane entre 1000 a 1550 soles