Tenemos 845 empleados y debemos obtener una muestra de 52
Aplicamos entonces la funcion sample para encontrar valores aleatorios del 1 al 845 “sample(1:845, 52)” donde x son los puestos del 1 al 845 y n es 52, el tamaño de la muestra.
a. Conseguir listado ordenado de los N elementos de la población.
b. Determinar el tamaño de la muestra n.
c. Definir el tamaño del salto sistemático k, dado por \(k = \frac{N}{n}\).
d. Elegir el numero aleatorio entre 1 y k (ɑ = arranque aleatorio). Este numero permite obtener la primera unidad muestral.
e. A partir de la posición ɑ, dando un salto de k unidades, obtendremos la 2da unidad de la muestra \(u_{a} + k\), y de esta forma, saltando de k en k unidades, el resto de la muestra estará formada por \(u_a + 2k\), \(u_a + 3k,..., u_a + (1-n)k\) .
Ejemplo 2:
Con el fin de realizar una auditoría financiera a cierta EPS, se necesita calcular rápidamente el ingreso medio por venta del mes pasado. La división contable confirmó que se registraron 2.000 ventas y se almacenaron en el archivo. El equipo auditor decidió seleccionar 100 recibos para calcular el ingreso medio. Desarrollo
a. Conseguir listado ordenado de los \(N\) elementos de la población.
b. Determinar el tamaño de la muestra n.
\[
n=100
\]
c. Definir el tamaño del salto sistemático \(k\), dado por \(k = \frac{N}{n}\).
d. Elegir el numero aleatorio entre 1 y k (ɑ = arranque aleatorio). Este numero permite obtener la primera unidad muestral.
alpha<-sample(1:k,1)alpha
[1] 4
e. A partir de la posición ɑ, dando un salto de k unidades, obtendremos la 2da unidad de la muestra \(u_{a} + k\), y de esta forma, saltando de k en k unidades, el resto de la muestra estará formada por \(u_a + 2k\), \(u_a + 3k,..., u_a + (1-n)k\) .
Tenemos los recibos
Ejemplo 3:
El director de la Institución Educativa Santa Librada, esta interesado en saber la opinión de los padres de familia acerca de la estrategia “Aprendiendo en casa” con el propósito de mejorar el sistema de acompañamiento remoto con sus docentes. Se sabe que tiene un total de 148 padres de familia. El director no quiere aplicar la encuesta a todos, sino solo algunos (25%). Indique:
Aplicamos entonces los pasos dados
a. Conseguir listado ordenado de los N elementos de la población.
\[
N=148
\]
b. Determinar el tamaño de la muestra n.
\[ n=\frac{148*25}{100}=37 \]
c. Definir el tamaño del salto sistemático k, dado por \(k = \frac{N}{n}\).
\[
k=\frac{148}{37}=4
\]
porcentaje<-0.25n_2<-N_2*porcentajen_2
[1] 37
k_2<-N_2/n_2k_2
[1] 4
d. Elegir el numero aleatorio entre 1 y k (ɑ = arranque aleatorio). Este numero permite obtener la primera unidad muestral.
alpha_2<-sample(1:k_2,1)alpha_2
[1] 2
e. A partir de la posición ɑ, dando un salto de k unidades, obtendremos la 2da unidad de la muestra \(u_{a} + k\), y de esta forma, saltando de k en k unidades, el resto de la muestra estará formada por \(u_a + 2k\), \(u_a + 3k,..., u_a + (1-n)k\) .
3- MUESTREO POR ESTRATOS
Ejemplo 4:
Para analizar los gastos en publicidad de las 352 empresas más grandes de Estados Unidos. Suponga que el objetivo del estudio consiste en determinar si las empresas con altos rendimientos sobre el capital (una medida de rentabilidad), gastan en publicidad mayor parte del dinero ganado que las empresas con un registro de bajo rendimiento o déficit.
EJEMPLO
Para asegurar que la muestra sea una representación imparcial de las 352 empresas, éstas se deben agrupar de acuerdo con su rendimiento porcentual sobre el capital. La siguiente tabla incluye los estratos y las frecuencias relativas:
Estrato Probabilidad Frecuencia Frecuencia_Relativa Muestra
4 1 30% y más 8 0.02272727 1
8 2 20% a 30% 35 0.09943182 5
12 3 10% a 20% 189 0.53693182 27
16 4 0% a 10% 115 0.32670455 16
25 5 Déficit 5 0.01420455 1
---title: "Muestreo"author: "AC"format: html: self-contained: true code-tools: trueeditor: visual---```{=html}<style> /* Estilos para encabezados */ h1 { color: gray; font-size: 32px; } h2 { color: #3498db; /* Azul */ font-size: 28px; } h3 { color: #2ecc71; /* Verde */ font-size: 24px; } h4 { color: #e74c3c; /* Rojo */ font-size: 20px; } /* Restaurar color negro para el texto del cuerpo */ body, p { color: black !important; /* !important asegura que sobrescriba otros estilos */ }</style>``````{r, include=FALSE, warning=FALSE, message=FALSE}library(DT)library(writexl)```# Muestreo {style="color: blue"}## 1- MUESTREO ALEATORIO SIMPLE {style="color:black; font-size: 10px"}Realizado por medio de herramientas tecnologicas.### Ejemplo 1: {style="color:crimson; font-size: 5px"}Tenemos 845 empleados y debemos obtener una muestra de 52\```{r, echo=FALSE}# Crear el data frame con 845 filasn <- 1:845 # Columna 1: n, números del 1 al 845# Generar cédulas sintéticasset.seed(123) # Para reproducibilidad# Base inicial de la cédulacedula_base <- "111111111"# Generar variaciones cambiando un dígito aleatorio en cada filacedulas <- sapply(1:845, function(i) { # Convertir la cédula base a un vector de caracteres digitos <- strsplit(cedula_base, "")[[1]] # Seleccionar un dígito aleatorio para cambiar (posición entre 1 y 9) pos <- sample(1:9, 1) # Generar un nuevo dígito diferente al actual (0-9, excluyendo el dígito original) nuevo_digito <- sample(setdiff(0:9, as.numeric(digitos[pos])), 1) # Cambiar el dígito en la posición seleccionada digitos[pos] <- as.character(nuevo_digito) # Unir los dígitos para formar la nueva cédula paste(digitos, collapse = "")})# Crear el data framedf_cedulas <- data.frame( n = n, Cedula = cedulas)# Ver los primeros registros#head(df_cedulas)datatable( df_cedulas, rownames = FALSE, extensions = c("Buttons", "Scroller"), options = list( scrollX = TRUE, scrollY = "500px", scroller = TRUE, dom = "Bfrtip", buttons = c("copy", "csv", "excel") ))# Opcional: Exportar a Excel#write_xlsx(df_cedulas, "cedulas_sinteticas.xlsx")```Aplicamos entonces la funcion sample para encontrar valores aleatorios del 1 al 845 "sample(1:845, 52)" donde x son los puestos del 1 al 845 y n es 52, el tamaño de la muestra.```{r, echo=FALSE}# Función para seleccionar 52 cédulas aleatoriasseleccionar_cedulas_aleatorias <- function(df, n = 52) { # Verificar que el número solicitado no exceda el total de filas if (n > nrow(df)) { stop("El número solicitado excede el total de filas en el data frame.") } # Seleccionar aleatoriamente n filas df_aleatorio <- df[sample(nrow(df), n), ] # Retornar el nuevo data frame return(df_aleatorio)}sample(1:845,52)df_cedulas_aleatorias <- seleccionar_cedulas_aleatorias(df_cedulas)datatable( df_cedulas_aleatorias, rownames = FALSE, extensions = c("Buttons", "Scroller"), options = list( scrollX = TRUE, scrollY = "500px", scroller = TRUE, dom = "Bfrtip", buttons = c("copy", "csv", "excel") ))```## 2- MUESTREO ALEATORIO SISTEMATICO {style="color:navy; font-size: 10px"}a\. Conseguir listado ordenado de los N elementos de la población.b\. Determinar el tamaño de la muestra n.c\. Definir el tamaño del salto sistemático k, dado por $k = \frac{N}{n}$.d\. Elegir el numero aleatorio entre 1 y k (ɑ = arranque aleatorio). Este numero permite obtener la primera unidad muestral.e\. A partir de la posición ɑ, dando un salto de k unidades, obtendremos la 2da unidad de la muestra $u_{a} + k$, y de esta forma, saltando de k en k unidades, el resto de la muestra estará formada por $u_a + 2k$, $u_a + 3k,..., u_a + (1-n)k$ .\### Ejemplo 2: {style="color:crimson; font-size: 5px"}Con el fin de realizar una auditoría financiera a cierta EPS, se necesita calcular rápidamente el ingreso medio por venta del mes pasado. La división contable confirmó que se registraron 2.000 ventas y se almacenaron en el archivo. El equipo auditor decidió seleccionar 100 recibos para calcular el ingreso medio. Desarrolloa\. Conseguir listado ordenado de los $N$ elementos de la población.```{r, echo=FALSE}# Crear el data frame con 2000 filasn<-2000n_v <- 1:n # Columna 1: n, números del 1 al 2000recibos<-cbind.data.frame(n_v,sample(3000:120000, 2000))colnames(recibos)<-c("Cod_recibo","Ventas")recibos_ordenados <- recibos[order(recibos$Cod_recibo), ]datatable( recibos_ordenados, rownames = FALSE, extensions = c("Buttons", "Scroller"), options = list( scrollX = TRUE, scrollY = "500px", scroller = TRUE, dom = "Bfrtip", buttons = c("copy", "csv", "excel") ))# Opcional: Exportar a Excel#write_xlsx(df_cedulas, "cedulas_sinteticas.xlsx")```\b. Determinar el tamaño de la muestra n.$$n=100$$c\. Definir el tamaño del salto sistemático $k$, dado por $k = \frac{N}{n}$.$$k=\frac{2000}{100}=20$$```{r}N<-length(recibos_ordenados$Cod_recibo)n<-100k<-N/nk```d\. Elegir el numero aleatorio entre 1 y k (ɑ = arranque aleatorio). Este numero permite obtener la primera unidad muestral.```{r}alpha<-sample(1:k,1)alpha```e\. A partir de la posición ɑ, dando un salto de k unidades, obtendremos la 2da unidad de la muestra $u_{a} + k$, y de esta forma, saltando de k en k unidades, el resto de la muestra estará formada por $u_a + 2k$, $u_a + 3k,..., u_a + (1-n)k$ .Tenemos los recibos```{r,echo=FALSE}#c(alpha+k*seq(1:n-1)) Cod_recibo<-c(alpha,alpha+k*seq(2:n-1)) # Convertir Cod_recibo a un data frame para el merge Cod_recibo_df <- data.frame(Cod_recibo = Cod_recibo) # Realizar el cruce (join) entre los nuevos códigos y recibos_ordenados # Usar un inner join para coincidir solo los Cod_recibo existentes recibos_muestra <- merge(Cod_recibo_df, recibos_ordenados, by = "Cod_recibo", all.x = FALSE)datatable( recibos_muestra, rownames = FALSE, extensions = c("Buttons", "Scroller"), options = list( scrollX = TRUE, scrollY = "500px", scroller = TRUE, dom = "Bfrtip", buttons = c("copy", "csv", "excel") ))```### Ejemplo 3: {style="color:crimson; font-size: 5px"}El director de la Institución Educativa Santa Librada, esta interesado en saber la opinión de los padres de familia acerca de la estrategia "Aprendiendo en casa" con el propósito de mejorar el sistema de acompañamiento remoto con sus docentes. Se sabe que tiene un total de 148 padres de familia. El director no quiere aplicar la encuesta a todos, sino solo algunos (25%). Indique:Aplicamos entonces los pasos dadosa\. Conseguir listado ordenado de los N elementos de la población.```{r, echo=FALSE}# Crear el data frame con N filasN_2<-148n_v2 <- 1:N_2 # Columna 1: n, números del 1 al NCedulas_padres<-cbind.data.frame(n_v2,sample(80000000:2000000000, N_2))colnames(Cedulas_padres)<-c("Cod_padre","Cedula")#recibos_ordenados <- recibos[order(recibos$Cod_recibo), ]datatable( Cedulas_padres, rownames = FALSE, extensions = c("Buttons", "Scroller"), options = list( scrollX = TRUE, scrollY = "500px", scroller = TRUE, dom = "Bfrtip", buttons = c("copy", "csv", "excel") ))# Opcional: Exportar a Excel```$$N=148$$b\. Determinar el tamaño de la muestra n.$$ n=\frac{148*25}{100}=37 $$c\. Definir el tamaño del salto sistemático k, dado por $k = \frac{N}{n}$.$$k=\frac{148}{37}=4$$```{r}porcentaje<-0.25n_2<-N_2*porcentajen_2k_2<-N_2/n_2k_2```d\. Elegir el numero aleatorio entre 1 y k (ɑ = arranque aleatorio). Este numero permite obtener la primera unidad muestral.```{r}alpha_2<-sample(1:k_2,1)alpha_2```e\. A partir de la posición ɑ, dando un salto de k unidades, obtendremos la 2da unidad de la muestra $u_{a} + k$, y de esta forma, saltando de k en k unidades, el resto de la muestra estará formada por $u_a + 2k$, $u_a + 3k,..., u_a + (1-n)k$ .```{r, echo=FALSE}#c(alpha+k*seq(1:n-1)) Codigo<-c(alpha_2,alpha_2+k_2*seq(1:n_2-2)) # Convertir Cod_recibo a un data frame para el merge Codigo_df <- data.frame(Cod_padre = Codigo) # Realizar el cruce (join) entre los nuevos códigos y recibos_ordenados # Usar un inner join para coincidir solo los Cod_recibo existentes Cedula_muestra_padres <- merge(Codigo_df, Cedulas_padres, by = "Cod_padre", all.x = FALSE)datatable( Cedula_muestra_padres, rownames = FALSE, extensions = c("Buttons", "Scroller"), options = list( scrollX = TRUE, scrollY = "500px", scroller = TRUE, dom = "Bfrtip", buttons = c("copy", "csv", "excel") ))```## 3- MUESTREO POR ESTRATOS {style="color:navy; font-size: 10px"}### Ejemplo 4: {style="color:crimson; font-size: 5px"}Para analizar los gastos en publicidad de las 352 empresas más grandes de Estados Unidos. Suponga que el objetivo del estudio consiste en determinar si las empresas con altos rendimientos sobre el capital (una medida de rentabilidad), gastan en publicidad mayor parte del dinero ganado que las empresas con un registro de bajo rendimiento o déficit.EJEMPLOPara asegurar que la muestra sea una representación imparcial de las 352 empresas, éstas se deben agrupar de acuerdo con su rendimiento porcentual sobre el capital. La siguiente tabla incluye los estratos y las frecuencias relativas:\```{r, echo=FALSE}# Definir los estratos y las categorías de probabilidadestratos <- 1:5categorias <- c("30% y más", "20% a 30%", "10% a 20%", "0% a 10%", "Déficit")# Definir el número de registros por estratoregistros_por_estrato <- c(8, 35, 189, 115, 5)# Calcular el total de registrostotal_registros <- sum(registros_por_estrato)# Generar los códigos de empresacodigo_empresa <- 1:total_registros# Generar el vector de estratosestrato <- rep(estratos, times = registros_por_estrato)# Generar el vector de probabilidadprobabilidad <- rep(categorias, times = registros_por_estrato)# Crear el data framedf_empresas <- data.frame( "Código de la Empresa" = codigo_empresa, "Estrato" = estrato, "Probabilidad" = probabilidad)# Mostrar los primeros registros#head(df_empresas) df_head<-df_empresas frecuencias_abs <- table(df_head$Estrato, df_head$Probabilidad) # Convertir a data frame frecuencias_df <- as.data.frame(frecuencias_abs) colnames(frecuencias_df) <- c("Estrato", "Probabilidad", "Frecuencia") # Calcular frecuencias relativas frecuencias_rel <- prop.table(frecuencias_abs) frecuencias_rel_df <- as.data.frame(frecuencias_rel) colnames(frecuencias_rel_df) <- c("Estrato", "Probabilidad", "Frecuencia_Relativa") # Combinar frecuencias absolutas y relativas tabla_final <- merge(frecuencias_df, frecuencias_rel_df, by = c("Estrato", "Probabilidad")) # Filtrar para excluir frecuencias de 0 tabla_final <- tabla_final[tabla_final$Frecuencia > 0, ] tabla_final <-cbind.data.frame(tabla_final, Muestra=round((tabla_final$Frecuencia_Relativa)*50 ,0))tabla_final``````{r}datatable( df_empresas ,rownames =FALSE,extensions =c("Buttons", "Scroller"),options =list(scrollX =TRUE,scrollY ="500px",scroller =TRUE,dom ="Bfrtip",buttons =c("copy", "csv", "excel") ))```