Aplicar técnicas de conteo con diversos datos utilizando permutaciones y combinaciones para su adecuada interpretació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.
Cargar librerías, en caso necesario
Construir los datos
Realizar permutaciones
Realizar combinaciones
Interpretar el caso
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)
Se pueden cargar imágenes usando la función include_graphics() de la librería knitr
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("Jorge", "María", "Luisa", "Carlos", "Carolina")
personas.agregadas <- c("Julián", "Tomasa", "Roberto", "Mario", "Rosario")
personas <- c(personas,personas.agregadas)
personas
## [1] "Jorge" "María" "Luisa" "Carlos" "Carolina" "Julián"
## [7] "Tomasa" "Roberto" "Mario" "Rosario"
n <- length(personas) # debe ser 10
n
## [1] 10
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.
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] 720head(S, 10)
## [,1] [,2] [,3]
## [1,] "Carlos" "Carolina" "Jorge"
## [2,] "Carlos" "Carolina" "Julián"
## [3,] "Carlos" "Carolina" "Luisa"
## [4,] "Carlos" "Carolina" "María"
## [5,] "Carlos" "Carolina" "Mario"
## [6,] "Carlos" "Carolina" "Roberto"
## [7,] "Carlos" "Carolina" "Rosario"
## [8,] "Carlos" "Carolina" "Tomasa"
## [9,] "Carlos" "Jorge" "Carolina"
## [10,] "Carlos" "Jorge" "Julián"
tail(S, 10)
## [,1] [,2] [,3]
## [711,] "Tomasa" "Roberto" "Mario"
## [712,] "Tomasa" "Roberto" "Rosario"
## [713,] "Tomasa" "Rosario" "Carlos"
## [714,] "Tomasa" "Rosario" "Carolina"
## [715,] "Tomasa" "Rosario" "Jorge"
## [716,] "Tomasa" "Rosario" "Julián"
## [717,] "Tomasa" "Rosario" "Luisa"
## [718,] "Tomasa" "Rosario" "María"
## [719,] "Tomasa" "Rosario" "Mario"
## [720,] "Tomasa" "Rosario" "Roberto"
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 “Carolina” en la primera posición, en la primera columna [,1]?", nrow(filter(S, C1 == "Carolina")))
## [1] "¿En cuántos casos sale el nombre de “Carolina” en la primera posición, en la primera columna [,1]? 72"
paste("¿Cuántas ocasiones aparece “Rosario” en segundo lugar?, en la segunda columna [,2]?", nrow(filter(S, C2 == "Rosario")))
## [1] "¿Cuántas ocasiones aparece “Rosario” en segundo lugar?, en la segunda columna [,2]? 72"
paste("¿Cuántas permutaciones se generan?, nrow(), o cuántas observaciones?, el último registro del espacio muestral.", nrow(S))
## [1] "¿Cuántas permutaciones se generan?, nrow(), o cuántas observaciones?, el último registro del espacio muestral. 720"
Se pudo haber usado la función which() combinado con la función length()
paste("¿En cuántos casos sale el nombre de “Carolina” en la primera posición, en la primera columna [,1]?", length(which(S[,1] == "Carolina")))
## [1] "¿En cuántos casos sale el nombre de “Carolina” en la primera posición, en la primera columna [,1]? 72"
paste("¿Cuántas ocasiones aparece “Rosario” en segundo lugar?, en la segunda columna [,2]?", length(which(S[,2] == "Rosario")))
## [1] "¿Cuántas ocasiones aparece “Rosario” en segundo lugar?, en la segunda columna [,2]? 72"
paste("¿Cuántas permutaciones se generan?, nrow(), o cuántas observaciones?, el último registro del espacio muestral.", nrow(S))
## [1] "¿Cuántas permutaciones se generan?, nrow(), o cuántas observaciones?, el último registro del espacio muestral. 720"
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 “Luisa” en la primera posición, en la primera columna [,1]?", nrow(subset(S, C1 == "Luisa")))
## [1] "¿En cuántos casos sale el nombre de “Luisa” en la primera posición, en la primera columna [,1]? 72"
paste("¿Cuántas ocasiones aparece “Carolina” en segundo lugar?, en la segunda columna [,2]?", nrow(subset(S, C2 == "Carolina")))
## [1] "¿Cuántas ocasiones aparece “Carolina” 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.
grupos <- 5
S <- permutations(n = n,r = grupos, v=personas)
nrow(S)
## [1] 30240
head(S, 10)
## [,1] [,2] [,3] [,4] [,5]
## [1,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa"
## [2,] "Carlos" "Carolina" "Jorge" "Julián" "María"
## [3,] "Carlos" "Carolina" "Jorge" "Julián" "Mario"
## [4,] "Carlos" "Carolina" "Jorge" "Julián" "Roberto"
## [5,] "Carlos" "Carolina" "Jorge" "Julián" "Rosario"
## [6,] "Carlos" "Carolina" "Jorge" "Julián" "Tomasa"
## [7,] "Carlos" "Carolina" "Jorge" "Luisa" "Julián"
## [8,] "Carlos" "Carolina" "Jorge" "Luisa" "María"
## [9,] "Carlos" "Carolina" "Jorge" "Luisa" "Mario"
## [10,] "Carlos" "Carolina" "Jorge" "Luisa" "Roberto"
tail(S, 10)
## [,1] [,2] [,3] [,4] [,5]
## [30231,] "Tomasa" "Rosario" "Roberto" "María" "Jorge"
## [30232,] "Tomasa" "Rosario" "Roberto" "María" "Julián"
## [30233,] "Tomasa" "Rosario" "Roberto" "María" "Luisa"
## [30234,] "Tomasa" "Rosario" "Roberto" "María" "Mario"
## [30235,] "Tomasa" "Rosario" "Roberto" "Mario" "Carlos"
## [30236,] "Tomasa" "Rosario" "Roberto" "Mario" "Carolina"
## [30237,] "Tomasa" "Rosario" "Roberto" "Mario" "Jorge"
## [30238,] "Tomasa" "Rosario" "Roberto" "Mario" "Julián"
## [30239,] "Tomasa" "Rosario" "Roberto" "Mario" "Luisa"
## [30240,] "Tomasa" "Rosario" "Roberto" "Mario" "María"
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,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "María" "Mario"
## [2,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "María" "Roberto"
## [3,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "María" "Rosario"
## [4,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "María" "Tomasa"
## [5,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Mario" "María"
## [6,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Mario" "Roberto"
## [7,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Mario" "Rosario"
## [8,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Mario" "Tomasa"
## [9,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Roberto" "María"
## [10,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Roberto" "Mario"
tail(S, 10)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [604791,] "Tomasa" "Rosario" "Roberto" "Mario" "María" "Jorge" "Julián"
## [604792,] "Tomasa" "Rosario" "Roberto" "Mario" "María" "Jorge" "Luisa"
## [604793,] "Tomasa" "Rosario" "Roberto" "Mario" "María" "Julián" "Carlos"
## [604794,] "Tomasa" "Rosario" "Roberto" "Mario" "María" "Julián" "Carolina"
## [604795,] "Tomasa" "Rosario" "Roberto" "Mario" "María" "Julián" "Jorge"
## [604796,] "Tomasa" "Rosario" "Roberto" "Mario" "María" "Julián" "Luisa"
## [604797,] "Tomasa" "Rosario" "Roberto" "Mario" "María" "Luisa" "Carlos"
## [604798,] "Tomasa" "Rosario" "Roberto" "Mario" "María" "Luisa" "Carolina"
## [604799,] "Tomasa" "Rosario" "Roberto" "Mario" "María" "Luisa" "Jorge"
## [604800,] "Tomasa" "Rosario" "Roberto" "Mario" "María" "Luisa" "Julián"
Se utiliza también la variable S para identificar al especio meustral o experimentos posibles en las combinaciones.
grupos <- 4
S <- combinations(n = n,r = grupos, personas)
head(S,10)
## [,1] [,2] [,3] [,4]
## [1,] "Carlos" "Carolina" "Jorge" "Julián"
## [2,] "Carlos" "Carolina" "Jorge" "Luisa"
## [3,] "Carlos" "Carolina" "Jorge" "María"
## [4,] "Carlos" "Carolina" "Jorge" "Mario"
## [5,] "Carlos" "Carolina" "Jorge" "Roberto"
## [6,] "Carlos" "Carolina" "Jorge" "Rosario"
## [7,] "Carlos" "Carolina" "Jorge" "Tomasa"
## [8,] "Carlos" "Carolina" "Julián" "Luisa"
## [9,] "Carlos" "Carolina" "Julián" "María"
## [10,] "Carlos" "Carolina" "Julián" "Mario"
tail(S,10)
## [,1] [,2] [,3] [,4]
## [201,] "Luisa" "María" "Rosario" "Tomasa"
## [202,] "Luisa" "Mario" "Roberto" "Rosario"
## [203,] "Luisa" "Mario" "Roberto" "Tomasa"
## [204,] "Luisa" "Mario" "Rosario" "Tomasa"
## [205,] "Luisa" "Roberto" "Rosario" "Tomasa"
## [206,] "María" "Mario" "Roberto" "Rosario"
## [207,] "María" "Mario" "Roberto" "Tomasa"
## [208,] "María" "Mario" "Rosario" "Tomasa"
## [209,] "María" "Roberto" "Rosario" "Tomasa"
## [210,] "Mario" "Roberto" "Rosario" "Tomasa"
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 == "Carolina" & C2 == "Luisa") | (C2 == "Carolina" & C3 == "Luisa") | (C3 == "Carolina" & C4 == "Luisa"))
paste("¿En cuántas ocasiones se identifican los nombres de 'Carolina' y 'Luisa' de manera contigua en ese orden 'Carolina, 'Luisa'?", nrow(res))
## [1] "¿En cuántas ocasiones se identifican los nombres de 'Carolina' y 'Luisa' de manera contigua en ese orden 'Carolina, 'Luisa'? 15"
paste("¿Cuántas ocasiones aparece 'Carolina' en primer lugar?", nrow(filter(S,C1 == "Carolina") ))
## [1] "¿Cuántas ocasiones aparece 'Carolina' 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"
res <- which((S[,1] == "Carolina" & S[,2] == "Luisa") | (S[,2] == "Carolina" & S[,3] == "Luisa") | (S[,3] == "Carolina" & S[,4] == "Luisa"))
paste("¿En cuántas ocasiones se identifican los nombres de 'Carolina' y 'Luisa' de manera contigua en ese orden 'Carolina, 'Luisa'?", length(res))
## [1] "¿En cuántas ocasiones se identifican los nombres de 'Carolina' y 'Luisa' de manera contigua en ese orden 'Carolina, 'Luisa'? 15"
paste("¿Cuántas ocasiones aparece 'Carolina' en primer lugar?", length(which(S[,1] == "Carolina") ))
## [1] "¿Cuántas ocasiones aparece 'Carolina' 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"
res <- subset(S, (C1 == "Carolina" & C2 == "Luisa") | (C2 == "Carolina" & C3 == "Luisa") | (C3 == "Carolina" & C4 == "Luisa"))
paste("¿En cuántas ocasiones se identifican los nombres de 'Carolina' y 'Luisa' de manera contigua en ese orden 'Carolina, 'Luisa'?", nrow(res))
## [1] "¿En cuántas ocasiones se identifican los nombres de 'Carolina' y 'Luisa' de manera contigua en ese orden 'Carolina, 'Luisa'? 15"
paste("¿Cuántas ocasiones aparece 'Carolina' en primer lugar?", nrow(subset(S,C1 == "Carolina") ))
## [1] "¿Cuántas ocasiones aparece 'Carolina' 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"
grupos <- 6
S <- combinations(n = n,r = grupos, personas)
head(S,10)
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "María"
## [2,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Mario"
## [3,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Roberto"
## [4,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Rosario"
## [5,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Tomasa"
## [6,] "Carlos" "Carolina" "Jorge" "Julián" "María" "Mario"
## [7,] "Carlos" "Carolina" "Jorge" "Julián" "María" "Roberto"
## [8,] "Carlos" "Carolina" "Jorge" "Julián" "María" "Rosario"
## [9,] "Carlos" "Carolina" "Jorge" "Julián" "María" "Tomasa"
## [10,] "Carlos" "Carolina" "Jorge" "Julián" "Mario" "Roberto"
tail(S,10)
## [,1] [,2] [,3] [,4] [,5] [,6]
## [201,] "Jorge" "Luisa" "María" "Roberto" "Rosario" "Tomasa"
## [202,] "Jorge" "Luisa" "Mario" "Roberto" "Rosario" "Tomasa"
## [203,] "Jorge" "María" "Mario" "Roberto" "Rosario" "Tomasa"
## [204,] "Julián" "Luisa" "María" "Mario" "Roberto" "Rosario"
## [205,] "Julián" "Luisa" "María" "Mario" "Roberto" "Tomasa"
## [206,] "Julián" "Luisa" "María" "Mario" "Rosario" "Tomasa"
## [207,] "Julián" "Luisa" "María" "Roberto" "Rosario" "Tomasa"
## [208,] "Julián" "Luisa" "Mario" "Roberto" "Rosario" "Tomasa"
## [209,] "Julián" "María" "Mario" "Roberto" "Rosario" "Tomasa"
## [210,] "Luisa" "María" "Mario" "Roberto" "Rosario" "Tomasa"
grupos <- 8
S <- combinations(n = n,r = grupos, personas)
head(S,10)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "María" "Mario"
## [2,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "María" "Mario"
## [3,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "María" "Mario"
## [4,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "María" "Roberto"
## [5,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "María" "Roberto"
## [6,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "María" "Rosario"
## [7,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Mario" "Roberto"
## [8,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Mario" "Roberto"
## [9,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Mario" "Rosario"
## [10,] "Carlos" "Carolina" "Jorge" "Julián" "Luisa" "Roberto" "Rosario"
## [,8]
## [1,] "Roberto"
## [2,] "Rosario"
## [3,] "Tomasa"
## [4,] "Rosario"
## [5,] "Tomasa"
## [6,] "Tomasa"
## [7,] "Rosario"
## [8,] "Tomasa"
## [9,] "Tomasa"
## [10,] "Tomasa"
tail(S,10)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [36,] "Carlos" "Julián" "Luisa" "María" "Mario" "Roberto" "Rosario"
## [37,] "Carolina" "Jorge" "Julián" "Luisa" "María" "Mario" "Roberto"
## [38,] "Carolina" "Jorge" "Julián" "Luisa" "María" "Mario" "Roberto"
## [39,] "Carolina" "Jorge" "Julián" "Luisa" "María" "Mario" "Rosario"
## [40,] "Carolina" "Jorge" "Julián" "Luisa" "María" "Roberto" "Rosario"
## [41,] "Carolina" "Jorge" "Julián" "Luisa" "Mario" "Roberto" "Rosario"
## [42,] "Carolina" "Jorge" "Julián" "María" "Mario" "Roberto" "Rosario"
## [43,] "Carolina" "Jorge" "Luisa" "María" "Mario" "Roberto" "Rosario"
## [44,] "Carolina" "Julián" "Luisa" "María" "Mario" "Roberto" "Rosario"
## [45,] "Jorge" "Julián" "Luisa" "María" "Mario" "Roberto" "Rosario"
## [,8]
## [36,] "Tomasa"
## [37,] "Rosario"
## [38,] "Tomasa"
## [39,] "Tomasa"
## [40,] "Tomasa"
## [41,] "Tomasa"
## [42,] "Tomasa"
## [43,] "Tomasa"
## [44,] "Tomasa"
## [45,] "Tomasa"
La permutación es una técnica de conteo que permite calcular las posibles ordenaciones de los elementos de un conjunto o número de elementos del espacio muestral de un experimento aleatorio. En esta técnica de conteo se considera que existe el orden en la muestra, pero no es posible repetir ningún elemento de la población en su conformación. El presente caso nos muestra las diferentes combinaciones entre los nombres presentados, estos son datos generados por nosotros mismos con la ayuda del software R.
El nombre de Luisa aparece 72 veces en la primera posición, primera columna [,1]. El nombre “Carolina” aparece 72 veces de igaul manera en segundo lugar, segunda columna [,2]. El número de permutaciones que se generan es de 720.
El número de veces que el nombre de Luisa se repite en la primera posición es 10. En cuanto al nombre de Carolina, se repite 28 veces en la segunda posición. El último registro del espacio muestral. 210
El númeor de casos sale en el que el nombre de “Luisa” aparece en la primera posición, en la primera columna [,1] es de 60480, al igual que el nombre “Carolina” en el segundo lugar. El último registro del espacio muestral. 604800
El nombre de Luisa y Carolina aparencen de manera contigua un total de 15 veces. En 56 ocasiones aparece el nombre de Carolina en primer lugar. Se genera un total de 210 combinaciones.
res <- which((S[,1] == "María" & S[,2] == "Roberto") | (S[,2] == "María" & S[,3] == "Roberto") | (S[,3] == "María" & S[,4] == "Roberto")|(S[,4] == "María" & S[,5] == "Roberto") | (S[,5] == "María" & S[,6] == "Roberto"))
paste("¿En cuántas ocasiones se identifican los nombres de 'María' y 'Roberto' de manera contigua en ese orden 'María, 'Roberto'?", length(res))
## [1] "¿En cuántas ocasiones se identifican los nombres de 'María' y 'Roberto' de manera contigua en ese orden 'María, 'Roberto'? 5"
paste("¿Cuántas ocasiones aparece 'Luisa' en primer lugar?", length(which(S[,1] == "Luisa") ))
## [1] "¿Cuántas ocasiones aparece 'Luisa' en primer lugar? 0"
paste("¿Cuántas combinaciones se generan en grupos de 6?", nrow(S))
## [1] "¿Cuántas combinaciones se generan en grupos de 6? 45"
res <- which((S[,1] == "María" & S[,2] == "Roberto") | (S[,2] == "María" & S[,3] == "Roberto") | (S[,3] == "María" & S[,4] == "Roberto")|(S[,4] == "María" & S[,5] == "Roberto") | (S[,5] == "María" & S[,6] == "Roberto")|(S[,6] == "María" & S[,7] == "Roberto")|(S[,7] == "María" & S[,8] == "Roberto"))
paste("¿En cuántas ocasiones se identifican los nombres de 'María' y 'Roberto' de manera contigua en ese orden 'María, 'Roberto'?", length(res))
## [1] "¿En cuántas ocasiones se identifican los nombres de 'María' y 'Roberto' de manera contigua en ese orden 'María, 'Roberto'? 7"
paste("¿Cuántas ocasiones aparece 'Carolina' en primer lugar?", length(which(S[,1] == "Carolina") ))
## [1] "¿Cuántas ocasiones aparece 'Carolina' en primer lugar? 8"
paste("¿Cuántas combinaciones se generan en grupos de 8?", nrow(S))
## [1] "¿Cuántas combinaciones se generan en grupos de 8? 45"