0. Los datos de la práctica

Esta práctica no necesita de ningún archivo de datos.

1. Números pseudoleatorios

sample(x=0:9, size=3) # simula 3 números del 0 al 9, qué sale?
set.seed(seed=123) # establece la semilla
sample(x=0:9, size=3) # simula 3 números del 0 al 9, qué sale?
sample(x=0:9, size=3) # vuelve a simular, qué sale?
set.seed(seed=123) # ponemos misma semilla otra vez
sample(x=0:9, size=3) # obtenemos mismas simulaciones
sample(x=0:9, size=3) # y las siguientes también

2. Simulación de extracciones con y sin remplazo

# simular 1000 lanzamientos de un dado equilibrado
d = sample(x=1:6, size=1000, replace=TRUE) # prob, por defecto
d # vemos lo que ha salido
table(d) # vemos MEJOR lo que ha salido
table(d)/length(d) # ahora con frec. RELATIVAS
# simular 100 lanzamientos de una modeda trucada
# con probabilidad de cara igual a 0.7
m = sample(x=c('C', 'X'), size=100, replace=TRUE, prob=c(7,3))
m # vemos lo que ha salido
table(m) # vemos MEJOR lo que ha salido
table(m)/length(m) # frec. relativas
# simular elección de delegado y subsedelegado de clase
alumnos = 1:102 # tenemos listado para identificar cada uno
sample(x=alumnos, size=2) # replace y prob, por defecto
sample(x=alumnos, size=2) # ¿por qué son otros?

EJERCICIO 1:

  1. Simula una quiniela de 15 resultados, donde la probabilidad del 1 sea doble que la probabilidad del X y del 2, que serían iguales entre sí. Antes de simular, establece la semilla set.seed(1012).
    • Sol.: Poniendo como vector de objetos el vector c("1", "X", "2"), sale 1, 1, 1, 2, 1, 1, 2, 2, X, 1, 2, X, X, 1, X.
  2. Suponiendo que una gran población de PCs está compuesta por un 55% gobernados por el sistema operativo Windows, un 35% gobernados por alguna distribución de Linux, y un 10% que trabajan bajo alguna versión de MacOS, simula un muestreo de tamaño 2500, estableciendo de nuevo una semilla set.seed(1012), y representa la muestra en una tabla de frecuencias relativas. ¿Qué reflexión puedes hacer al ver las frecuencias relativas?
    • Sol.: Poniendo como vector de objetos el vector c("Windows", "Linux", "MacOS"), las frecuencias relativas son Windows = \(0.5504\), Linux = \(0.3456\) y MacOS = \(0.104\), que se aproximan bastante a los porcentajes que indica la población (como dice la ley de los grandes números).

FIN DE EJERCICIO 1

3. Ley de los grandes números

  • Una versión de la ley de los grandes números se puede interpretar de la siguiente forma:
    • Sea \(A\) un suceso posible de un experimento, que tiene probabilidad de ocurrir \(P(A)\).
    • Si se realiza indefinidamente el experimento (o simulaciones del mismo):
      • En ocasiones sí que ocurrirá el suceso \(A\).
      • En ocasiones no ocurrirá el suceso \(A\).
    • Contamos cuántas veces ocurre \(A\) tras \(n\) intentos del experimento.
    • Entonces \(\displaystyle{\lim_{n \to \infty} \frac{\text{Núm. de veces que ocurre } A \text{ en } n \text{ intentos}}{n} = P(A)}\) con probabilidad \(1\).
    • En otras palabras, si \(n\) es “grande”, la frecuencia relativa de observar \(A\) se aproxima a \(P(A)\) (con gran probabilidad, pero no es seguro).
    • Cuanto mayor sea \(n\), más seguridad y calidad de la aproximación.
    • Conclusión: la simulación numérica de un experimento “un gran número de veces” ayuda a “aproximar” valores de probabilidad de ese experimento aleatorio. Esto se llama método de MonteCarlo.
  • Ejemplo: ¿cuál es la probabilidad de \(A=\) “obtener un 7” al lanzar dos dados y sumar sus resultados?
    • Por teoría:
      • Lanzar dos dados, es un experimento donde hay equiprobabilidad en el resultado de cada dado
      • Espacio muestral para las suma de dos dados \(E = \{2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12\}\), con 11 resultados posibles.
        • \(A =\) “sumar 7” = \(\{7\}\) con 1 resultado favorable.
        • Por tanto \(P(A) = 1/11 = 0.090909...\)
        • Pero, ¿son resultados equiprobables? Mmm. NO!!!
      • Otro espacio muestral \(E=\{(1,1), (1,2), \ldots, (6,6)\}\) con 36 resultados posibles. ¿Son equiprobables? Sí.
        • \(A =\) “sumar 7” = \(\{(1,6), (2,5), \ldots, (6,1)\}\) con 6 resultados.
        • Por tanto \(P(A) = 6/36 = 1/6 = 0.166666...\). AHORA SÍ
    • Por MonteCarlo:
      1. Simulamos el lanzamiento de 2 dados 100000 veces (cuanto más, mejor, pero que no se cuelgue el ordenador)
      2. Sumamos los dados las 100000 veces
      3. Calculamos la frecuencia relativa del resultado “7”.
      set.seed(123)
      n = 1e5 # cantidad de simulaciones
      dado1 = sample(x=1:6, size=n, replace=TRUE)
      dado2 = sample(x=1:6, size=n, replace=TRUE)
      suma = dado1 + dado2
      head(dado1) # esto es solo para ver los primeros lamzamientes
      head(dado2) # esto es solo para ver los primeros lamzamientes
      head(suma) # esto es solo para ver las primeras suma
      table(suma)/n # frecuencias relativas de los resultados posibles
      1. Veamos gráficamente como se aproxima la frecuencia relativa a la probabilidad a medida que aumenta la cantidad de simulaciones

