Construir combinaciones de conjuntos de datos de personas y de nombres de equipos deportivos.
A partir de conjuntos datos (valores individuales) se realizaran combinaciones para conocer el número de las mismas y el acomodo de los valores para su interpretación en términos de probabilidad.
Cargar librerías
Cargar los datos
Identificar fórmula de factorial
Identificar fórmula de combinaciones
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
Para llevar a cabo esta práctica, es necesario contar con la librería gtools, la cual nos permite realizar combinaciones y permutaciones.
# install.packages("gtools")
library(gtools)
Para realizar u obtener combinaciones se debe identificar la importancia que tiene el valor factorial de un número.
El factorial de un número se refiere al producto de \(n\) por todos los números naturales que sean menores al número en cuestión y se representa con \(n!\); por lo tanto \(n!=n\times(n-1)...\times 1\).
La notación ! representa al factorial. Un ejemplo puede ser: 4 factorial es 4! = (4)(3)(2)(1) = 24. Otro ejemplo puede ser 7 factorial; \(7!=7\times6\times5\times4\times3\times2\times1=5,040\)
La regla de conteo de combinaciones permite contar el número de resultados experimentales cuando dicho experimento consiste en \(r\) (o en cierta cantidad de) objetos pertenecientes a un conjunto (usualmente mayor) \(n\) objetos.
\[ S=Cn\binom{n}{r} = \frac{n!}{(r!\cdot(n-r)!)}\\S \text{ es el espacio muestral y la cantidad de combinaciones} \\Cn \text{ es el número de combinaciones posibles}\\ \binom{n}{r} \text {es símbolo de combinar n elementos en grupos de r}\\ n \text{ es el total de elementos}\\ r \text{ es de cuantos en cuantos elementos se hacen grupos} \]
Un ejemplo puede ser encontrar la cantidad de combinaciones posibles utilizando el nombre de varias personas (“Luis”, “Oscar”, “Kevin”, “Eduardo”, “Andrea”, “Claudia”,“Yaeline”, “Eva”) en grupos de 2. Aqui, la variable \(n=8\) ya que se refiere al total de elementos y \(r=2\) se refiere a que se agruparan los elementos en pares.
¿Cuántas combinaciones hay?
Nombres <- c("Oscar","Andrea","Luis","Claudia","Kevin","Eva","Eduardo","Yaeline")
paste("Nombres:")
## [1] "Nombres:"
Nombres
## [1] "Oscar" "Andrea" "Luis" "Claudia" "Kevin" "Eva" "Eduardo"
## [8] "Yaeline"
#total de elementos
n<-length(Nombres)
paste("Cantidad de elementos: ",n)
## [1] "Cantidad de elementos: 8"
#grupos
r<-2
paste("Cantidad de elementos por grupo: ",r)
## [1] "Cantidad de elementos por grupo: 2"
#Aplicación de la fórmula
Cn <- factorial(n)/(factorial(r)*factorial(n-r))
paste("Existen ",Cn," posibles combinaciones del total de ",n," Nombres en grupos de ",r," en ",r,".")
## [1] "Existen 28 posibles combinaciones del total de 8 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 3. Entonces \(n=6\), porque hay seis equipos o elementos y \(r=3\) porque se trata de agrupar de tres en tres.
¿Cuántas combinaciones deberá haber?
Equipos <- c("Atlas", "Guadalajara", "Monterrey", "América", "Cruz Azul", "Santos")
paste("Nombre de los Equipos:")
## [1] "Nombre de los Equipos:"
Equipos
## [1] "Atlas" "Guadalajara" "Monterrey" "América" "Cruz Azul"
## [6] "Santos"
N<-length(Equipos)
paste("Cantidad de elementos: ",N)
## [1] "Cantidad de elementos: 6"
R<-3
paste("Grupos de ",R," en ",R)
## [1] "Grupos de 3 en 3"
CN <- factorial(N)/(factorial(R)*factorial(N-R))
paste("Existen ",CN," posibles combinaciones del total de ",N," Equipos en grupos de ",R," en ",R,".")
## [1] "Existen 20 posibles combinaciones del total de 6 Equipos en grupos de 3 en 3 ."
La fórmula de combinaciones indica el número de combinaciones posibles de un conjunto de elementos, pero lo que se desea conocer es: ¿cómo se forman las combinaciones o cómo se verían los grupos formados?. Para ello se utiliza la función combination().
Ahora obtendremos las combinaciones utilizando el ejemplo 1 a través de la función combination().
Para utilizar la función mencionada con anterioridad, es necesario brindar por lo menos 3 argumentos:
La cantidad de elementos (n)
Los grupos de cuanto en cuanto se forman (r)
Conjunto de elementos (v)
Se muestran las posibles combinaciones de los nombres de personas. Las función combinations() ordena los valores alfabéticamente y luego construye las combinaciones.
Nombres
## [1] "Oscar" "Andrea" "Luis" "Claudia" "Kevin" "Eva" "Eduardo"
## [8] "Yaeline"
Cn.Nombres <- combinations(n=length(Nombres),r=2,v=Nombres)
Cn.Nombres
## [,1] [,2]
## [1,] "Andrea" "Claudia"
## [2,] "Andrea" "Eduardo"
## [3,] "Andrea" "Eva"
## [4,] "Andrea" "Kevin"
## [5,] "Andrea" "Luis"
## [6,] "Andrea" "Oscar"
## [7,] "Andrea" "Yaeline"
## [8,] "Claudia" "Eduardo"
## [9,] "Claudia" "Eva"
## [10,] "Claudia" "Kevin"
## [11,] "Claudia" "Luis"
## [12,] "Claudia" "Oscar"
## [13,] "Claudia" "Yaeline"
## [14,] "Eduardo" "Eva"
## [15,] "Eduardo" "Kevin"
## [16,] "Eduardo" "Luis"
## [17,] "Eduardo" "Oscar"
## [18,] "Eduardo" "Yaeline"
## [19,] "Eva" "Kevin"
## [20,] "Eva" "Luis"
## [21,] "Eva" "Oscar"
## [22,] "Eva" "Yaeline"
## [23,] "Kevin" "Luis"
## [24,] "Kevin" "Oscar"
## [25,] "Kevin" "Yaeline"
## [26,] "Luis" "Oscar"
## [27,] "Luis" "Yaeline"
## [28,] "Oscar" "Yaeline"
Se muestran las posibles combinaciones de los nombres de equipos de fútbol.
Equipos
## [1] "Atlas" "Guadalajara" "Monterrey" "América" "Cruz Azul"
## [6] "Santos"
Cn.Equipos <- combinations(n=length(Equipos),r=3,v=Equipos)
Cn.Equipos
## [,1] [,2] [,3]
## [1,] "América" "Atlas" "Cruz Azul"
## [2,] "América" "Atlas" "Guadalajara"
## [3,] "América" "Atlas" "Monterrey"
## [4,] "América" "Atlas" "Santos"
## [5,] "América" "Cruz Azul" "Guadalajara"
## [6,] "América" "Cruz Azul" "Monterrey"
## [7,] "América" "Cruz Azul" "Santos"
## [8,] "América" "Guadalajara" "Monterrey"
## [9,] "América" "Guadalajara" "Santos"
## [10,] "América" "Monterrey" "Santos"
## [11,] "Atlas" "Cruz Azul" "Guadalajara"
## [12,] "Atlas" "Cruz Azul" "Monterrey"
## [13,] "Atlas" "Cruz Azul" "Santos"
## [14,] "Atlas" "Guadalajara" "Monterrey"
## [15,] "Atlas" "Guadalajara" "Santos"
## [16,] "Atlas" "Monterrey" "Santos"
## [17,] "Cruz Azul" "Guadalajara" "Monterrey"
## [18,] "Cruz Azul" "Guadalajara" "Santos"
## [19,] "Cruz Azul" "Monterrey" "Santos"
## [20,] "Guadalajara" "Monterrey" "Santos"
El resultado de las combinaciones 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.
1.- ¿Para qué sirve encontrar el número de combinaciones 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.
2.- ¿En cuántas ocasiones aparece el nombre de Eva en combinaciones de dos en dos?
El nombre Eva aparece en 7 ocasiones.
3.- ¿En cuántas ocasiones aparece el nombre de Oscar en las combinaciones de dos en dos?
El nombre Oscar aparece en 7 ocasiones.
4.- En las combinaciones de nombres de dos en dos, ¿En cuántas ocasiones existe Andrea y Kevin juntos o contiguos y en ese orden?. Se utiliza la función subset() para hacer filtros y responder a las preguntas. La nominación [,1] significa acceder al valor de un data frame por la primer columna y [,2] la segunda columna.
Filtro <- subset(Cn.Nombres, Cn.Nombres[,1]=="Andrea" & Cn.Nombres[,2]=="Kevin")
Filtro
## [,1] [,2]
## [1,] "Andrea" "Kevin"
Frecuencia <- nrow(Filtro)
Frecuencia
## [1] 1
paste("Existe ",Frecuencia," ocasión en que se encuentran Andrea y Kevin juntos en este orden, de un total de ",nrow(Cn.Nombres)," grupos, y representan el ",round(Frecuencia/nrow(Cn.Nombres)*100,2),"% del total.")
## [1] "Existe 1 ocasión en que se encuentran Andrea y Kevin juntos en este orden, de un total de 28 grupos, y representan el 3.57 % del total."
5.- En las combinaciones de nombres de dos en dos, ¿En cuántas ocasiones existe Eva en la primer columna de todo el espacio muestral?
Filtro2 <- subset(Cn.Nombres, Cn.Nombres[,1]=="Eva")
Filtro2
## [,1] [,2]
## [1,] "Eva" "Kevin"
## [2,] "Eva" "Luis"
## [3,] "Eva" "Oscar"
## [4,] "Eva" "Yaeline"
Frecuencia2 <- nrow(Filtro2)
Frecuencia2
## [1] 4
paste("Existen ", Frecuencia2, " ocasiones en que se encuentra a Eva en la primer columna, de un total de ", nrow(Cn.Nombres), " grupos, y representa un ", round(Frecuencia2 / nrow(Cn.Nombres) * 100, 2), "% del total.")
## [1] "Existen 4 ocasiones en que se encuentra a Eva en la primer columna, de un total de 28 grupos, y representa un 14.29 % del total."
6.- ¿En cuántas ocasiones aparece en la primera columna Eduardo y Yaeline o Luis en segunda columna?
Filtro3 <- subset(Cn.Nombres, Cn.Nombres[,1]=="Eduardo"&(Cn.Nombres[,2]=="Yaeline"|Cn.Nombres[,2]=="Luis"))
Filtro3
## [,1] [,2]
## [1,] "Eduardo" "Luis"
## [2,] "Eduardo" "Yaeline"
Frecuencia3 <- nrow(Filtro3)
Frecuencia3
## [1] 2
paste("Existen ", Frecuencia3, " ocasiones en que se encuentra en la primera columna a Eduardo y a Yaeline o Luis en la segunda columna, de un total de ", nrow(Cn.Nombres), " grupos y representan un ", round(Frecuencia3 / nrow(Cn.Nombres) * 100, 2), "% del total de los grupos.")
## [1] "Existen 2 ocasiones en que se encuentra en la primera columna a Eduardo y a Yaeline o Luis en la segunda columna, de un total de 28 grupos y representan un 7.14 % del total de los grupos."
7.- ¿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?
Filtro4 <- subset(Cn.Equipos, Cn.Equipos[,1]=="América"&Cn.Equipos[,2]=="Guadalajara")
Filtro4
## [,1] [,2] [,3]
## [1,] "América" "Guadalajara" "Monterrey"
## [2,] "América" "Guadalajara" "Santos"
Frecuencia4 <- nrow(Filtro4)
Frecuencia4
## [1] 2
paste("Existen ", Frecuencia4, " ocasiones en las que aparece de manera contigua y en este orden los equipos de América y Guadalajara en la primer y segunda columna respectivamente, de un total de ", nrow(Cn.Equipos), " grupos y representan el ", round(Frecuencia4 / nrow(Cn.Equipos) * 100, 2), "% del total.")
## [1] "Existen 2 ocasiones en las que aparece de manera contigua y en este orden los equipos de América y Guadalajara en la primer y segunda columna respectivamente, de un total de 20 grupos y representan el 10 % del total."
8.- ¿En cuántas ocasiones aparece de manera contigua y en este orden los equipos de Atlas y Guadalajara en la primera y segunda columna respectivamente?
Filtro5 <- subset(Cn.Equipos, Cn.Equipos[,1]=="Atlas"&Cn.Equipos[,2]=="Guadalajara")
Filtro5
## [,1] [,2] [,3]
## [1,] "Atlas" "Guadalajara" "Monterrey"
## [2,] "Atlas" "Guadalajara" "Santos"
Frecuencia5 <- nrow(Filtro5)
Frecuencia5
## [1] 2
paste("Existen ", Frecuencia5, " ocasiones en las que aparece de manera contigua y en este orden los equipos de Atlas y Guadalajara en la primer y segunda columna respectivamente, de un total de ", nrow(Cn.Equipos), " grupos y representan el ", round(Frecuencia5 / nrow(Cn.Equipos) * 100, 2), "% del total.")
## [1] "Existen 2 ocasiones en las que aparece de manera contigua y en este orden los equipos de Atlas y Guadalajara en la primer y segunda columna respectivamente, de un total de 20 grupos y representan el 10 % del total."
¿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?
#Filtr6 <- subset(Cn.Equipos, (Cn.Equipos[,1] == "Guadalajara" & Cn.Equipos[,2] == "Mazatlán")
#| (Cn.Equipos[,2] == "Guadalajara" & Cn.Equipos[,3] == "Mazatlán")
#|
#(Cn.Equipos[,3] == "Guadalajara" & Cn.Equipos[,4] == "Mazatlán")
#| (Cn.Equipos[,4] == "Guadalajara" & Cn.Equipos[,5] == "Mazatlán"))
#Filtro6
#Frecuencia6 <- nrow(Filtro6)
#paste("Existen ", Frecuencia6, " aparece de manera contigua y en este orden los equipos de Guadalajara y Mazatlán en cualquier columna , de un total de ", nrow(Cn.Equipos), " representan ", round(Frecuencia6 / nrow(Cn.Equipos) * 100, 2), "%")
No se puede obtener este resultado puesto que no existen 5 columnas dentro del Data Frame de Equipos :(