hllinas2023

1 Paquetes

En R podemos encontrar diversas funciones para ello:

  • expand.grid en el paquete base de R.
  • combn en el paquete combinat.

2 Funciones

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.

2.0.1 Funció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)
}

2.0.2 Función 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”.

2.0.3 Función 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)
    }
  })
}

2.0.4 Función urnsamples()

Esta función genera todas las muestras posibles de una urna según estos cuatro escenarios:

  • x: Representa la urna desde la cual se va a hacer el muestreo.
  • size: Tamaño de la muestra.
  • replace: TRUE, si es con reemplazo; y FALSE, sin reemplazo.
  • ordered: TRUE, si es con orden; y FALSE, sin orden.
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)
  }
}

3 Muestreo con orden y con reemplazo

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

4 Muestreo con orden y sin reemplazo

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

5 Muestreo sin orden y con reemplazo

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

6 Muestreo sin orden y sin reemplazo

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

7 Ejercicios

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.

  1. Una caja tiene 10 bolas. Se sacan 2 bolas:

    1. Sin orden y sin reemplazo.

    2. Con orden y sin reemplazo.

    3. Sin orden y con reemplazo.

    4. Con orden y con reemplazo.

  2. De un total de 8 facturas diferentes, un gerente selecciona 5 con el fin de:

    1. Ordenarlas en un lugar especifico de su escritorio.

    2. Colocarlas en un lugar especifico de su escritorio.

  3. Una urna contiene 7 fichas. ¿Cuáles y cuántas son las distintas maneras de seleccionar 2 fichas:

    1. Sin orden y sin reemplazo.

    2. Con orden y sin reemplazo.

    3. Sin orden y con reemplazo.

    4. Con orden y con reemplazo.

  4. Formar un grupo de tamaño 5 de entre 12 personas.

  5. Sentar 6 personas en un sofá que sólo tiene disponible 3 puestos.

  6. Un consumidor ordena, por orden de preferencia, el sabor de 5 marcas de cerveza.

  7. Formar números de 3 cifras sin repetición con los dígitos 8, 2, 5, 4 y 7.

  8. Una pieza de un radio puede ser comprado de cualquiera de 6 proveedores. Se escogen 3 de los 6 proveedores.

8 Enlaces y materiales de ayuda

  1. IPSUR (Introduction to Probability and Statistics Using R): https://www.nongnu.org/ipsur/

  2. 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.