4. Simulación y probabilidades de variables aleatorias discretas de rango finito.

\(X\) 0 1 2 3 4 5
\(f(X)\) 0.3 0.2 0.2 0.1 0.1 0.1
# ponemos nombres adecuados
x = 0:5 # valores de X
fx = c(0.3,0.2,0.2,0.1,0.1,0.1) # probabilidades (funcion f)
# moda: es la X con mayor probabilidad
x[ which(fx==max(fx)) ]
# P(X<3): sumar las probabilidades correspondientes
sum( fx[ x < 3 ] )
# muestra de tamaño 50
set.seed(1012) # ponemos una semilla cualquiera
m = sample(x=x, size=50, replace=TRUE, prob=fx)
table(m) # para verla mejor

EJERCICIO 2

Un equipo de fútbol A, independientemente de contra quién juegue, marca una cantidad de goles que puede ser 0, 1, 2 ó 3 con probabilidades respectivas de 0.2, 0.5, 0.2 y 0.1. Otro equipo de fútbol B, independientemente de contra quién juegue, marca una cantidad de goles que puede ser 0, 1, 2 ó 3 con probabilidades respectivas 0.3, 0.2, 0.3 y 0.2.

  1. Simula solo 100 tanteos de cada equipo. Almacénalos en sendos vectores. Calcula el número de empates. Usa la semilla 1012 solo antes de la primera simulación
    • Sol.: 30
  2. Calcula de manera exacta o “lo más aproximada posible” la probabilidad de que los equipos A y B empaten al enfrentarse.
    • Sol.: 0.24 (exacta) o 0.23963 (aproximada por MonteCarlo usando de nuevo la semilla 1012 y con 1e5 simulaciones).

FIN EJERCICIO 2

5. Simulación y probabilidades en modelos de variable aleatoria ya programados

Modelo Nombre R Parámetros Significado
Binomial binom size, prob Número de éxitos al hacer size intentos con “probabilidad de éxito” prob
Binomial negativo nbinom size, prob Número de no-éxitos hasta encontrar size éxitos al hacer intentos de “en pruebas de Bernoulli independientes de parámetro”probabilidad de éxito” prob (ojo no es el número de intentos, sino de “fracasos”)
Hipergeométrico hyper m, n, k Número de bolas éxito al extraer k bolas (sin remplazo) de una urna con m bolas éxito y n bolas no-éxito
Poisson pois lambda Número de ocurrencias en un proceso de Poisson de media (o intensidad) lambda por unidad de intervalo (la media es proporcional a la longitud del intervalo)
Exponencial exp rate Atención! Dos planteamientos posibles: (1) Exponencial correspondiente a un proceso de Poisson de media rate; (2) Exponencial de media 1/rate
Uniforme unif min, max Uniforme en el intervalo [min, max]
Normal norm mean, sd Normal de media mean y desviación típica sd (la varianza es el cuadrado de la desviación típica)
\(\chi^2\) o Ji-cuadrado chisq df Ji-cuadrado con df grados de libertad
\(t\) de Student t df \(t\) de Student con df grados de libertad
\(F\) de Snedecor f df1, df2 \(F\) de Snedecor con df1 y df2 grados de libertad

