You are on page 1of 6

Mtodos Cuantitativos en Recursos Naturales

Prctico 2 Trabajando con R


En este prctico, trabajaremos con probabilidades y probabilidades condicionales. Para eso, cargaremos una
nueva librera prob (https://cran.r-project.org/package=prob) con diversas funciones tiles:

> install.packages("prob")
> library(prob)

Ejemplo 1: Cartas
Generemos un juego de cartas virtual. Son 13 cartas y 4 naipes, 52 cartas en total, con la funcin cards:

> cards()
rank suit
1 2 Club
2 3 Club
3 4 Club
4 5 Club
...
50 Q Spade
51 K Spade
52 A Spade

Cul es la probabilidad de sacar cada una de las cartas? Podemos calcularlo numricamente como P =
1/Total o entonces empleando makespace = TRUE para calcular la probabilidad de cada evento.

> P <- 1/52


> P
[1] 0.01923077
> cards(makespace = TRUE)
rank suit probs
1 2 Club 0.01923077
2 3 Club 0.01923077
3 4 Club 0.01923077
4 5 Club 0.01923077
...

Vamos como obtener un subgrupo determinado de cartas con el comando subset. Por ejemplo, cartas del
naipe Espada (grupo S) o cartas iguales a 7 y 8 (grupo X):

> S <- subset(cards(), suit == "Spade")


> S
rank suit
40 2 Spade
41 3 Spade
42 4 Spade
43 5 Spade
44 6 Spade
45 7 Spade
46 8 Spade
47 9 Spade
48 10 Spade
49 J Spade
50 Q Spade
51 K Spade
52 A Spade
> X <- subset(cards(), rank %in% 7:8)
> X
rank suit
6 7 Club
7 8 Club
19 7 Diamond
20 8 Diamond
32 7 Heart
33 8 Heart
45 7 Spade
46 8 Spade

Cul es la probabilidad de sacar una carta de S o X? Esa probabilidad es P(S X), que se puede calcular
como el nmero de cartas en S X multiplicado por la probabilidad de sacar cada carta (P = 1/52):

> union(S,X)
rank suit
6 7 Club
7 8 Club
19 7 Diamond
20 8 Diamond
32 7 Heart
33 8 Heart
40 2 Spade
41 3 Spade
42 4 Spade
43 5 Spade
44 6 Spade
45 7 Spade
46 8 Spade
47 9 Spade
48 10 Spade
49 J Spade
50 Q Spade
51 K Spade
52 A Spade
> 19*(1/52)
[1] 0.3653846

Y cul es la probabilidad de sacar a una carta que pertenece a S y X? Eso corresponde a P(S X), y se
calcula de forma similar:

> intersect(S,X)
rank suit
45 7 Spade
46 8 Spade
> 2*(1/52)
[1] 0.03846154

Calculemos ahora la probabilidad de obtener un royal flush (10, J, Q, K, A) de corazones. Aqu, aplicamos la
regla del o (suma de probabilidades), del y (producto de probabilidades) y muestreo sin remplazo. Intente
descubrir cmo se obtienen los nmeros abajo:

> P.flush <- (5/52)*(4/51)*(3/50)*(2/49)*(1/48)


> P.flush
[1] 3.847693e-07

La probabilidad es P = 3.85 10-7, o 3.85 en diez millones!


Intentemos resolver este problema ahora empleando combinatorias. Sabemos que hay solamente una
combinacin de cartas que resulta en un royal flush de corazones, y que el total de combinatorias de 5 cartas
de un mazo de 52 corresponde a 52C5. Podemos calcular este total con la funcin choose o a mano con la
funcin factorial y la ecuacin para nCk:

> choose(52,5)
[1] 2598960
> factorial(52)/(factorial(5)*factorial(52-5))
[1] 2598960
> P.flush <- 1/2598960
> P.flush
[1] 3.847693e-07

Ejemplo 2: Dados
Intentemos la suerte con dados virtuales. Podemos tirar n dados con la funcin rolldie, como aqu se
demuestra para 4 dados.

> rolldie(3)
X1 X2 X3
1 1 1 1
2 2 1 1
3 3 1 1
4 4 1 1
5 5 1 1
6 6 1 1
7 1 2 1
8 2 2 1
9 3 2 1
...
213 3 6 6
214 4 6 6
215 5 6 6
216 6 6 6

Hay un total de 216 permutaciones, ya que son seis posibilidades en cada uno de los 3 intentos. O sea, 63:

> 6^3
[1] 216

Cul es la probabilidad de obtener una suma de esos dados igual a 15? Podemos determinar cuantas
permutaciones hay en este subgrupo y calcular P = resultados esperados/totales:

> S <- subset(rolldie(3), X1 + X2 + X3 == 15)


> S
X1 X2 X3
108 6 6 3
138 6 5 4
143 5 6 4
168 6 4 5
173 5 5 5
178 4 6 5
198 6 3 6
203 5 4 6
208 4 5 6
213 3 6 6
> 10/216
[1] 0.0462963
Y si quisiramos la probabilidad de obtener una suma igual a 15 siendo el primer dado 5? Podemos
determinar eso con P(S X). Definimos S arriba, ahora definamos X:

> X <- subset(rolldie(3), X1 == 5)


> intersect(S,X)
X1 X2 X3
143 5 6 4
173 5 5 5
203 5 4 6
> 3/216
[1] 0.01388889

Para obtener la probabilidad condicional de S dado X (es decir, la probabilidad de obtener con 3 dados una
suma mayor que 15 dado que en el primer dado obtuvimos un 5), debemos calcular P(S|X) = P(S X)/ P(X).
Sabemos que P(X) = 1/6, as que ya tenemos todo lo necesario para los clculos:

> (3/216)/(1/6)
[1] 0.08333333

Intentemos hacer este clculo nuevamente con la funcin Prob, que requiere que definamos la probabilidad
de cada evento con makespace = TRUE:

> S <- subset(rolldie(3, makespace=TRUE), X1 +X2 + X3 == 15)


> X <- subset(rolldie(3, makespace=TRUE), X1 == 5)
> Prob(S,given=X)
[1] 0.08333333

Empleemos ahora Prob para determinar si los clculos que hicimos a mano para estimar P(S), P(X) y P(S
X) estn correctos:

> Prob(S)
[1] 0.0462963
> Prob(X)
[1] 0.1666667
> Prob(intersect(S,X))
[1] 0.01388889

Resumen
Hemos aprendido a jugar cartas y dados virtuales en este prctico. Aqu tenemos funciones nicas para la
librera prob (no hemos usado algunas de ellas en los ejemplos) y otras genricas que pueden ser
empleadas en una multitud de problemas:

Librera prob
cards(makespace=TRUE) Juego de cartas
rolldie(n, makespace=TRUE) Permutaciones tirando n dados
tosscoin(n, makespace=TRUE) Permutaciones tirando n monedas (H = head, T = tail)
sim(x, ntrials = n) Simula un evento x de uno de los juegos arriba n veces
Prob(x, given = y) Calcula la probabilidad del evento x con o sin condicin y

Genricas
choose(n,k) Calcula en nmero de combinatorias de k elementos de un total n
factorial(n) Calcula el factorial de n (es decir, n!)

Importante!!! Para obtener informacin sobre una funcin, escriba ?funcin (p.ej., > ?rolldie).
Ejercicios empleando esas funciones:
Intente resolver estos ejercicios sobre las probabilidades de obtener distintas combinaciones de cartas en el
pker. Como la base conceptual puede ser compleja, en algunas ocasiones se explican los pasos y hay que
intentar resolver el problema con el cdigo de R. As que a calcular:

1. La probabilidad de obtener un straight-flush de cualquier naipe (straight-flush es una secuencia de 5 cartas


consecutivas excluyendo el royal-flush).

Pasos:
(i) Recuerde que la carta ms alta de la secuencia solo puede ser: rei, reina, jota, 10, 9, 8, 7, 6 o 5. En
trminos de combinatorias, tenemos 9C1.
(ii) Hay 4 naipes, o 4C1. Con eso ya es posible calcular todos los posibles straight-flush.
(iii) Se obtiene P = todos los straight-flush/todas combinaciones de 5 cartas.

R: 1.385169e-05 o aproximadamente 1.4 en 100 mil.

2. La probabilidad de obtener 4 cartas iguales.

Pasos:
(i) Si ordenamos las cartas con las 4 iguales primero, tenemos 13 posibles cudruples. En
combinatorias, 13C1.
(ii) Todos los naipes estn representados, as que solo hay 1 combinatoria posible. O sea, 1C1.
(iii) Al haber seleccionado las 4 cartas iguales, quedan otras 48 (= 52 4) por seleccionar, es decir
48C1.
(iv) Se obtiene P = todos los posibles 4 iguales/todas combinaciones de 5 cartas.

R: 0.000240096

3. La probabilidad de obtener un full house (3 cartas iguales + 1 par)

Pasos:
(i) Si ordenamos las cartas con las 3 iguales primero, tenemos 13 posibles tripletes o 13C1.
(ii) Recuerde que tres de los 4 naipes estn representados, o sea 4C3.
(iii) Para el par, quedan 12 posibles cartas o 12C1.
(iv) En ese caso 2 de los 4 naipes estn representados, o 4C2.
(v) Se obtiene P como explicado arriba.

R: 0.001440576

4. La probabilidad de obtener un flush regular (cartas del mismo naipe pero no secuencia, que corresponde a
un straight-flush o royal-flush):

Pasos:
(i) Empecemos con los posibles naipes, que son 4.
(ii) Para cada naipe, podemos obtener 5 cartas de 13, o 13C5.
(iii) Hay que remover de las combinatorias anteriores los straight-flush, que son las 10 secuencias
que empiezan con: As, rei, reina, jota, 10, 9, 8 7, 6 y 5.
(iv) Se obtiene P como explicado arriba.

R: 0.001965402

5. El nmero de palabras que podemos escribir con las letras de CASA. Son 4 letras, de las cuales la A se
repite.

R: 12
6. El nmero de palabras que podemos escribir con las letras de MISSISSIPPI. Son 11 letras, de las cuales la
S y la I se repiten cuatro veces y la P dos veces.

Pasos:
(i) Para el total de permutaciones sin considerar las letras repetidas tenemos 11!
(ii) Debemos dividir este valor por 4! 4! 2! que tiene en cuenta la repeticin de S, I y P.

R: 34650

7. La probabilidad de obtener:
a) una suma igual a 36 al tirar 6 dados.
R: 2.143347e-05

