Caso: 8 Cuatro monedas. Permutaciones y Probabilidades

Guillermo Villarreal Gallegos

Objetivo

Determinar probabilidades

library(knitr) # Para poder cargar la imagen jpg
include_graphics("/Users/memow/Downloads/monedas.jpg")

Descripción

Ejercicio 4.5. Cuatro monedas. Un frasco contiene cuatro monedas: una de 5, una de 10, una de 25 y una de 50 centavos. Se seleccionan al azar tres monedas del frasco. (Mendenhall, Beaver & Beaver, 2010], p.135)

  • Haga una lista de los eventos simples en S.
  • ¿Cuál es la probabilidad de que la selección contenga la moneda de 50 centavos?
  • ¿Cuál es la probabilidad de que la suma total sacada sea igual a 60 centavos o más?

Proceso

  • Cargar librerías
  • Definir lista de los eventos simples en S. S={5,10,25,50}
  • ¿Cuál es la probabilidad de que la selección contenga la moneda de 50 centavos?
  • ¿Cuál es la probabilidad de que la suma total sacada sea igual a 60 centavos o más?
  • Interpretación del caso

1. Cargar librerías

  • Se carga la librería dplyr para filtrar, seleccionar, generr nuevas variables (mutate) de un conjunto de * datos o data.frame
  • Se carga la librería gtools para determnar permutaciones y combinaciones
  • Se carga la librería knitr para imágenes y tablas
library(dplyr)   
## 
## 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
library(gtools)  
## Warning: package 'gtools' was built under R version 4.0.3
library(knitr)

2. Definir lista de los eventos simples en S.

S={5,10,25,50}

S <- c(5,10,25,50)

3. ¿Cuál es la probabilidad de que la selección contenga la moneda de 50 centavos?

length() determina el número de elemenos (cuantos) de un vector S Los [] determina la posición del valor comparado which() identifica cuales elementos corresponden a una expresión S==50

n <- length(S)
cuantas <- length(S[which(S==50)])
prob <- cuantas / n
paste("La probabilidad de que la selección contenga la moneda de 50 centavos es: 1 /",n, " o sea: ", prob, " o ", prob * 100, "%")
## [1] "La probabilidad de que la selección contenga la moneda de 50 centavos es: 1 / 4  o sea:  0.25  o  25 %"

4. ¿Cuál es la probabilidad de que la suma total sacada sea igual a 60 centavos o más?

Valores iniciales de n y r n es el total elementos. El valor de n=4 r es de cuantos en cuantos o grupos para las permutaciones, de r=3.

n <- length(S)
r <- 3 

Hacer las permutaciones posibles

permuta <- permutations(n,r,S)
permuta
##       [,1] [,2] [,3]
##  [1,]    5   10   25
##  [2,]    5   10   50
##  [3,]    5   25   10
##  [4,]    5   25   50
##  [5,]    5   50   10
##  [6,]    5   50   25
##  [7,]   10    5   25
##  [8,]   10    5   50
##  [9,]   10   25    5
## [10,]   10   25   50
## [11,]   10   50    5
## [12,]   10   50   25
## [13,]   25    5   10
## [14,]   25    5   50
## [15,]   25   10    5
## [16,]   25   10   50
## [17,]   25   50    5
## [18,]   25   50   10
## [19,]   50    5   10
## [20,]   50    5   25
## [21,]   50   10    5
## [22,]   50   10   25
## [23,]   50   25    5
## [24,]   50   25   10

Con las permutaciones sacar la suma de cada renglón, Conviertiendo antes las permutaciones a data.frame para su mejor trato. Poner nombres a las columnas como moneda1, moneda2, y moneda3 c(‘m1’, ‘m2’, ‘m3’), Se construye la columna suma median ela función mutate

permuta <- data.frame(permuta)  # Se convierte a data.frame
names(permuta) <- c('m1', 'm2', 'm3')
permuta <- mutate(permuta, suma = m1 + m2 + m3) # Genera nueva columna
permuta
##    m1 m2 m3 suma
## 1   5 10 25   40
## 2   5 10 50   65
## 3   5 25 10   40
## 4   5 25 50   80
## 5   5 50 10   65
## 6   5 50 25   80
## 7  10  5 25   40
## 8  10  5 50   65
## 9  10 25  5   40
## 10 10 25 50   85
## 11 10 50  5   65
## 12 10 50 25   85
## 13 25  5 10   40
## 14 25  5 50   80
## 15 25 10  5   40
## 16 25 10 50   85
## 17 25 50  5   80
## 18 25 50 10   85
## 19 50  5 10   65
## 20 50  5 25   80
## 21 50 10  5   65
## 22 50 10 25   85
## 23 50 25  5   80
## 24 50 25 10   85
paste("Número de casos posibles de permutaciones", nrow(permuta))
## [1] "Número de casos posibles de permutaciones 24"

