Objetivo

Aplicar técnicas de conteo con diversos datos utilizando permutaciones y combinaciones para su adecuada interpretación.

Descripción

Se aplican las técnicas de permutaciones y combinaciones con un conjunto de nombres de personas.

Se inicializa el vector de nombres y se generan el espacio muestral, rimero con permutaciones y luego con combinaciones.

Se muestra el conjunto del espacio muestral S y sus elementos.

Desarrollo

Cargar librerías Las librerías fueron previamente instaladas con

install.packages(“gtools”) e install.packages(“knitr”). La librería gtools permite generar combinaciones y permutaciones y la librería knitr a parte de importar imágenes visualiza los conjuntos de datos de manera amigable.

library(gtools)
library(knitr)
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.0.4
## 
## 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

Construir los datos

El vector personas son los nombres de personas que participan en las combinaciones y permutaciones. Se utiliza el vector personas.agregadas para incluir a más personas como elementos del conjunto de datos pesonas.

personas <- c("Juan", "Paty", "Laura", "Oscar", "Aracely")

personas.agregadas <- c("Javier", "María", "Rubén", "Fernando", "Adriana")

personas <- c(personas,personas.agregadas)
personas
##  [1] "Juan"     "Paty"     "Laura"    "Oscar"    "Aracely"  "Javier"  
##  [7] "María"    "Rubén"    "Fernando" "Adriana"
n <- length(personas) # debe ser 10 
n
## [1] 10

Permutaciones

Para las permutaciones al igual que las combinaciones se utiliza la variable S para identificar a todos los elementos del espacio muestral. Siendo entonce S todos las combinaciones o permutaciones posibles según sea el caso a partir de los nombres de personas.

##Realizar Permutaciones con grupos de 3, 5 y 7

Permutaciones de 3

Se generan permutaciones en grupos de 3 en 3 a partir de los 10 nombres de personas.

El espacio muestral se almacena en la variable S y se utilizan las funciones head() y tail() para no mostrar todos los registros, y solo los primeros y últimos diez del espacio muestral.

grupos <- 3

S <- permutations(n = n,r = grupos, v=personas)
nrow(S)
## [1] 720
head(S, 10)
##       [,1]      [,2]       [,3]      
##  [1,] "Adriana" "Aracely"  "Fernando"
##  [2,] "Adriana" "Aracely"  "Javier"  
##  [3,] "Adriana" "Aracely"  "Juan"    
##  [4,] "Adriana" "Aracely"  "Laura"   
##  [5,] "Adriana" "Aracely"  "María"   
##  [6,] "Adriana" "Aracely"  "Oscar"   
##  [7,] "Adriana" "Aracely"  "Paty"    
##  [8,] "Adriana" "Aracely"  "Rubén"   
##  [9,] "Adriana" "Fernando" "Aracely" 
## [10,] "Adriana" "Fernando" "Javier"
tail(S, 10)
##        [,1]    [,2]    [,3]      
## [711,] "Rubén" "Oscar" "María"   
## [712,] "Rubén" "Oscar" "Paty"    
## [713,] "Rubén" "Paty"  "Adriana" 
## [714,] "Rubén" "Paty"  "Aracely" 
## [715,] "Rubén" "Paty"  "Fernando"
## [716,] "Rubén" "Paty"  "Javier"  
## [717,] "Rubén" "Paty"  "Juan"    
## [718,] "Rubén" "Paty"  "Laura"   
## [719,] "Rubén" "Paty"  "María"   
## [720,] "Rubén" "Paty"  "Oscar"

Responder a las preguntas.

Usando filter()

Para responder a las preguntas en permutaciones de grupos de 3, se utiliza la función filter() de la librería dplyr.

Antes de utilizar filter(), se debe convertir a data.frame el espacio muestral S. S <- data.frame(S).

Se le pone nombre a las columnas por medio de la función names() para mejor comprensión de las expresiones, names(S) <- c(“C1,” “C2,” “C3”).

