Construir permutaciones de conjuntos de datos de personas y de nombres de equipos deportivos
A partir de conjuntos datos (valores individuales) realizar permutaciones para conocer el número de las mismas y el acomodo de los valores para su interpretación en términos de probabilidad.
La diferencias entre permutaciones y combinaciones tiene que ver con la cantidad o el número de eventos.
Al hacer permutaciones, si importa el orden en que se acomodan los elementos, es decir en que columna aparecen, en la primera, segunda, tercera y y sucesivamente.
Para identificar el orden, se puede decir que no es lo mismo “Oscar,” “Paco” que “Paco,” “Oscar,” están a la inversa o el orden está invertido. Eso es una diferencia con las combinaciones, son los mismos elementos pero el orden en que se acomodan o en que aparecen los elementos está diferente.
Se deben hacer las siguientes acciones:
Cargar librerías
Cargar los datos
Identificar fórmula de factorial
Identificar fórmula de permutaciones
Determinar probabilidades a partir del espacio muestral de las combinaciones
Encontrar probabilidad con base en frecuencia o contabilizar eventos específicos del espacio muestral
Interpretar el caso
Se van a utilizar funciones de la librería “gtools” por lo que se necesario instalarla previamente: install.packages(“gtools”).
Esta librería permitirá hacer combinaciones y permutaciones.
# install.packages("gtools")
library(gtools)
Para hacer permutaciones es necesario identificar la importancia del valor factorial de un número
El factorial de un número es el producto de \(n\) por todos los naturales menores que el y se representa con el \(!n\), entonces \(n!=n\times(n-1)...\times 1\)
La función factorial es una fórmula matemática representada por el signo de exclamación \(!\). En la fórmula Factorial se deben multiplicar todos los números enteros y positivos que hay entre el número que aparece en la fórmula y el número \(1\).
Ejemplo: hallar el factorial de 6 o se sea \(6!=6\times5\times4\times3\times2\times1=720\)
La regla de conteo de permutaciones permite calcular el número de resultados experimentales cuando se seleccionan cierto número objetos de un conjunto de \(n\) objetos y el orden de selección es relevante.
Los mismos \(r\) objetos seleccionados en orden diferente se consideran un resultado experimental diferente.
\[ S=Pn\binom{n}{r} = \frac{n!}{(n-r)!}\\S \text{ es el espacio muestral y la cantidad de permutaciones} \\Pn \text{ es el número de permutaciones posibles}\\ \binom{n}{r} \text {es símbolo de permutar n elementos en grupos de r}\\ n \text{ es el total de elementos}\\ r \text{ es de cuantos en cuantos elementos se hacen grupos y permutaciones} \]
Se trata de hacer permutaciones con los nombres de cuatro personas: “Oscar,” “Paco,” “Paty,” “Laura,” “Rubén,” “Luis,” “Lucy,” “Alberto,” “Juan,” “Dulce,” “Luli,”“Estefania,”“Rosa,” “Raul” en grupos de 2.
Entonces \(n=14\), porque hay catorce nombres o elementos y \(r=2\) porque se trata de agrupar o permutar de dos en dos.
¿Cuántas permutaciones deberá haber?
Oscar y Paco
Paco y Oscar
Oscar y Paty
Paty y Oscar
Oscar y Laura
Laura y Oscar
Paco y Paty
Paty y Paco
… …
… …
Paty y Laura
Laura y Paty
nombres <- c("Oscar", "Paco", "Paty", "Laura", "Rubén", "Luis", "Lucy", "Alberto", "Juan","Dulce", "Luli","Estefania","Rosa", "Raul")
n <- length(nombres)
r <- 2 # ¿cómo agrupar o permutar?
Pn <- factorial(n) / factorial(n-r)
paste("Existen ", Pn , " posibles permutaciones del total de ", n , " nombres ", " en grupos de ", r ," en ", r)
## [1] "Existen 182 posibles permutaciones del total de 14 nombres en grupos de 2 en 2"
Se trata de hacer combinaciones con los nombres de seis equipos de fútbol: “Atlas,” “Guadalajara,” “Monterrey,” “América,” “Cruz Azul,” “Santos” en grupos de 5. Entonces \(n=9\), porque hay seis equipos o elementos y \(r=5\) porque se trata de agrupar de tres en tres.
¿Cuántas permutaciones deberá haber?
equipos <- c("Atlas", "Guadalajara", "Monterrey", "América", "Cruz Azul", "Santos", "Mazatlán", "Tijuana", "León","Pumas")
n <- length(equipos)
r <- 5 # ¿cómo agrupar?
Pn <- factorial(n) / factorial(n-r)
paste("Existen ", Pn , " posibles permutaciones del total de ", n , " equipos ", " en grupos de ", r ," en ", r)
## [1] "Existen 30240 posibles permutaciones del total de 10 equipos en grupos de 5 en 5"
Si bien la fórmula de permutaciones indica el número de permutaciones posibles de un conjunto de elementos pero lo que se desea conocer es ¿cómo se forman o cómo se verían los grupos?.
Se utiliza la función permutation
Se utiliza la función permutation() y se requiere por lo menos tres atributos:
La cantidad de elementos n
Los grupos de cuanto en cuanto se forman r
y los elementos, o sea en este caso el vector v
Se muestran las posibles permutaciones de los nombres de personas. Las función permutations() ordena los valores alfabéticamente y luego construye las combinaciones.
nombres
## [1] "Oscar" "Paco" "Paty" "Laura" "Rubén" "Luis"
## [7] "Lucy" "Alberto" "Juan" "Dulce" "Luli" "Estefania"
## [13] "Rosa" "Raul"
Pern.nombres <- permutations(n = length(nombres), r = 2, v = nombres)
Pern.nombres
## [,1] [,2]
## [1,] "Alberto" "Dulce"
## [2,] "Alberto" "Estefania"
## [3,] "Alberto" "Juan"
## [4,] "Alberto" "Laura"
## [5,] "Alberto" "Lucy"
## [6,] "Alberto" "Luis"
## [7,] "Alberto" "Luli"
## [8,] "Alberto" "Oscar"
## [9,] "Alberto" "Paco"
## [10,] "Alberto" "Paty"
## [11,] "Alberto" "Raul"
## [12,] "Alberto" "Rosa"
## [13,] "Alberto" "Rubén"
## [14,] "Dulce" "Alberto"
## [15,] "Dulce" "Estefania"
## [16,] "Dulce" "Juan"
## [17,] "Dulce" "Laura"
## [18,] "Dulce" "Lucy"
## [19,] "Dulce" "Luis"
## [20,] "Dulce" "Luli"
## [21,] "Dulce" "Oscar"
## [22,] "Dulce" "Paco"
## [23,] "Dulce" "Paty"
## [24,] "Dulce" "Raul"
## [25,] "Dulce" "Rosa"
## [26,] "Dulce" "Rubén"
## [27,] "Estefania" "Alberto"
## [28,] "Estefania" "Dulce"
## [29,] "Estefania" "Juan"
## [30,] "Estefania" "Laura"
## [31,] "Estefania" "Lucy"
## [32,] "Estefania" "Luis"
## [33,] "Estefania" "Luli"
## [34,] "Estefania" "Oscar"
## [35,] "Estefania" "Paco"
## [36,] "Estefania" "Paty"
## [37,] "Estefania" "Raul"
## [38,] "Estefania" "Rosa"
## [39,] "Estefania" "Rubén"
## [40,] "Juan" "Alberto"
## [41,] "Juan" "Dulce"
## [42,] "Juan" "Estefania"
## [43,] "Juan" "Laura"
## [44,] "Juan" "Lucy"
## [45,] "Juan" "Luis"
## [46,] "Juan" "Luli"
## [47,] "Juan" "Oscar"
## [48,] "Juan" "Paco"
## [49,] "Juan" "Paty"
## [50,] "Juan" "Raul"
## [51,] "Juan" "Rosa"
## [52,] "Juan" "Rubén"
## [53,] "Laura" "Alberto"
## [54,] "Laura" "Dulce"
## [55,] "Laura" "Estefania"
## [56,] "Laura" "Juan"
## [57,] "Laura" "Lucy"
## [58,] "Laura" "Luis"
## [59,] "Laura" "Luli"
## [60,] "Laura" "Oscar"
## [61,] "Laura" "Paco"
## [62,] "Laura" "Paty"
## [63,] "Laura" "Raul"
## [64,] "Laura" "Rosa"
## [65,] "Laura" "Rubén"
## [66,] "Lucy" "Alberto"
## [67,] "Lucy" "Dulce"
## [68,] "Lucy" "Estefania"
## [69,] "Lucy" "Juan"
## [70,] "Lucy" "Laura"
## [71,] "Lucy" "Luis"
## [72,] "Lucy" "Luli"
## [73,] "Lucy" "Oscar"
## [74,] "Lucy" "Paco"
## [75,] "Lucy" "Paty"
## [76,] "Lucy" "Raul"
## [77,] "Lucy" "Rosa"
## [78,] "Lucy" "Rubén"
## [79,] "Luis" "Alberto"
## [80,] "Luis" "Dulce"
## [81,] "Luis" "Estefania"
## [82,] "Luis" "Juan"
## [83,] "Luis" "Laura"
## [84,] "Luis" "Lucy"
## [85,] "Luis" "Luli"
## [86,] "Luis" "Oscar"
## [87,] "Luis" "Paco"
## [88,] "Luis" "Paty"
## [89,] "Luis" "Raul"
## [90,] "Luis" "Rosa"
## [91,] "Luis" "Rubén"
## [92,] "Luli" "Alberto"
## [93,] "Luli" "Dulce"
## [94,] "Luli" "Estefania"
## [95,] "Luli" "Juan"
## [96,] "Luli" "Laura"
## [97,] "Luli" "Lucy"
## [98,] "Luli" "Luis"
## [99,] "Luli" "Oscar"
## [100,] "Luli" "Paco"
## [101,] "Luli" "Paty"
## [102,] "Luli" "Raul"
## [103,] "Luli" "Rosa"
## [104,] "Luli" "Rubén"
## [105,] "Oscar" "Alberto"
## [106,] "Oscar" "Dulce"
## [107,] "Oscar" "Estefania"
## [108,] "Oscar" "Juan"
## [109,] "Oscar" "Laura"
## [110,] "Oscar" "Lucy"
## [111,] "Oscar" "Luis"
## [112,] "Oscar" "Luli"
## [113,] "Oscar" "Paco"
## [114,] "Oscar" "Paty"
## [115,] "Oscar" "Raul"
## [116,] "Oscar" "Rosa"
## [117,] "Oscar" "Rubén"
## [118,] "Paco" "Alberto"
## [119,] "Paco" "Dulce"
## [120,] "Paco" "Estefania"
## [121,] "Paco" "Juan"
## [122,] "Paco" "Laura"
## [123,] "Paco" "Lucy"
## [124,] "Paco" "Luis"
## [125,] "Paco" "Luli"
## [126,] "Paco" "Oscar"
## [127,] "Paco" "Paty"
## [128,] "Paco" "Raul"
## [129,] "Paco" "Rosa"
## [130,] "Paco" "Rubén"
## [131,] "Paty" "Alberto"
## [132,] "Paty" "Dulce"
## [133,] "Paty" "Estefania"
## [134,] "Paty" "Juan"
## [135,] "Paty" "Laura"
## [136,] "Paty" "Lucy"
## [137,] "Paty" "Luis"
## [138,] "Paty" "Luli"
## [139,] "Paty" "Oscar"
## [140,] "Paty" "Paco"
## [141,] "Paty" "Raul"
## [142,] "Paty" "Rosa"
## [143,] "Paty" "Rubén"
## [144,] "Raul" "Alberto"
## [145,] "Raul" "Dulce"
## [146,] "Raul" "Estefania"
## [147,] "Raul" "Juan"
## [148,] "Raul" "Laura"
## [149,] "Raul" "Lucy"
## [150,] "Raul" "Luis"
## [151,] "Raul" "Luli"
## [152,] "Raul" "Oscar"
## [153,] "Raul" "Paco"
## [154,] "Raul" "Paty"
## [155,] "Raul" "Rosa"
## [156,] "Raul" "Rubén"
## [157,] "Rosa" "Alberto"
## [158,] "Rosa" "Dulce"
## [159,] "Rosa" "Estefania"
## [160,] "Rosa" "Juan"
## [161,] "Rosa" "Laura"
## [162,] "Rosa" "Lucy"
## [163,] "Rosa" "Luis"
## [164,] "Rosa" "Luli"
## [165,] "Rosa" "Oscar"
## [166,] "Rosa" "Paco"
## [167,] "Rosa" "Paty"
## [168,] "Rosa" "Raul"
## [169,] "Rosa" "Rubén"
## [170,] "Rubén" "Alberto"
## [171,] "Rubén" "Dulce"
## [172,] "Rubén" "Estefania"
## [173,] "Rubén" "Juan"
## [174,] "Rubén" "Laura"
## [175,] "Rubén" "Lucy"
## [176,] "Rubén" "Luis"
## [177,] "Rubén" "Luli"
## [178,] "Rubén" "Oscar"
## [179,] "Rubén" "Paco"
## [180,] "Rubén" "Paty"
## [181,] "Rubén" "Raul"
## [182,] "Rubén" "Rosa"
Se muestran las posibles combinaciones de los nombres de equipos de fútbol.
equipos
## [1] "Atlas" "Guadalajara" "Monterrey" "América" "Cruz Azul"
## [6] "Santos" "Mazatlán" "Tijuana" "León" "Pumas"
Pern.equipos <- permutations(n = length(equipos), r = 5, v = equipos)
Se muestran solo los primeras diez y últimas diez permutaciones de equipos
head(Pern.equipos)
## [,1] [,2] [,3] [,4] [,5]
## [1,] "América" "Atlas" "Cruz Azul" "Guadalajara" "León"
## [2,] "América" "Atlas" "Cruz Azul" "Guadalajara" "Mazatlán"
## [3,] "América" "Atlas" "Cruz Azul" "Guadalajara" "Monterrey"
## [4,] "América" "Atlas" "Cruz Azul" "Guadalajara" "Pumas"
## [5,] "América" "Atlas" "Cruz Azul" "Guadalajara" "Santos"
## [6,] "América" "Atlas" "Cruz Azul" "Guadalajara" "Tijuana"
tail(Pern.equipos)
## [,1] [,2] [,3] [,4] [,5]
## [30235,] "Tijuana" "Santos" "Pumas" "Monterrey" "América"
## [30236,] "Tijuana" "Santos" "Pumas" "Monterrey" "Atlas"
## [30237,] "Tijuana" "Santos" "Pumas" "Monterrey" "Cruz Azul"
## [30238,] "Tijuana" "Santos" "Pumas" "Monterrey" "Guadalajara"
## [30239,] "Tijuana" "Santos" "Pumas" "Monterrey" "León"
## [30240,] "Tijuana" "Santos" "Pumas" "Monterrey" "Mazatlán"
¿Para qué sirve encontrar el número de permutaciones y la forma en que se agrupan?
Eso sería el espacio muestral que ya construído éste, permite hacer interpretaciones en términos probabilísticos.
El resultado de las permutaciones permite construir un espacio muestral que ofrece la oportunidad de conocer en términos de probabilidad, la cantidad de ocasiones y lo que representa un evento conforme a todo el espacio muestral, es decir frecuencia y frecuencia porcentual.
¿En cuántas ocasiones aparece el nombre de Laura en permutaciones de dos en dos?. Aparece 26 veces ¿En cuántas ocasiones aparece el nombre de Raul en las permutaciones de dos en dos? Aparece 26 veces
subset(Pern.nombres, Pern.nombres[,1]=="Luli" | Pern.nombres[,2]=="Luli")
## [,1] [,2]
## [1,] "Alberto" "Luli"
## [2,] "Dulce" "Luli"
## [3,] "Estefania" "Luli"
## [4,] "Juan" "Luli"
## [5,] "Laura" "Luli"
## [6,] "Lucy" "Luli"
## [7,] "Luis" "Luli"
## [8,] "Luli" "Alberto"
## [9,] "Luli" "Dulce"
## [10,] "Luli" "Estefania"
## [11,] "Luli" "Juan"
## [12,] "Luli" "Laura"
## [13,] "Luli" "Lucy"
## [14,] "Luli" "Luis"
## [15,] "Luli" "Oscar"
## [16,] "Luli" "Paco"
## [17,] "Luli" "Paty"
## [18,] "Luli" "Raul"
## [19,] "Luli" "Rosa"
## [20,] "Luli" "Rubén"
## [21,] "Oscar" "Luli"
## [22,] "Paco" "Luli"
## [23,] "Paty" "Luli"
## [24,] "Raul" "Luli"
## [25,] "Rosa" "Luli"
## [26,] "Rubén" "Luli"
subset(Pern.nombres, Pern.nombres[,1]=="Raul" | Pern.nombres[,2]=="Raul")
## [,1] [,2]
## [1,] "Alberto" "Raul"
## [2,] "Dulce" "Raul"
## [3,] "Estefania" "Raul"
## [4,] "Juan" "Raul"
## [5,] "Laura" "Raul"
## [6,] "Lucy" "Raul"
## [7,] "Luis" "Raul"
## [8,] "Luli" "Raul"
## [9,] "Oscar" "Raul"
## [10,] "Paco" "Raul"
## [11,] "Paty" "Raul"
## [12,] "Raul" "Alberto"
## [13,] "Raul" "Dulce"
## [14,] "Raul" "Estefania"
## [15,] "Raul" "Juan"
## [16,] "Raul" "Laura"
## [17,] "Raul" "Lucy"
## [18,] "Raul" "Luis"
## [19,] "Raul" "Luli"
## [20,] "Raul" "Oscar"
## [21,] "Raul" "Paco"
## [22,] "Raul" "Paty"
## [23,] "Raul" "Rosa"
## [24,] "Raul" "Rubén"
## [25,] "Rosa" "Raul"
## [26,] "Rubén" "Raul"
En las permutaciones de nombres de dos en dos, ¿en cuántas ocasiones existe Laura y Oscar juntos o contiguos y en ese orden?. Se utiliza la función subset() para hacer filtros y responder a las preguntas.
La nominación [ , ] significa acceder al valor de un data frame por la primer colmna y [ ,2] la segunda columna.
filtro <- subset(Pern.nombres, Pern.nombres[,1] == "Laura" & Pern.nombres[,2] == "Oscar")
filtro
## [,1] [,2]
## [1,] "Laura" "Oscar"
frecuencia <- nrow(filtro)
paste("Existen ", frecuencia, " ocasiones en que se encuentran Laura y Oscar juntos en ese orden, de un total de ", nrow(Pern.nombres), " representan ", round(frecuencia / nrow(Pern.nombres) * 100, 2), "%")
## [1] "Existen 1 ocasiones en que se encuentran Laura y Oscar juntos en ese orden, de un total de 182 representan 0.55 %"
En las permutaciones de nombres de dos en dos, ¿en cuántas ocasiones existe Oscar en la primer columna de todo el espacio muestral?
filtro <- subset(Pern.nombres, Pern.nombres[,1] == "Oscar")
filtro
## [,1] [,2]
## [1,] "Oscar" "Alberto"
## [2,] "Oscar" "Dulce"
## [3,] "Oscar" "Estefania"
## [4,] "Oscar" "Juan"
## [5,] "Oscar" "Laura"
## [6,] "Oscar" "Lucy"
## [7,] "Oscar" "Luis"
## [8,] "Oscar" "Luli"
## [9,] "Oscar" "Paco"
## [10,] "Oscar" "Paty"
## [11,] "Oscar" "Raul"
## [12,] "Oscar" "Rosa"
## [13,] "Oscar" "Rubén"
frecuencia <- nrow(filtro)
paste("Existen ", frecuencia, " ocasiones en que se encuentran Oscar en la primer columna , de un total de ", nrow(Pern.nombres), " representan ", round(frecuencia / nrow(Pern.nombres) * 100, 2), "%")
## [1] "Existen 13 ocasiones en que se encuentran Oscar en la primer columna , de un total de 182 representan 7.14 %"
En cuántas ocasiones aparece en primera columna Oscar y Paco o Paty en segunda columna
filtro <- subset(Pern.nombres, Pern.nombres[,1] == "Oscar" & (Pern.nombres[,2] == "Paco" | Pern.nombres[,2] == "Paty"))
filtro
## [,1] [,2]
## [1,] "Oscar" "Paco"
## [2,] "Oscar" "Paty"
frecuencia <- nrow(filtro)
paste("Existen ", frecuencia, " ocasiones en que se encuentran aparece en primera columna Oscar y Paco o Paty en segunda columna, de un total de ", nrow(Pern.nombres), " representan ", round(frecuencia / nrow(Pern.nombres) * 100, 2), "%")
## [1] "Existen 2 ocasiones en que se encuentran aparece en primera columna Oscar y Paco o Paty en segunda columna, de un total de 182 representan 1.1 %"
En cuántas ocasiones aparece de manera contigua y en este orden los equipos de América y Guadalajara en primera y segunda columna respectivamente.
print("Cantidad de Permutaciones")
## [1] "Cantidad de Permutaciones"
print(nrow(subset(Pern.equipos, Pern.equipos[,1]=="América"& Pern.equipos[,2]=="Guadalajara")))
## [1] 336
En cuántas ocasiones aparece de manera contigua y en este orden los equipos de Atlas y Guadalajara en primera y segunda columna respectivamente.
print("Cantidad de Permutaciones")
## [1] "Cantidad de Permutaciones"
print(nrow(subset(Pern.equipos, Pern.equipos[,1]=="Atlas"& Pern.equipos[,2]=="Guadalajara")))
## [1] 336
¿En cuántas ocasiones aparece de manera contigua y en este orden los equipos de Guadalajara y Mazatlán en cualquier columna uno y dos, dos y tres, tres y cuatro o cuatro y cinco?
filtro <- subset(Pern.equipos, (Pern.equipos[,1] == "Guadalajara" & Pern.equipos[,2] == "Mazatlán")
| (Pern.equipos[,2] == "Guadalajara" & Pern.equipos[,3] == "Mazatlán")
|
(Pern.equipos[,3] == "Guadalajara" & Pern.equipos[,4] == "Mazatlán")
| (Pern.equipos[,4] == "Guadalajara" & Pern.equipos[,5] == "Mazatlán"))
frecuencia <- nrow(filtro)
paste("Existen ", frecuencia, " aparece de manera contigua y en este orden los equipos de Guadalajara y Mazatlán en cualquier columna , de un total de ", nrow(Pern.equipos), " representan ", round(frecuencia / nrow(Pern.equipos) * 100, 2), "%")
## [1] "Existen 1344 aparece de manera contigua y en este orden los equipos de Guadalajara y Mazatlán en cualquier columna , de un total de 30240 representan 4.44 %"
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,.
Mendenhall, William, Robert J. Beaver, and Barbara M. Beaver. 2010. Introducción a La Probabilidad y Estadística. 13th ed. Cengage Learning Editores, S.A. de C.V.,.
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.