Se determinan el conjunto de opciones posibles para suma mayor o igual a 60 con la función filter() Se determinan cuales y cuantas

cuales <- filter(permuta, suma >= 60)
cuales
##    m1 m2 m3 suma
## 1   5 10 50   65
## 2   5 25 50   80
## 3   5 50 10   65
## 4   5 50 25   80
## 5  10  5 50   65
## 6  10 25 50   85
## 7  10 50  5   65
## 8  10 50 25   85
## 9  25  5 50   80
## 10 25 10 50   85
## 11 25 50  5   80
## 12 25 50 10   85
## 13 50  5 10   65
## 14 50  5 25   80
## 15 50 10  5   65
## 16 50 10 25   85
## 17 50 25  5   80
## 18 50 25 10   85
cuantas <- nrow(cuales)
paste("En ", cuantas, " ocasiones la suma es 60 o mas de ", nrow(permuta), " posibles ")
## [1] "En  18  ocasiones la suma es 60 o mas de  24  posibles "
paste("La probabilidad de que la suma sea 60 o mas es del ", cuantas , "/", nrow(permuta), " o sea", cuantas / nrow(permuta), " que significa el:", cuantas / nrow(permuta) * 100, " % ")
## [1] "La probabilidad de que la suma sea 60 o mas es del  18 / 24  o sea 0.75  que significa el: 75  % "

A realizar:

Se solicita simular con un nuevo experimento intercambiando por monedas mexicanas de $1 peso, $2 pesos $5 pesos $10 pesos y una quinta moneda de $20 pesos y repetir el experimento. Se seleccionan al azar cuatro monedas del frasco. Definir lista de los eventos simples en S. S={1,2,5,10,20} ¿Cuál es la probabilidad de que la selección contenga la moneda de 10 pesos? ¿Cuál es la probabilidad de que la suma total sacada sea igual o superior a 25 pesos?

Lista de monedas

Z <- c(1,2,5,10,20)

¿Cuál es la probabilidad de que la selección contenga la moneda de 10 pesos?

L <- length(Z)
diez <- length(Z[which(Z==10)])
probaa <- diez / L
paste("La probabilidad de que la selección contenga la moneda de 10 pesos es: 1 /",L, " o sea: ", probaa, " o ", probaa * 100, "%")
## [1] "La probabilidad de que la selección contenga la moneda de 10 pesos es: 1 / 5  o sea:  0.2  o  20 %"

¿Cuál es la probabilidad de que la suma total sacada sea igual o superior a 25 pesos?

