library(dplyr)
## Warning: package 'dplyr' was built under R version 3.6.3
##
## 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 3.6.3
## Loading required package: lattice
## Loading required package: ggformula
## Warning: package 'ggformula' was built under R version 3.6.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 3.6.3
## Loading required package: ggstance
## Warning: package 'ggstance' was built under R version 3.6.3
##
## Attaching package: 'ggstance'
## The following objects are masked from 'package:ggplot2':
##
## geom_errorbarh, GeomErrorbarh
##
## New to ggformula? Try the tutorials:
## learnr::run_tutorial("introduction", package = "ggformula")
## learnr::run_tutorial("refining", package = "ggformula")
## Loading required package: mosaicData
## Warning: package 'mosaicData' was built under R version 3.6.3
## Loading required package: Matrix
## 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.
##
## Note: If you use the Matrix package, be sure to load it BEFORE loading mosaic.
##
## Have you tried the ggformula package for your plots?
##
## 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) # Para gráficos
library(knitr) # Para formateo de datos
## Warning: package 'knitr' was built under R version 3.6.3
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")
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 |
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
ggplot(datos, aes(genero, peso)) +
geom_boxplot(colour = c("deeppink", "dodgerblue4"))
ggplot(datos, aes(genero, estatura)) +
geom_boxplot(colour = c("deeppink", "dodgerblue4"))
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
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
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
####1. ¿Cual es la probabilidad de elegir a una persona al azar que sea varón masculinosy 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
Se requieren los datos de masculinos Visulizando la curva de campana
plotDist("norm", mean = mean(masculinos$peso), sd = sd(masculinos$peso), groups = x > 70 & x<80 , type = "h")
pnorm(q = 70 & 80, mean = media.peso.m, sd = desv.std.peso.m, lower.tail = FALSE)
## [1] 1
1 - pnorm(q = 70 & 80, mean = media.peso.m, sd = desv.std.peso.m)
## [1] 1
*Calculando la probabilidad
Se requieren los datos de masculinos Visulizando la curva de campana
plotDist("norm", mean = mean(masculinos$peso), sd = sd(masculinos$peso), groups = x < 75 , type = "h")
1 - pnorm(q = 75, mean = media.peso.m, sd = desv.std.peso.m)
## [1] 0.6175728
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
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 = 50 & 60, mean = media.peso.f, sd = desv.std.peso.f, lower.tail = FALSE)
## [1] 1
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, lower.tail = FALSE)
## [1] 0.9476397
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")
pnorm(q = 165, mean = media.estatura.m, sd = desv.std.estatura.m, lower.tail = FALSE)
## [1] 0.9619867
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 = 175 & 185, mean = media.estatura.m, sd = desv.std.estatura.m, lower.tail = FALSE)
## [1] 1
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
pnorm(q = 170, mean = media.estatura.m, sd = desv.std.estatura.m, lower.tail = FALSE)
## [1] 0.8595264
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
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 = 165 & 170, mean =media.estatura.f, sd = desv.std.estatura.f, lower.tail = FALSE)
## [1] 1
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