S <- data.frame(S)
names(S) <- c("C1", "C2", "C3")
paste("¿En cuántos casos sale el nombre de “Laura” en la primera posición, en la primera columna [,1]?", nrow(filter(S, C1 == "Laura")))
## [1] "¿En cuántos casos sale el nombre de “Laura” en la primera posición, en la primera columna [,1]? 72"
paste("¿Cuántas ocasiones aparece “Aracely” en segundo lugar?, en la segunda columna [,2]?", nrow(filter(S, C2 == "Aracely")))
## [1] "¿Cuántas ocasiones aparece “Aracely” en segundo lugar?, en la segunda columna [,2]? 72"
paste("¿Cuántas permutaciones se generan?, nrow(), o cuántas observciones?, el último registro del espacio muestral.", nrow(S))
## [1] "¿Cuántas permutaciones se generan?, nrow(), o cuántas observciones?, el último registro del espacio muestral. 720"

Usando which()

Se pudo haber usado la función which() combinado con la función length()

paste("¿En cuántos casos sale el nombre de “Laura” en la primera posición, en la primera columna [,1]?", length(which(S[,1] == "Laura")))
## [1] "¿En cuántos casos sale el nombre de “Laura” en la primera posición, en la primera columna [,1]? 72"
paste("¿Cuántas ocasiones aparece “Aracely” en segundo lugar?, en la segunda columna [,2]?", length(which(S[,2] == "Aracely")))
## [1] "¿Cuántas ocasiones aparece “Aracely” en segundo lugar?, en la segunda columna [,2]? 72"
paste("¿Cuántas permutaciones se generan?, nrow(), o cuántas observciones?, el último registro del espacio muestral.", nrow(S))
## [1] "¿Cuántas permutaciones se generan?, nrow(), o cuántas observciones?, el último registro del espacio muestral. 720"

Usando subset()

También se puede usar la función subset() para filtrar y responder a las preguntas.

paste("¿En cuántos casos sale el nombre de “Laura” en la primera posición, en la primera columna [,1]?", nrow(subset(S, C1 == "Laura")))
## [1] "¿En cuántos casos sale el nombre de “Laura” en la primera posición, en la primera columna [,1]? 72"
paste("¿Cuántas ocasiones aparece “Aracely” en segundo lugar?, en la segunda columna [,2]?", nrow(subset(S, C2 == "Aracely")))
## [1] "¿Cuántas ocasiones aparece “Aracely” en segundo lugar?, en la segunda columna [,2]? 72"
paste("¿Cuántas permutaciones se generan?, nrow(), o cuántas observciones?, el último registro del espacio muestral.", nrow(S))
## [1] "¿Cuántas permutaciones se generan?, nrow(), o cuántas observciones?, el último registro del espacio muestral. 720"

Para responder a las preguntas de la interpretación que más adelante se hacen de este caso, se puede usar los bloques de código anteriores, se puede resolver las preguntas ya sea por medio de filter() o por medio de which() o por medio de subset(). Será decisión del lector usar alguna de ellas.

Permutaciones de 5

