En la referencia estadística se conoce como muestreo a la técnica para la selección de una muestra a partir de una población estadística.
Al elegir una muestra aleatoria se espera conseguir que sus propiedades sean extrapolables a la población. Este proceso permite ahorrar recursos, y a la vez obtener resultados parecidos a los que se alcanzarían si se realizase un estudio de toda la población. En las investigaciones llevadas por empresarios y de la medicina se usa muestreo extensivamente en recoger información sobre poblaciones.
Cabe mencionar que para que el muestreo sea válido y se pueda realizar un estudio adecuado (que consienta no solo hacer estimaciones de la población sino estimar también los márgenes de error correspondientes a dichas estimaciones), debe cumplir ciertos requisitos. Nunca podremos estar enteramente seguros de que el resultado sea una muestra representativa, pero sí podemos actuar de manera que esta condición se alcance con una probabilidad alta.
En el muestreo, si el tamaño de la muestra es más pequeño que el tamaño de la población, se puede extraer dos o más muestras de la misma población. Al conjunto de muestras que se pueden obtener de la población se denomina espacio muestral. La variable que asocia a cada muestra su probabilidad de extracción, sigue la llamada distribución muestral.
Para lo cual usaremos datos de crímenes
crime <- data.frame(crimtab)
Para conocer la dimensiones
dim(crime)
## [1] 924 3
Selección de la muestra * Muestreo Aleatorio Simple (M.A.S.) Tomar una muestra de 30 de la población
n <- 30
muestramia <- sample(1:nrow(crime),size=n, replace = FALSE)
muestramia
## [1] 831 47 411 270 272 883 719 682 400 213 418 751 382 396 609 759 479 462 341
## [20] 40 276 247 793 66 192 36 385 623 792 96
Asignar los elementos de la muestra al marco de datos
crimemuestramia <- crime[muestramia, ]
head(crimemuestramia)
## Var1 Var2 Freq
## 831 12.6 190.5 0
## 47 9.8 144.78 0
## 411 12.6 165.1 1
## 270 11.1 157.48 22
## 272 11.3 157.48 10
## 883 9.4 195.58 0
Ahora usamos tidyverse
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
#Muestra sin remplazo
crimemuestramia2 <- crime %>%
sample_n(size=n, replace=FALSE)
head(crimemuestramia2)
## Var1 Var2 Freq
## 1 13.5 154.94 0
## 2 9.9 160.02 0
## 3 10.5 172.72 0
## 4 11.1 167.64 24
## 5 10.6 185.42 0
## 6 13.3 167.64 0
crimemuestramia3 <- crime %>%
sample_n(size = n, weight = Freq)
head(crimemuestramia3)
## Var1 Var2 Freq
## 1 12.2 162.56 5
## 2 11.1 157.48 22
## 3 11.5 167.64 38
## 4 11.2 154.94 7
## 5 11.3 165.1 39
## 6 11.5 165.1 57
crimenes <- data.frame(crimtab)
n <- 50
crime <- sample(1:nrow(crimenes), size=n, replace=FALSE )
crime
## [1] 129 741 137 521 742 385 752 645 856 828 267 78 660 119 479 295 586 258 11
## [20] 422 623 650 219 755 779 511 570 726 646 269 778 134 551 72 600 99 588 845
## [39] 760 159 340 443 805 543 164 268 583 61 903 141
crimes <- crimenes[crime,]
head(crimes)
## Var1 Var2 Freq
## 129 9.6 149.86 0
## 741 12 185.42 0
## 137 10.4 149.86 1
## 521 11 172.72 6
## 742 12.1 185.42 0
## 385 10 165.1 1
Entonces se va a muestrear una fracción de 0.04 de la población (4%) que representa 6 flores que se muestrearon 100% al azar
library(dplyr)
crime.pesos <- crimenes %>%
sample_frac(0.04)
head(crime.pesos); dim(crime.pesos)
## Var1 Var2 Freq
## 1 12.4 165.1 2
## 2 9.6 162.56 0
## 3 11.6 170.18 38
## 4 11.9 185.42 0
## 5 11 170.18 10
## 6 10.5 177.8 0
## [1] 37 3
Referencia de los datos usados: https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/iris.html
Esta base de datos tiene 150 filas y 5 columnas de 3 especies de flores de lirio llamadas: Setosa, Virginica y Versicolor.
Para conocer las dimensiones de estos datos se usa “dim”
dim(iris)
## [1] 150 5
Para conocer los primeros elementos de la base de datos:
head(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
levels(as.factor(iris$Species))
## [1] "setosa" "versicolor" "virginica"
lirios <- iris
lirios$id <- 1:150
lirios[1:5, 4:6]
## Petal.Width Species id
## 1 0.2 setosa 1
## 2 0.2 setosa 2
## 3 0.2 setosa 3
## 4 0.2 setosa 4
## 5 0.2 setosa 5
set.seed(20170704)
sample(lirios$id, size=6, replace = FALSE )
## [1] 142 125 81 101 82 41
set.seed(20170704)
sample(lirios$id, size=30, replace = TRUE )
## [1] 142 125 81 101 82 41 80 110 131 116 62 56 92 28 125 59 102 23 76
## [20] 23 49 75 149 98 56 72 135 69 57 101
set.seed(20170701)
x <- 1:7 ; x
## [1] 1 2 3 4 5 6 7
sample(x, size= 6,
replace= FALSE)
## [1] 7 1 6 3 4 5
set.seed(1)
sample_iris <- iris %>%
group_by(Species) %>%
sample_n(10)
sample_iris
## # A tibble: 30 x 5
## # Groups: Species [3]
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## <dbl> <dbl> <dbl> <dbl> <fct>
## 1 4.6 3.1 1.5 0.2 setosa
## 2 4.4 3 1.3 0.2 setosa
## 3 5.1 3.5 1.4 0.2 setosa
## 4 5.5 4.2 1.4 0.2 setosa
## 5 4.6 3.6 1 0.2 setosa
## 6 4.4 3.2 1.3 0.2 setosa
## 7 4.3 3 1.1 0.1 setosa
## 8 5.1 3.5 1.4 0.3 setosa
## 9 5.2 4.1 1.5 0.1 setosa
## 10 5.4 3.4 1.7 0.2 setosa
## # ... with 20 more rows
setwd("~/VERANOPYE")
library(readxl)
datos <- read_excel("busquedas.xlsx")
boxplot(datos$cubrebocas ~ datos$covid, col="pink" )
cor(datos)
## cubrebocas covid
## cubrebocas 1.0000000 0.8818728
## covid 0.8818728 1.0000000
pairs(datos)
Prueba de normalidad de shapiro-wilk
Para covid
shapiro.test(datos$covid)
##
## Shapiro-Wilk normality test
##
## data: datos$covid
## W = 0.65431, p-value = 8.358e-10
shapiro.test(datos$cubrebocas)
##
## Shapiro-Wilk normality test
##
## data: datos$cubrebocas
## W = 0.70283, p-value = 5.867e-09
hist(datos$covid)
*Se rechaza la hipótesis nula dado que los datos no son normales