5.1. Funciones que calculan probabilidades

  • Las probabilidades de los sucesos más comunes se calculan mediante las funciones de probabilidad \(f\) y \(F\) (ver tabla a continuación).
ProbabIlidad Var. DISCRETA (binomial, binomial negativa, hipergeométrica, Poisson,…) Var. CONTINUA (uniforme, exponencial, normal, Ji-cuadrado, \(t\) de Student, \(F\) de Snedecor,…)
\(P(X=a)\) \(f(a)\) \(0\)
\(P(X \neq a)\) \(1 - f(a)\) \(1\)
\(P(X \leq a)\) \(F(a)\) \(F(a)\)
\(P(X < a)\) \(F(a-1)\) \(F(a)\)
\(P(X > a)\) \(1 - F(a)\) \(1 - F(a)\)
\(P(X \geq a)\) \(1 - F(a-1)\) \(1 - F(a)\)
\(P(a < X \leq b)\) \(F(b) - F(a)\) \(F(b) - F(a)\)
\(P(a < X < b)\) \(F(b-1) - F(a)\) \(F(b) - F(a)\)
\(P(a \leq X \leq b)\) \(F(b) - F(a-1)\) \(F(b) - F(a)\)
\(P(a \leq X < b)\) \(F(b-1) - F(a-1)\) \(F(b) - F(a)\)
  • R tiene programadas las funciones \(f(x)\) y \(F(x)\) de los principales modelos de probabilidad. Su sintaxis es un tanto especial.

5.1.1. Función \(f(x)\) (de probabilidad o densidad de probabilidad)

  • Sintaxis genérica (mirar tabla de modelos):
    • \(f(x) =\) d[NombreRModelo](x=\(x\), NombreParametro1=ValorParametro1, etc)
  • Ejemplos:
    • \(f(5)\) para el modelo binomial de parámetros \(n=5\) y \(p=0.25\)
      • dbinom(x=5, size=5, prob=0.25)
    • \(f(5)\) para el modelo Poisson de media \(\mu=4.3\)
      • dpois(x=5, lambda=4.3)
  • Ejemplo: ¿cuánto vale \(P(X=6)\) si \(X\) sigue el modelo de Poisson de media \(\mu=4.5\)?
    • \(P(X=6) = f(6) =\) dpois(x=6, lambda=4.5) \(= 0.1281201\).
  • Listado completo:
    • dbinom(x=, size=, prob=)
    • dnbinom(x=, size=, prob=)
    • dhyper(x=, m=, n=, k=)
    • dpois(x=, lambda=)
    • dexp(x=, rate=)
    • dunif(x=, min=, max=)
    • dnorm(x=, mean=, sd=)
    • dchisq(x=, df=)
    • dt(x=, df=)
    • df(x=, df1=, df2=)

5.1.2. Función \(F(x)\) (de distribución o probabilidad acumulada)

  • Sintaxis genérica (mirar tabla de modelos):
    • \(F(x) =\) p[NombreRModelo](q=\(x\), NombreParametro1=ValorParametro1, etc)
  • Ejemplos:
    • \(F(5)\) para el modelo binomial de parámetros \(n=5\) y \(p=0.25\)
      • pbinom(q=5, size=5, prob=0.25)
    • \(F(5)\) para el modelo normal de media \(4.3\) y desviación típica \(0.7\)
      • pnorm(q=5, mean=4.3, sd=0.7)
  • Ejemplo: ¿cuánto vale \(P(2.85 \leq X \leq 3.25)\) si \(X\) sigue el modelo normal de media \(\mu=2.97\) y desviación típica \(\sigma = 0.83\)?
    • \(P(2.85 \leq X \leq 3.25) = F(3.25) - F(2.85) =\) pnorm(q=3.25, mean=2.97, sd=0.83) - pnorm(q=2.85, mean=2.97, sd=0.83) \(= 0.1895513\).
  • Listado completo:
    • pbinom(q=, size=, prob=)
    • pnbinom(q=, size=, prob=)
    • phyper(q=, m=, n=, k=)
    • ppois(q=, lambda=)
    • pexp(q=, rate=)
    • punif(q=, min=, max=)
    • pnorm(q=, mean=, sd=)
    • pchisq(q=, df=)
    • pt(q=, df=)
    • pf(q=, df1=, df2=)