b) una suma igual a 36 dado que en un dado obtuvimos un 5.


R: 0 (es imposible, pero pngalo a prueba)

8. La probabilidad de que:
a) el producto de los nmeros obtenidos al tirar 2 dados sea 15.
R: 0.0555555

b) el producto de los nmeros obtenidos al tirar 2 dados sea 12.


R: 0.1111111

c) Por qu las probabilidades en (a) y (b) son distintas?

9. Cul es la probabilidad de obtener una carta de corazones entre 2 y 8?

R: 0.09615385 (detalle, 2 y 8 no se incluyen)

10. Cul es la probabilidad de obtener un 1 y 3 al tirar dos dados de 5 caras?

R: 0.08 (Ojo: Es una combinatoria!)

11. Cuntas permutaciones de 4 elementos puede uno obtener del set {a, b, c, d, e, f, g, h, i, j, k, l}? Y
cuantas combinatorias?

R: 11880 y 495

12. Juan obtuvo un total de 20 al tirar 6 dados comunes. Cul es la probabilidad de que usted obtenga:

a) un total mayor? R: 0.5464249


a) un total menor? R: 0.3631044
a) un total igual? R: 0.09047068
a) cualquiera de estos resultados? R: 1

13. Determine la probabilidad de obtener una carta 7 dado que el naipe es de corazones y la probabilidad de
obtener un naipe de corazones dado que la carta es 7 (se puede hacer de forma intuitiva, pero es
recomendable formalizarlo e intentar ponerlo a prueba con R).

R: 0.07692308 y 0.25

You might also like