Determinar probabilidades
library(knitr) # Para poder cargar la imagen jpg
include_graphics("/Users/memow/Downloads/monedas.jpg")
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)
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)
S={5,10,25,50}
S <- c(5,10,25,50)
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 %"
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
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 % "
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?
Z <- c(1,2,5,10,20)
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 %"
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 % "