5.2. Función de cuantiles: calcula cuantiles

  • El cuantil de orden \(p\) de una variable aleatoria \(X\) se denota por \(X_p\) y es el menor valor que “deja a su izquierda” una probabilidad \(p\) (o más). Por tanto cumple \(P(X \leq X_p) \geq p\), es decir \(F(X_p) \geq p\). Por tanto, \(X_p = F^{-1}(p)\) es “como” la función inversa de \(F\).
  • Sintaxis genérica (mirar tabla de modelos):
    • \(X_p = F^{-1}(p) =\) q[NombreRModelo](p=\(p\), NombreParametro1=ValorParametro1, etc)
  • Ejemplos:
    • Percentil \(95\) del modelo normal de media \(4.3\) y desviación típica \(0.7\)
      • Percentil \(95\) = Cuantil \(0.95\)
      • qnorm(p=0.95, mean=4.3, sd=0.7)
    • Mediana del modelo exponencial de media \(10.0\) (¡ojo! leer bien el modelo)
      • Mediana = Cuantil \(0.5\)
      • qexp(p=0.5, rate=1/10.0)
  • Listado completo:
    • qbinom(p=, size=, prob=)
    • qnbinom(p=, size=, prob=)
    • qhyper(p=, m=, n=, k=)
    • qpois(p=, lambda=)
    • qexp(p=, rate=)
    • qunif(p=, min=, max=)
    • qnorm(p=, mean=, sd=)
    • qchisq(p=, df=)
    • qt(p=, df=)
    • qf(p=, df1=, df2=)

5.3. Función de simulaciones: hace muestras aleatorias

  • Sintaxis genérica (mirar tabla de modelos):
    • Vector con \(n\) simulaciones \(=\) r[NombreRModelo](n=\(n\), NombreParametro1=ValorParametro1, etc)
  • Ejemplos:
    • 20 simulaciones del modelo uniforme en el intervalo \([0,10]\)
      • runif(n=20, min=0, max=10)
    • 100 simulaciones del modelo de Poisson de intensidad \(\lambda=4\)
      • rpois(n=100, lambda=4)
    • Excepción: para el modelo hipergeométrico, se pone nn para el número de simulaciones, porque ya tiene un argumento n)
  • Listado completo:
    • rbinom(n=, size=, prob=)
    • rnbinom(n=, size=, prob=)
    • rhyper(nn=, m=, n=, k=)
    • rpois(n=, lambda=)
    • rexp(n=, rate=)
    • runif(n=, min=, max=)
    • rnorm(n=, mean=, sd=)
    • rchisq(n=, df=)
    • rt(n=, df=)
    • rf(n=, df1=, df2=)

5.4. Más ejemplos:

5.4.1. Ejercicios (soluciones en la siguiente sección)

  1. Si \(X\) sigue el modelo Binomial con parámetros \(n = 10\) y \(p = 0.75\), calcula:
    1. \(P(X \leq 4)\).
    2. \(P(X = 8)\).
    3. El percentil \(33\).
    4. Simula 50 datos de esta variable binomial (usando antes la semilla 1012).
  2. Calcula \(P(X = 0)\) si X sigue el modelo de Poisson de intensidad 2.3 veces/min en un intervalo de 5 min (ayuda: es el modelo el Poisson de media \(2.3 \times 5\)).
  3. En una normal de media 5 y varianza 2, el 95% de los valores es inferior o igual a… (ayuda: calcula el percentil 95)
  4. Una urna tiene 10 bolas con 4 de ellas blancas. Se van a extraer 2 bolas sin remplazo. Calcula la probabilidad de que salga alguna blanca (ayuda: es \(P(X>0)\) con el modelo hipergeométrico, mira la tabla a ver si deduces los parámetros).

