1. NÚMEROS PSEUDOALEATORIOS

Hay algoritmos DETERMINISTAS que generan largas sucesiones de números en el intervalo [0,1[, que no parecen seguir un patrón, y que cubren todo el intervalo de manera bastante uniforme, pero que se repiten con una periodicidad bastante larga.

# FUNCIÓN set.seed(seed)

2. SIMULACIÓN DE EXTRACCIONES CON Y SIN REMPLAZO

# FUNCIÓN sample(x, size, replace, prob)
# Argumentos:
#  x = vector con los objetos a muestrear (extraer)
#  size = tamaño de la muestra que se quiere obtener.
#  replace = ¿con remplazamiento? FALSE por defecto, indica si se 
#            remplaza o no el objeto extraído del vector.
#  prob = vector de probabilidades (o proporcionales, ya que
#         no es necesario que sumen 1). Por defecto da igual
#         probabilidad a todos los objetos del vector.
# una quiniela aleatoria de signos equiprobables
sample(x=c('1','X','2'), size=14, replace=TRUE)
##  [1] "1" "1" "1" "2" "1" "1" "1" "X" "X" "2" "1" "1" "2" "X"
# ¿te sale la misma quiniela que al profesor?
# establecemos semilla
set.seed(123)
sample(x=c('1','X','2'), size=14, replace=TRUE)
##  [1] "1" "2" "X" "2" "2" "1" "X" "2" "X" "X" "2" "X" "2" "X"
# una quiniela aleatoria con probabilidades más razonables
sample(x=c('1','X','2'), size=14, replace=TRUE, prob=c(3,2,1))
##  [1] "1" "2" "1" "1" "1" "2" "2" "X" "X" "2" "X" "X" "X" "X"
# una muestra de sistemas operativos de PC de 84 estudiantes
# con probabilidades 0.3, 0.1 y 0.6 de ser Linux, Mac y Windows
# respectivamente
x = sample(x=c('Linux','Mac','Windows'), size=84, replace=TRUE, 
           prob=c(0.3,0.1,0.6))
x # vemos qué ha salido
##  [1] "Windows" "Windows" "Mac"     "Mac"     "Linux"   "Linux"   "Windows"
##  [8] "Windows" "Linux"   "Windows" "Windows" "Windows" "Windows" "Windows"
## [15] "Windows" "Windows" "Windows" "Windows" "Windows" "Windows" "Windows"
## [22] "Linux"   "Windows" "Windows" "Linux"   "Windows" "Windows" "Windows"
## [29] "Windows" "Linux"   "Linux"   "Windows" "Linux"   "Windows" "Windows"
## [36] "Windows" "Linux"   "Windows" "Linux"   "Linux"   "Linux"   "Windows"
## [43] "Linux"   "Linux"   "Linux"   "Windows" "Windows" "Windows" "Windows"
## [50] "Linux"   "Windows" "Windows" "Windows" "Linux"   "Windows" "Linux"  
## [57] "Windows" "Windows" "Mac"     "Linux"   "Linux"   "Windows" "Windows"
## [64] "Linux"   "Windows" "Linux"   "Windows" "Windows" "Linux"   "Windows"
## [71] "Windows" "Windows" "Windows" "Windows" "Windows" "Mac"     "Windows"
## [78] "Linux"   "Mac"     "Linux"   "Windows" "Windows" "Mac"     "Windows"
table(x) # tabla de frecuencias
## x
##   Linux     Mac Windows 
##      25       6      53
table(x)/length(x) # tabla de frecuencias relativas
## x
##   Linux     Mac Windows 
## 0.29762 0.07143 0.63095
# repetimos con un tamaño de muestra muy grande para ilustrar 
# la "ley de los grandes números"
x = sample(x=c('Linux','Mac','Windows'), size=1e6, replace=TRUE, 
           prob=c(0.3,0.1,0.6))
table(x)/length(x) # tabla de frecuencias relativas
## x
##   Linux     Mac Windows 
## 0.29944 0.09997 0.60059
# compara las frec. relat. con las probabilidades

# Elegimos a delegado y subdelegado al azar 
# (suponemos 84 matriculados en una lista numerada)
sample(x=1:84, size=2)
## [1] 20 43

3. SIMULACIÓN Y PROBABILIDADES en VARIABLE ALEATORIA DISCRETA DE RANGO FINITO

\(X\) 0 1 2 3 4 5
\(f(X)\) 0.3 0.2 0.2 0.1 0.1 0.1
# pongamos nombres a las cosas para aplicar fórmulas
x = 0:5 # valores de X
fx = c(0.3,0.2,0.2,0.1,0.1,0.1) # probabilidades (funcion f)
# media: aplicar fórmula
media = sum(x*fx)
media
## [1] 1.8
# varianza: aplicar fórmula
varianza = sum( (x-media)^2 * fx )
varianza
## [1] 2.76
# moda: es la X con mayor probabilidad
x[ which(fx==max(fx)) ]
## [1] 0
# P(X<3): sumar las probabilidades correspondientes
sum( fx[ x < 3 ] )
## [1] 0.7
# muestra de tamaño 50
sample(x=x, size=50, replace=TRUE, prob=fx)
##  [1] 1 1 0 0 0 0 0 3 0 4 1 3 2 1 1 3 0 1 0 5 2 2 0 4 0 4 2 5 0 0 2 3 4 0 2
## [36] 3 1 0 2 0 5 1 0 2 2 0 1 0 4 2

4. SIMULACIÓN Y PROBABILIDADES EN MODELOS CONOCIDOS DE VARIABLE ALEATORIA

# Modelo             Nombre R  Parámetros  Significado 
# #################  ########  ##########  ###########
# binomial           binom     size, prob  Núm. de éxitos en 'size' pruebas de
#                                          Bernoulli indep. de parám. 'prob'.
# binomial negativo  nbinom    size, prob  Núm. de no-éxitos hasta encontrar 'size'
#                                          éxitos en pruebas de Bernoulli independ.
#                                          de parám. 'prob'.
#                                          (ojo no es el núm. de pruebas)
# hipergeométrico    hyper     m, n, k     Núm. de bolas éxito al extraer 
#                                          sin remplazo 'k' bolas de una urna con 
#                                          'm' bolas éxito y 'n' bolas no-éxito.
# Poisson            pois      lambda      Núm. de ocurrencias en un proceso de 
#                                          Poisson de media 'lambda'.
# exponencial        exp       rate        Exponencial corresp. a un proceso de 
#                                          Poisson de media 'rate' (ojo que la
#                                          media de la exponencial es 1/rate).
# uniforme           unif      min, max    Uniforme en el intervalo ['min', 'max'].
# normal             norm      mean, sd    Normal de media 'mean' y desv. tip. 'sd'.
#                                          ¡atención no es varianza sino desv. típ.!
# chi-cuadrado       chisq     df          Chi-cuadrado con 'df' grados de libertad.
# t de Student       t         df          t de Student con 'df' grados de libertad.
# F                  f         df1, df2    F de Snedecor con 'df1' y 'df2' grados
#                                          de libertad.

4.1. Funciones que calculan probabilidades

  • Cuando \(X\) es una variable DISCRETA, las probabilidades se pueden calcular con las funciones \(f(x)\) y \(F(x)\) de la siguiente forma:
    • \(P(X=a) = f(a)\)
    • \(P(X \neq a) = 1 - f(a)\)
    • \(P(X \leq a) = F(a)\)
    • \(P(X < a) = F(a-1)\)
    • \(P(X > a) = 1 - F(a)\)
    • \(P(X \geq a) = 1 - F(a-1)\)
    • \(P(a < X \leq b) = F(b) - F(a)\)
    • \(P(a < X < b) = F(b-1) - F(a)\)
    • \(P(a \leq X \leq b) = F(b) - F(a-1)\)
    • \(P(a \leq X < b) = F(b-1) - F(a-1)\)
  • Ejemplos de modelos de variable DISCRETA son: binomial, binomial negativa, hipergeométrica y Poisson.
  • Cuando \(X\) es una variable CONTINUA, las probabilidades se pueden calcular con las funciones \(f(x)\) y \(F(x)\) de la siguiente forma:
    • \(P(X=a) = 0\)
    • \(P(X \neq a) = 1\)
    • \(P(X \leq a) = F(a)\)
    • \(P(X < a) = F(a)\)
    • \(P(X > a) = 1 - F(a)\)
    • \(P(X \geq a) = 1 - F(a)\)
    • \(P(a < X \leq b) = F(b) - F(a)\)
    • \(P(a < X < b) = F(b) - F(a)\)
    • \(P(a \leq X \leq b) = F(b) - F(a)\)
    • \(P(a \leq X < b) = F(b) - F(a)\)
  • Ejemplos de modelos de variable CONTINUA son: uniforme en intervalo, exponencial y normal.
  • R tiene programadas las funciones \(f(x)\) y \(F(x)\) de los principales modelos de probabilidad. Su uso es un tanto especial.

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

  • Sintaxis del nombre de la función:
    • Prefijo d
    • Nombre R del modelo (mirar tabla)
  • Sintaxis de los argumentos de la función:
    • x= valor que del se quiere calcular la \(f(x)\)
    • Resto de parámetros del modelo (mirar tabla)

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

  • Sintaxis del nombre de la función:
    • Prefijo p
    • Nombre R del modelo (mirar tabla)
  • Sintaxis de los argumentos de la función:
    • q= valor del que se quiere calcular la \(F(x)\)
    • Resto de parámetros del modelo (mirar tabla)

Función de cuantiles: calcula cuantiles

  • Sintaxis del nombre de la función:
    • Prefijo q
    • Nombre R del modelo (mirar tabla)
  • Sintaxis de los argumentos de la función:
    • p= orden del cuantil que se quiere calcular
    • Resto de parámetros del modelo (mirar tabla)

Función de simulaciones: hace muestras

  • Sintaxis del nombre de la función:
    • Prefijo r
    • Acrónimo del modelo
  • Sintaxis de los argumentos de la función:
    • n= tamaño de la muestra (excepción para el modelo hipergeométrico, donde se llama nn)
    • Resto de parámetros del modelo
  • Ejemplos:
    • Calcula \(P(X \leq 4)\) si \(X\) sigue el modelo Binomial con n = 10 y p = 0.75.
      • Sol.: Primero hay que desarrollar hasta llegar a ‘f’ o ‘F’: \(P(X \leq 4) = F(4)\). Después aplicar la función que ha salido, en este caso la ‘F’.
      • pbinom(q=4, size=10, prob=0.75)
    • Calcula \(P(X = 0)\) si X sigue el modelo de Poisson de intensidad 2.3 veces/min en un intervalo de 5 min.
      • Sol.: Se trata de \(P(X = 0) = f(0)\). Por tanto:
      • dpois(x=0, lambda=2.3*5)
    • En una normal de media 5 y varianza 2, el 95% de los valores es inferior o igual a…
      • Sol.: Se trata de calcular el cuantil del orden 0.95, por tanto:
      • qnorm(p=0.95, mean=5, sd=sqrt(2))
    • 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.
      • Sol.: Es el modelo hipergeométrico de parámetros m=4, n=6 y k=2 (ver tabla) y se pide P(X>=1). Entonces \(P(X \geq 1) = 1 - P(X<1) = 1 - P(X \leq 0)\). Por tanto:
      • 1 - phyper(q=0, m=4, n=6, k=2)
    • 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 acude al recinto, y visualiza en cuantas de esas simulaciones se ha incurrido en overbooking.
        • Sol.: El número de asistentes sigue el modelo binomial, pues de 110 posibles, cada uno puede ir (o no ir) con probabilidad 0.85 (0.15 resp.) y la cantidad que se registra es el número de asistentes. Por eso:
          • acuden = rbinom(n=365, size=110, prob=0.85)
          • length( acuden[ acuden > 100] )
          • Moraleja: si las multas no son fuertes, el delito puede compensar!
  • EJERCICIO 3
    • 3.1. Calcula la probabilidad \(P(X > 5)\) cuando X ~ Bin(n=10, p=0.7), el modelo binomial de parámetros 10 y 0.7.
      • Sol.: 0.8497316674.
    • 3.2. Calcula la probabilidad \(P(X \neq 3)\) cuando X ~ Po(\(\mu\)=5.5)
      • Sol.: 0.886677233654257.
    • 3.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: la media es \(\lambda \times\) T)
      • Sol.: 0.162638702348171.
    • 3.4. Calcula la probabilidad \(P(1.2 \leq X \leq 3.8)\) cuando X ~ U(a=0, b=5), el modelo uniforme en el intervalo [0, 5].
      • Sol.: 0.52.
    • 3.5. Calcula la probabilidad \(P(1.2 \leq X \leq 3.8)\) cuando X ~ Exp(\(\lambda\)=5), el modelo exponencial asociado a un proceso de Poisson de intensidad 5.
      • Sol.: 0.00247874657386993.
    • 3.6. Calcula la probabilidad \(P(X > 8)\) cuando X sigue el modelo exponencial de media \(\beta\)=6.5. (Ayuda: la media de la exponencial es la inversa de la ‘rate’)
      • Sol: 0.292067823691414.
    • 3.7. Calcula la probabilidad \(P(5 < X < 9)\) cuando X ~ N(\(\mu\)= 4, \(\sigma\)=2).
      • Sol.: 0.302327873400211.
    • 3.8. Calcula la probabilidad \(P(X > 5)\) cuando X ~ N(\(\mu\)= 4, \(\sigma^2\)=2).
      • Sol.: 0.239750061093477.
    • 3.9. Calcula el cuantil de orden 0.95 del modelo Ji-cuadrado con 5 grados de libertad.
      • Sol.: 11.0704976935164.
    • 3.10. Calcula el cuantil de orden 0.05 del modelo t de Student con 9 grados de libertad.
      • Sol.: -1.833113.
    • 3.11. Calcula el cuantil de orden 0.5 del modelo F de Snedecor con 3 y 5 grados de libertad.
      • Sol.: 0.9071462.