grupos <- 5
S <- permutations(n = n,r = grupos, v=personas)
nrow(S)
## [1] 30240
head(S, 10)
##       [,1]      [,2]      [,3]       [,4]     [,5]    
##  [1,] "Adriana" "Aracely" "Fernando" "Javier" "Juan"  
##  [2,] "Adriana" "Aracely" "Fernando" "Javier" "Laura" 
##  [3,] "Adriana" "Aracely" "Fernando" "Javier" "María" 
##  [4,] "Adriana" "Aracely" "Fernando" "Javier" "Oscar" 
##  [5,] "Adriana" "Aracely" "Fernando" "Javier" "Paty"  
##  [6,] "Adriana" "Aracely" "Fernando" "Javier" "Rubén" 
##  [7,] "Adriana" "Aracely" "Fernando" "Juan"   "Javier"
##  [8,] "Adriana" "Aracely" "Fernando" "Juan"   "Laura" 
##  [9,] "Adriana" "Aracely" "Fernando" "Juan"   "María" 
## [10,] "Adriana" "Aracely" "Fernando" "Juan"   "Oscar"
tail(S, 10)
##          [,1]    [,2]   [,3]    [,4]    [,5]      
## [30231,] "Rubén" "Paty" "Oscar" "Laura" "Fernando"
## [30232,] "Rubén" "Paty" "Oscar" "Laura" "Javier"  
## [30233,] "Rubén" "Paty" "Oscar" "Laura" "Juan"    
## [30234,] "Rubén" "Paty" "Oscar" "Laura" "María"   
## [30235,] "Rubén" "Paty" "Oscar" "María" "Adriana" 
## [30236,] "Rubén" "Paty" "Oscar" "María" "Aracely" 
## [30237,] "Rubén" "Paty" "Oscar" "María" "Fernando"
## [30238,] "Rubén" "Paty" "Oscar" "María" "Javier"  
## [30239,] "Rubén" "Paty" "Oscar" "María" "Juan"    
## [30240,] "Rubén" "Paty" "Oscar" "María" "Laura"

Permutaciones de 7

grupos <- 7
S <- permutations(n = n,r = grupos, v=personas)
nrow(S)
## [1] 604800
head(S, 10)
##       [,1]      [,2]      [,3]       [,4]     [,5]   [,6]    [,7]   
##  [1,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Laura" "María"
##  [2,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Laura" "Oscar"
##  [3,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Laura" "Paty" 
##  [4,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Laura" "Rubén"
##  [5,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "María" "Laura"
##  [6,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "María" "Oscar"
##  [7,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "María" "Paty" 
##  [8,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "María" "Rubén"
##  [9,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Oscar" "Laura"
## [10,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Oscar" "María"
tail(S, 10)
##           [,1]    [,2]   [,3]    [,4]    [,5]    [,6]       [,7]      
## [604791,] "Rubén" "Paty" "Oscar" "María" "Laura" "Fernando" "Javier"  
## [604792,] "Rubén" "Paty" "Oscar" "María" "Laura" "Fernando" "Juan"    
## [604793,] "Rubén" "Paty" "Oscar" "María" "Laura" "Javier"   "Adriana" 
## [604794,] "Rubén" "Paty" "Oscar" "María" "Laura" "Javier"   "Aracely" 
## [604795,] "Rubén" "Paty" "Oscar" "María" "Laura" "Javier"   "Fernando"
## [604796,] "Rubén" "Paty" "Oscar" "María" "Laura" "Javier"   "Juan"    
## [604797,] "Rubén" "Paty" "Oscar" "María" "Laura" "Juan"     "Adriana" 
## [604798,] "Rubén" "Paty" "Oscar" "María" "Laura" "Juan"     "Aracely" 
## [604799,] "Rubén" "Paty" "Oscar" "María" "Laura" "Juan"     "Fernando"
## [604800,] "Rubén" "Paty" "Oscar" "María" "Laura" "Juan"     "Javier"

Combinaciones

Se utiliza también la variable S para identificar al especio meustral o experimentos posibles en las combinaciones.

Realizar combinaciones con grupos de 4, 6 y 8

Combinaciones de 4

grupos <- 4
S <- combinations(n = n,r = grupos, personas)