5.4.2. Soluciones (de los ejercicios de la sección anterior)

  1. Primero:
    1. \(P(X \leq 4) = F(4) =\) pbinom(q=4, size=10, prob=0.75) \(= 0.0197277\).
    2. \(P(X = 8) = f(8) =\) dbinom(x=8, size=10, prob=0.75) \(= 0.2815676\).
    3. \(X_{0.33} =\) qbinom(p=0.33, size=10, prob=0.75) \(= 7\).
    4. rbinom(n=50, size=10, prob=0.75) devuelve la muestra.
  2. Segundo: Se trata de \(P(X = 0) = f(0)\). Por tanto: dpois(x=0, lambda=2.3*5) \(= 0.0000101\).
  3. Tercero: Se trata de calcular el cuantil del orden 0.95, por tanto: qnorm(p=0.95, mean=5, sd=sqrt(2)) \(= 7.3261743\).
  4. Cuarto: Es el modelo hipergeométrico de parámetros m=4, n=6 y k=2 (ver tabla) y se pide P(X>0). Entonces \(P(X > 0) = 1 - F(0)\). Por tanto: 1 - phyper(q=0, m=4, n=6, k=2) = \(0.6666667\).

5.5. Más ejercicios

  1. Calcula la probabilidad \(P(X > 5)\) cuando \(X \sim \text{Bin}(n=10, p=0.7)\), el modelo binomial de parámetros \(10\) y \(0.7\).
    • Sol.: 0.8497317.
  2. Calcula la probabilidad \(P(X \neq 3)\) cuando \(X \sim \text{Po}(\mu=5.5)\), el modelo de Poisson de intensidad \(5.5\).
    • Sol.: 0.8866772.
  3. Calcula la probabilidad \(P(X < 3)\) cuando \(X\) cuenta las observaciones de un proceso de Poisson de intensidad \(\lambda = 2.3\) en un intervalo de longitud \(T=2\). (Ayuda: cuando se da la intensidad o media, y un intervalo, la nueva intensidad o media del proceso de Poisson es \(\lambda \times T\))
    • Sol.: 0.1626387.
  4. Calcula la probabilidad \(P(1.2 \leq X \leq 3.8)\) cuando \(X \sim \text{U}(a=0, b=5)\), el modelo uniforme en el intervalo \([0, 5]\).
    • Sol.: 0.52.
  5. Calcula la probabilidad \(P(1.2 \leq X \leq 3.8)\) cuando \(X \sim \text{Exp}(\lambda=5)\), el modelo exponencial asociado a un proceso de Poisson de intensidad \(5\).
    • Sol.: 0.0024787.
  6. Calcula la probabilidad \(P(X > 8)\) cuando X sigue el modelo exponencial de media \(\beta=6.5\).
    • Sol: 0.2920678.
  7. Calcula la probabilidad \(P(5 < X < 9)\) cuando \(X \sim \text{N}(\mu= 4, \sigma=2)\), el modelo normal de media \(4\) y desviación típica \(2\).
    • Sol.: 0.3023279.
  8. Calcula la probabilidad \(P(X > 5)\) cuando \(X \sim \text{N}(\mu= 4, \sigma^2=2)\), el modelo normal de media \(4\) y varianza \(2\).
    • Sol.: 0.2397501.
  9. Calcula el cuantil de orden \(0.95\) del modelo Ji-cuadrado con 5 grados de libertad.
    • Sol.: 11.0704977.
  10. Calcula el cuantil de orden \(0.05\) del modelo t de Student con 9 grados de libertad.
    • Sol.: -1.8331129.
  11. Calcula el cuantil de orden \(0.5\) del modelo F de Snedecor con 3 y 5 grados de libertad (ayuda: el orden de los grados de libertad es importante).
    • Sol.: 0.9071462.
  12. Algunos emprendedores poco éticos venden más billetes que sitios disponibles (recintos, medios de transporte, telecos, etc., con el beneficio económico que ello comporta), y con la esperanza de que algunos no irán y habrá sitio para todos, (es decir, sin incurrir en la estafa llamada ‘overbooking’). Supongamos que los responsables de un recinto con una cabida de 100 personas, venden 110 entradas. Si hay una probabilidad del 15% de que cada portador de entrada no vaya finalmente al recinto, realiza 365 simulaciones del número de personas que acudiría al recinto los 365 días de un año entero, y calcula en cuántas de esas simulaciones se ha incurrido en overbooking (ayuda: se trata del modelo binomial con \(n=110\) y \(p=0.85\)). Usa la semilla 1012.
    • Sol.: 9 (moraleja: si las multas no son fuertes, ¡el delito puede compensar!)