L <- length(Z)
r <- 3
permutas <- permutations(L,r,Z)
permutas
##       [,1] [,2] [,3]
##  [1,]    1    2    5
##  [2,]    1    2   10
##  [3,]    1    2   20
##  [4,]    1    5    2
##  [5,]    1    5   10
##  [6,]    1    5   20
##  [7,]    1   10    2
##  [8,]    1   10    5
##  [9,]    1   10   20
## [10,]    1   20    2
## [11,]    1   20    5
## [12,]    1   20   10
## [13,]    2    1    5
## [14,]    2    1   10
## [15,]    2    1   20
## [16,]    2    5    1
## [17,]    2    5   10
## [18,]    2    5   20
## [19,]    2   10    1
## [20,]    2   10    5
## [21,]    2   10   20
## [22,]    2   20    1
## [23,]    2   20    5
## [24,]    2   20   10
## [25,]    5    1    2
## [26,]    5    1   10
## [27,]    5    1   20
## [28,]    5    2    1
## [29,]    5    2   10
## [30,]    5    2   20
## [31,]    5   10    1
## [32,]    5   10    2
## [33,]    5   10   20
## [34,]    5   20    1
## [35,]    5   20    2
## [36,]    5   20   10
## [37,]   10    1    2
## [38,]   10    1    5
## [39,]   10    1   20
## [40,]   10    2    1
## [41,]   10    2    5
## [42,]   10    2   20
## [43,]   10    5    1
## [44,]   10    5    2
## [45,]   10    5   20
## [46,]   10   20    1
## [47,]   10   20    2
## [48,]   10   20    5
## [49,]   20    1    2
## [50,]   20    1    5
## [51,]   20    1   10
## [52,]   20    2    1
## [53,]   20    2    5
## [54,]   20    2   10
## [55,]   20    5    1
## [56,]   20    5    2
## [57,]   20    5   10
## [58,]   20   10    1
## [59,]   20   10    2
## [60,]   20   10    5
permutaF <- data.frame(permutas)  # Se convierte a data.frame
names(permutaF) <- c('n1', 'n2', 'n3')
permutaF <- mutate(permutaF, suma = n1 + n2 + n3) # Genera nueva columna
permutaF
##    n1 n2 n3 suma
## 1   1  2  5    8
## 2   1  2 10   13
## 3   1  2 20   23
## 4   1  5  2    8
## 5   1  5 10   16
## 6   1  5 20   26
## 7   1 10  2   13
## 8   1 10  5   16
## 9   1 10 20   31
## 10  1 20  2   23
## 11  1 20  5   26
## 12  1 20 10   31
## 13  2  1  5    8
## 14  2  1 10   13
## 15  2  1 20   23
## 16  2  5  1    8
## 17  2  5 10   17
## 18  2  5 20   27
## 19  2 10  1   13
## 20  2 10  5   17
## 21  2 10 20   32
## 22  2 20  1   23
## 23  2 20  5   27
## 24  2 20 10   32
## 25  5  1  2    8
## 26  5  1 10   16
## 27  5  1 20   26
## 28  5  2  1    8
## 29  5  2 10   17
## 30  5  2 20   27
## 31  5 10  1   16
## 32  5 10  2   17
## 33  5 10 20   35
## 34  5 20  1   26
## 35  5 20  2   27
## 36  5 20 10   35
## 37 10  1  2   13
## 38 10  1  5   16
## 39 10  1 20   31
## 40 10  2  1   13
## 41 10  2  5   17
## 42 10  2 20   32
## 43 10  5  1   16
## 44 10  5  2   17
## 45 10  5 20   35
## 46 10 20  1   31
## 47 10 20  2   32
## 48 10 20  5   35
## 49 20  1  2   23
## 50 20  1  5   26
## 51 20  1 10   31
## 52 20  2  1   23
## 53 20  2  5   27
## 54 20  2 10   32
## 55 20  5  1   26
## 56 20  5  2   27
## 57 20  5 10   35
## 58 20 10  1   31
## 59 20 10  2   32
## 60 20 10  5   35
paste("Número de casos posibles de permutaciones", nrow(permutas))
## [1] "Número de casos posibles de permutaciones 60"
counter <- filter(permutaF, suma >= 25)
counter
##    n1 n2 n3 suma
## 1   1  5 20   26
## 2   1 10 20   31
## 3   1 20  5   26
## 4   1 20 10   31
## 5   2  5 20   27
## 6   2 10 20   32
## 7   2 20  5   27
## 8   2 20 10   32
## 9   5  1 20   26
## 10  5  2 20   27
## 11  5 10 20   35
## 12  5 20  1   26
## 13  5 20  2   27
## 14  5 20 10   35
## 15 10  1 20   31
## 16 10  2 20   32
## 17 10  5 20   35
## 18 10 20  1   31
## 19 10 20  2   32
## 20 10 20  5   35
## 21 20  1  5   26
## 22 20  1 10   31
## 23 20  2  5   27
## 24 20  2 10   32
## 25 20  5  1   26
## 26 20  5  2   27
## 27 20  5 10   35
## 28 20 10  1   31
## 29 20 10  2   32
## 30 20 10  5   35
cu <- nrow(counter)
paste("En ", cu, " ocasiones la suma es 25 o mas de ", nrow(permutas), " posibles ")
## [1] "En  30  ocasiones la suma es 25 o mas de  60  posibles "
paste("La probabilidad de que la suma sea 25 o mas es del ", cu , "/", nrow(permutas), " o sea", cu / nrow(permutas), " que significa el:", cu / nrow(permutas) * 100, " % ")
## [1] "La probabilidad de que la suma sea 25 o mas es del  30 / 60  o sea 0.5  que significa el: 50  % "