R Markdown

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

Including Plots

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.