head(S,10)
##       [,1]      [,2]      [,3]       [,4]    
##  [1,] "Adriana" "Aracely" "Fernando" "Javier"
##  [2,] "Adriana" "Aracely" "Fernando" "Juan"  
##  [3,] "Adriana" "Aracely" "Fernando" "Laura" 
##  [4,] "Adriana" "Aracely" "Fernando" "María" 
##  [5,] "Adriana" "Aracely" "Fernando" "Oscar" 
##  [6,] "Adriana" "Aracely" "Fernando" "Paty"  
##  [7,] "Adriana" "Aracely" "Fernando" "Rubén" 
##  [8,] "Adriana" "Aracely" "Javier"   "Juan"  
##  [9,] "Adriana" "Aracely" "Javier"   "Laura" 
## [10,] "Adriana" "Aracely" "Javier"   "María"
tail(S,10)
##        [,1]    [,2]    [,3]    [,4]   
## [201,] "Juan"  "Laura" "Paty"  "Rubén"
## [202,] "Juan"  "María" "Oscar" "Paty" 
## [203,] "Juan"  "María" "Oscar" "Rubén"
## [204,] "Juan"  "María" "Paty"  "Rubén"
## [205,] "Juan"  "Oscar" "Paty"  "Rubén"
## [206,] "Laura" "María" "Oscar" "Paty" 
## [207,] "Laura" "María" "Oscar" "Rubén"
## [208,] "Laura" "María" "Paty"  "Rubén"
## [209,] "Laura" "Oscar" "Paty"  "Rubén"
## [210,] "María" "Oscar" "Paty"  "Rubén"

Responder a las preguntas

filter()

Como en las permutaciones primero se convierte a data.frame el espacio muestral y se le incorpora nombres a las columnas para su mejor procesamiento y comprensión. names(S) <- c(“C1,” “C2,” “C3,” “C4”).

S <- data.frame(S)
names(S) <- c("C1", "C2", "C3", "C4")

res <- filter(S, (C1 == "Aracely" & C2 == "Laura") | (C2 == "Aracely" & C3 == "Laura") | (C3 == "Aracely" & C4 == "Laura"))

paste("¿En cuántas ocasiones se identifican los nombres de 'Aracely' y 'Laura' de manera contigua en ese orden 'Aracely, 'Laura'?", nrow(res))
## [1] "¿En cuántas ocasiones se identifican los nombres de 'Aracely' y 'Laura' de manera contigua en ese orden 'Aracely, 'Laura'? 10"
paste("¿Cuántas ocasiones aparece 'Aracely' en primer lugar?", nrow(filter(S,C1 == "Aracely") ))
## [1] "¿Cuántas ocasiones aparece 'Aracely' en primer lugar? 56"
paste("¿Cuántas combinaciones se generan en grupos de 4?", nrow(S))
## [1] "¿Cuántas combinaciones se generan en grupos de 4? 210"

which()

res <- which((S[,1] == "Aracely" & S[,2] == "Laura") | (S[,2] == "Aracely" & S[,3] == "Laura") | (S[,3] == "Aracely" & S[,4] == "Laura"))

paste("¿En cuántas ocasiones se identifican los nombres de 'Aracely' y 'Laura' de manera contigua en ese orden 'Aracely, 'Laura'?", length(res))
## [1] "¿En cuántas ocasiones se identifican los nombres de 'Aracely' y 'Laura' de manera contigua en ese orden 'Aracely, 'Laura'? 10"
paste("¿Cuántas ocasiones aparece 'Aracely' en primer lugar?", length(which(S[,1] == "Aracely") ))
## [1] "¿Cuántas ocasiones aparece 'Aracely' en primer lugar? 56"
paste("¿Cuántas combinaciones se generan en grupos de 4?", nrow(S))
## [1] "¿Cuántas combinaciones se generan en grupos de 4? 210"

subset()

res <- subset(S, (C1 == "Aracely" & C2 == "Laura") | (C2 == "Aracely" & C3 == "Laura") | (C3 == "Aracely" & C4 == "Laura"))

paste("¿En cuántas ocasiones se identifican los nombres de 'Aracely' y 'Laura' de manera contigua en ese orden 'Aracely, 'Laura'?", nrow(res))
## [1] "¿En cuántas ocasiones se identifican los nombres de 'Aracely' y 'Laura' de manera contigua en ese orden 'Aracely, 'Laura'? 10"
paste("¿Cuántas ocasiones aparece 'Aracely' en primer lugar?", nrow(subset(S,C1 == "Aracely") ))
## [1] "¿Cuántas ocasiones aparece 'Aracely' en primer lugar? 56"
paste("¿Cuántas combinaciones se generan en grupos de 4?", nrow(S))
## [1] "¿Cuántas combinaciones se generan en grupos de 4? 210"

