This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
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)
## Loading required package: lattice
## Loading required package: ggformula
## Loading required package: ggplot2
## Loading required package: ggstance
##
## 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
## 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)
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 |
datos$genero <- as.factor(datos$genero)
#VER ESTADISTICOS
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"))
#Filtrar masculinos y femeninos
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
#Calculando estadísticos de masculinos y femeninos peso
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
#Calculando estadísticos de masculinos y femeninos 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)
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
#Calcular probabilidades PESO
#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
1 - pnorm(q = 60, mean = media.peso.m, sd = desv.std.peso.m)
## [1] 0.9578202
#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
#3. ¿Cual es la probabilidad de elegir a una persona al azar que sea varón masculinos y que pese menos de 75 kilos?
plotDist("norm", mean = media.peso.m, sd = desv.std.peso.m, groups =x<75, type = "h", xlab = "Peso Hombres", ylab = "Densidad" )
pnorm(q = 75, mean = media.peso.m, sd = desv.std.peso.m, )
## [1] 0.3824272
#4. ¿Cual es la probabilidad de elegir a una persona al azar que sea mujer femeninos y que pese mas de 55 kilos?
plotDist("norm", mean = media.peso.f, sd = desv.std.peso.f, groups = x > 55, type = "h", xlab = "Peso Mujeres", ylab = "Densidad" )
pnorm(q = 55, mean = media.peso.f, sd = desv.std.peso.f, lower.tail = FALSE)
## [1] 0.7198584
#5. ¿Cual es la probabilidad de elegir a una persona al azar que sea mujer femeninos y que pese entre 50 y 60 kilos?
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
#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
#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
#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
#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
pnorm(q = 170, mean = media.estatura.m, sd = desv.std.estatura.m, )
## [1] 0.1404736
#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
#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 = "Peso 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
#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
pnorm(q = 155, mean = media.estatura.f, sd = desv.std.estatura.f, )
## [1] 0.06571769
You can also embed plots, for example:
Note that the echo = FALSE
parameter was added to the code chunk to prevent printing of the R code that generated the plot.