21/07/25
Abstract
La teoría mencionada puede revisarse en el capítulo 2 de mis notas de clase que aparecen en el siguiente documento: 1.1. Estadística básica. En Rpubs:: toc se pueden ver otros documentos de posible interés.
En R podemos encontrar diversas funciones para ello:
expand.grid
en el paquete base
de R.combn
en el paquete combinat
.Para nuestros cálculos, utilizaremos la función
expand.grid
. En este caso, creamos la siguientes CUATRO
funcione: tosscoin(n)
, rolldie(n)
,
isin()
y urnsamples()
. Se describirán a
continuación.
tosscoin(n)
La idea de esta función es generar el espacio muestral de lanzar una
moneda exactamente \(n\) veces, con
valores cara (H
) y sello (T
):
tosscoin <- function(n) {
df <- expand.grid(replicate(n, c("H", "T"), simplify = FALSE),
KEEP.OUT.ATTRS = FALSE,
stringsAsFactors = FALSE)
names(df) <- paste0("X", seq_len(n))
return(df)
}
rolldie(n)
Con ella se genera el espacio muestral al lanzar un dado exactamente \(n\) veces, con valores de 1 a 6 por lanzamiento.
rolldie <- function(n, sides = 6, makespace = FALSE) {
df <- expand.grid(replicate(n, 1:sides, simplify = FALSE),
KEEP.OUT.ATTRS = FALSE)
names(df) <- paste0("X", seq_len(n))
if (makespace) {
df$prob <- rep(1 / nrow(df), nrow(df)) # Agrega la columna de probabilidad
}
return(df)
}
NOTA: En esta función, makespace = TRUE
agregará una
columna de probabilidades (prob = 1/n) al espacio muestral, para
convertirlo en un “objeto tipo espacio de probabilidad”.
isin()
Con ella se verifica si ciertos valores están presentes en cada fila de una matriz o data frame. Se puede usar con o sin tener en cuenta el orden.
isin <- function(x, table, ordered = FALSE) {
# Si x es un vector, lo convertimos en una matriz con una sola fila
if (is.vector(x)) {
x <- matrix(x, nrow = 1)
}
# Validación
if (!is.data.frame(x) && !is.matrix(x)) stop("x debe ser un vector, data.frame o matriz")
# Aplicar fila por fila
apply(x, 1, function(row) {
row_vals <- as.character(row)
tab_vals <- as.character(table)
if (ordered) {
# Buscar subsecuencia exacta
len_row <- length(row_vals)
len_tab <- length(tab_vals)
if (len_tab > len_row) return(FALSE)
for (i in 1:(len_row - len_tab + 1)) {
if (all(row_vals[i:(i + len_tab - 1)] == tab_vals)) return(TRUE)
}
return(FALSE)
} else {
# Verificar si todos los valores de 'table' están presentes (sin importar orden)
all(tab_vals %in% row_vals)
}
})
}
urnsamples()
Esta función genera todas las muestras posibles de una urna según estos cuatro escenarios:
urnsamples <- function(x, size, ordered = TRUE, replace = FALSE) {
if (ordered) {
# Producto cartesiano
expand.grid(replicate(size, x, simplify = FALSE),
KEEP.OUT.ATTRS = FALSE)
} else {
# Combinaciones sin orden
combn(x, size, simplify = FALSE) |>
do.call(what = rbind)
}
}
Supongamos que tenemos una caja con tres (3) elementos, etiquetados con 1, 2 y 3, respectivamente y que vamos a seleccionar una muestra de tamaño 2 de la caja (con orden y con reemplazo).
urnsamples(1:3, size = 2, ordered = TRUE, replace = TRUE) #A) Con orden y con reemplazo
## Var1 Var2
## 1 1 1
## 2 2 1
## 3 3 1
## 4 1 2
## 5 2 2
## 6 3 2
## 7 1 3
## 8 2 3
## 9 3 3
Este experimento es equivalente a lanzar dos veces un dado de 3 caras, lo que podríamos haber logrado con:
rolldie (2, nsides = 3) #B) Dado de tres caras
Supongamos que tenemos una caja con tres (3) elementos, etiquetados con 1, 2 y 3, respectivamente y que vamos a seleccionar una muestra de tamaño 2 de la caja (con orden y sin reemplazo).
urnsamples(1:3, size = 2, ordered = TRUE, replace = FALSE) #C) Con orden y sin reemplazo
## Var1 Var2
## 1 1 1
## 2 2 1
## 3 3 1
## 4 1 2
## 5 2 2
## 6 3 2
## 7 1 3
## 8 2 3
## 9 3 3
Supongamos que tenemos una caja con tres (3) elementos, etiquetados con 1, 2 y 3, respectivamente y que vamos a seleccionar una muestra de tamaño 2 de la caja (sin orden y con reemplazo).
urnsamples(1:3, size = 2, ordered = FALSE, replace = TRUE) #D) Sin orden y con reemplazo
## [,1] [,2]
## [1,] 1 2
## [2,] 1 3
## [3,] 2 3
Supongamos que tenemos una caja con tres (3) elementos, etiquetados con 1, 2 y 3, respectivamente y que vamos a seleccionar una muestra de tamaño 2 de la caja (con orden y sin reemplazo).
urnsamples(1:3, size = 2, ordered = FALSE, replace = FALSE) #E) Sin orden y con reemplazo
## [,1] [,2]
## [1,] 1 2
## [2,] 1 3
## [3,] 2 3
Dado el experimento aleatorio, encuentre los elementos de \(\Omega\) (el espacio muestral), el número de elementos que contiene y el tamaño de la muestra. Debe utilizar las funciones de esta sección. Crear un nuevo documento R Markdown. Explique siempre sus afirmaciones y los códigos utilizados. Interprete los resultados hallados.
Una caja tiene 10 bolas. Se sacan 2 bolas:
Sin orden y sin reemplazo.
Con orden y sin reemplazo.
Sin orden y con reemplazo.
Con orden y con reemplazo.
De un total de 8 facturas diferentes, un gerente selecciona 5 con el fin de:
Ordenarlas en un lugar especifico de su escritorio.
Colocarlas en un lugar especifico de su escritorio.
Una urna contiene 7 fichas. ¿Cuáles y cuántas son las distintas maneras de seleccionar 2 fichas:
Sin orden y sin reemplazo.
Con orden y sin reemplazo.
Sin orden y con reemplazo.
Con orden y con reemplazo.
Formar un grupo de tamaño 5 de entre 12 personas.
Sentar 6 personas en un sofá que sólo tiene disponible 3 puestos.
Un consumidor ordena, por orden de preferencia, el sabor de 5 marcas de cerveza.
Formar números de 3 cifras sin repetición con los dígitos 8, 2, 5, 4 y 7.
Una pieza de un radio puede ser comprado de cualquiera de 6 proveedores. Se escogen 3 de los 6 proveedores.
IPSUR (Introduction to Probability and Statistics Using R): https://www.nongnu.org/ipsur/
LLinás, H.; Rojas, C., Estadística descriptiva y distribuciones de probabilidad. Barranquilla: Ediciones Uninorte, 2005.
If you found any ERRORS or have SUGGESTIONS, please report them to my email. Thanks.