Combinaciones de 6

grupos <- 6
S <- combinations(n = n,r = grupos, personas)

head(S,10)
##       [,1]      [,2]      [,3]       [,4]     [,5]    [,6]   
##  [1,] "Adriana" "Aracely" "Fernando" "Javier" "Juan"  "Laura"
##  [2,] "Adriana" "Aracely" "Fernando" "Javier" "Juan"  "María"
##  [3,] "Adriana" "Aracely" "Fernando" "Javier" "Juan"  "Oscar"
##  [4,] "Adriana" "Aracely" "Fernando" "Javier" "Juan"  "Paty" 
##  [5,] "Adriana" "Aracely" "Fernando" "Javier" "Juan"  "Rubén"
##  [6,] "Adriana" "Aracely" "Fernando" "Javier" "Laura" "María"
##  [7,] "Adriana" "Aracely" "Fernando" "Javier" "Laura" "Oscar"
##  [8,] "Adriana" "Aracely" "Fernando" "Javier" "Laura" "Paty" 
##  [9,] "Adriana" "Aracely" "Fernando" "Javier" "Laura" "Rubén"
## [10,] "Adriana" "Aracely" "Fernando" "Javier" "María" "Oscar"
tail(S,10)
##        [,1]       [,2]    [,3]    [,4]    [,5]    [,6]   
## [201,] "Fernando" "Juan"  "Laura" "Oscar" "Paty"  "Rubén"
## [202,] "Fernando" "Juan"  "María" "Oscar" "Paty"  "Rubén"
## [203,] "Fernando" "Laura" "María" "Oscar" "Paty"  "Rubén"
## [204,] "Javier"   "Juan"  "Laura" "María" "Oscar" "Paty" 
## [205,] "Javier"   "Juan"  "Laura" "María" "Oscar" "Rubén"
## [206,] "Javier"   "Juan"  "Laura" "María" "Paty"  "Rubén"
## [207,] "Javier"   "Juan"  "Laura" "Oscar" "Paty"  "Rubén"
## [208,] "Javier"   "Juan"  "María" "Oscar" "Paty"  "Rubén"
## [209,] "Javier"   "Laura" "María" "Oscar" "Paty"  "Rubén"
## [210,] "Juan"     "Laura" "María" "Oscar" "Paty"  "Rubén"

Combinaciones de 8

grupos <- 8
S <- combinations(n = n,r = grupos, personas)

head(S,10)
##       [,1]      [,2]      [,3]       [,4]     [,5]   [,6]    [,7]    [,8]   
##  [1,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Laura" "María" "Oscar"
##  [2,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Laura" "María" "Paty" 
##  [3,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Laura" "María" "Rubén"
##  [4,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Laura" "Oscar" "Paty" 
##  [5,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Laura" "Oscar" "Rubén"
##  [6,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Laura" "Paty"  "Rubén"
##  [7,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "María" "Oscar" "Paty" 
##  [8,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "María" "Oscar" "Rubén"
##  [9,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "María" "Paty"  "Rubén"
## [10,] "Adriana" "Aracely" "Fernando" "Javier" "Juan" "Oscar" "Paty"  "Rubén"
tail(S,10)
##       [,1]       [,2]       [,3]     [,4]    [,5]    [,6]    [,7]    [,8]   
## [36,] "Adriana"  "Javier"   "Juan"   "Laura" "María" "Oscar" "Paty"  "Rubén"
## [37,] "Aracely"  "Fernando" "Javier" "Juan"  "Laura" "María" "Oscar" "Paty" 
## [38,] "Aracely"  "Fernando" "Javier" "Juan"  "Laura" "María" "Oscar" "Rubén"
## [39,] "Aracely"  "Fernando" "Javier" "Juan"  "Laura" "María" "Paty"  "Rubén"
## [40,] "Aracely"  "Fernando" "Javier" "Juan"  "Laura" "Oscar" "Paty"  "Rubén"
## [41,] "Aracely"  "Fernando" "Javier" "Juan"  "María" "Oscar" "Paty"  "Rubén"
## [42,] "Aracely"  "Fernando" "Javier" "Laura" "María" "Oscar" "Paty"  "Rubén"
## [43,] "Aracely"  "Fernando" "Juan"   "Laura" "María" "Oscar" "Paty"  "Rubén"
## [44,] "Aracely"  "Javier"   "Juan"   "Laura" "María" "Oscar" "Paty"  "Rubén"
## [45,] "Fernando" "Javier"   "Juan"   "Laura" "María" "Oscar" "Paty"  "Rubén"

Interpretación

Se responde a las preguntas guías del caso de manera descriptiva.

Permutaciones

Se interpreta los resultados de las permutaciones

Permutaciones de 3

a ¿En cuántos casos sale el nombre de “Laura” en la primera posición, en la primera columna [,1]?

b ¿Cuántas ocasiones aparece “Aracely” en segundo lugar?, en la segunda columna [,2]?

c ¿Cuántas permutaciones se generan?, nrow(), o el ultimo registro del espacio muestral.

Respuestas

a 0

b 8

c 720

Permutaciones de 5

a ¿En cuántos casos sale el nombre de “Laura” en la primera posición?

b ¿Cuántas ocasiones aparece “Aracely” en segundo lugar?

c ¿Cuántas permutaciones se generan?

Respuestas

a 0

b 10

c 30240

Permutaciones de 7

a ¿En cuántos casos sale el nombre de “Laura” en la primera posición?

b ¿Cuántas ocasiones aparece “Aracely” en segundo lugar?

c ¿Cuántas permutaciones se generan?

Respuestas

a 0

b 10

c 604800

Combinaciones

Se interpreta el resultado de las combinaciones

Combinaciones de 4

a ¿En cuántas ocasiones se identifican los nombres de “Aracely” y “Laura” de manera contigua en ese orden “Aracely,” “Laura?”

b ¿Cuántas ocasiones aparece “Aracely” en primer lugar?

c ¿Cuántas combinaciones se generan en grupos de 4?

Respuestas

a 10

b 56

c 210

Combinaciones de 6

a ¿En cuántos casos aparece los nombres de “Oscar” “Paty” de manera contigua en ese orden?. Pueden er en las columnas [,1:2]; o columnas [,2:3]; o columnas [,3:4]; o en las columnas [,4:5]

b ¿Cuántas ocasiones aparece “Laura” en primer lugar o en la primer columnas [,1]?

c ¿Cuántas combinaciones se generan?

Respuestas

a 35

b 0

c 210

Combinaciones de 8

a ¿En cuántos casos aparece los nombres de “Oscar” “Paty” de manera contigua en ese orden?

b ¿Cuántas ocasiones aparece “Aracely” en primer lugar o en la primer colunas [,1]?

c ¿Cuántas combinaciones se generan?

Respuestas

a 0

b 8

c 45

Referencias bibliográficas

Anderson, David R., Dennis J. Sweeney, and Thomas A. Williams. 2008. Estadística Para Administración y Economía. 10th ed. Australia Brasil Corea España Estados Unidos Japón México Reino Unido Singapur: Cengage Learning,. Devore, Jay L. 2016. Fundamentos de Probabilidad y Estadística. Primera Edición. CENGAGE. Mendenhall, William, Robert J. Beaver, and Barbara M. Beaver. 2006. Introducción a La Probabilidad y Estadística. 13a Edición. Walpole, Ronald E., Raymond H. Myers, and Sharon L. Myers. 2012. Probabilidad y Estadística Para Ingeniería y Ciencias. Novena Edición. México: Pearson.