Números aleatorios

Alex J. Zambrano
alexzambrano@usantotomas.edu.co

Cálculo numérico y Simulación

¿Qué es simulación?

La simulación según Thomas H. Naylor es una técnica numérica para conducir experimentos en una computadora digital. Estos experimentos comprenden ciertos tipos de relaciones matemáticas y lógicas, las cuales son necesarias para describir el comportamiento y la estructura de sistemas complejos del mundo real a través de largos períodos de tiempo (Coss Bu 1996).

Etapas para realizar un estudio de simulación

Según Schmeiser (1990) en un proceso de simulación se debe tener en cuenta el siguiente esquema

  1. Obtener observaciones básicas de una fuente de números aleatorios.
  2. Transformar las observaciones básicas en entradas al modelo, según las especificaciones del mismo.
  3. Tranformar las entradas, a través del modelo, en salidas.
  4. Calcular estadísticas a partir de las salidas, para estimar las medidas de comportamiento.

Ventajas en el uso de simulación

Según Coss Bu (1996), Thomas H. Naylor ha sugerido que un estudio es muy recomendable porque presenta las siguientes ventajas:

Desventajas en el uso de simulación

Números aleatorios

Una sucesión de números \((u_i)\) distribuidos en \((0,1)\) es una sucesión de números aleatorios si satisfacen cierto conjunto de pruebas estadísticas.

Características de un generador de números aleatorios

  1. Uniformemente distribuidos.
  2. Estadísticamente independientes.
  3. Reproducibles.
  4. Período largo (sin repetición dentro de una longitud determinada de la sucesión),
  5. Generados a través de un método rápido.
  6. Generados a través de un método que no requiera mucha capacidad de almacenamiento de la computadora.

Por ello se presentan a continuación algunas pruebas estadísticas que han sido utilizadas para verificar si un generador de números aleatorios (por ejemplo el generador congruencial mixto \(x_{n+1}=(ax_n+b)\mod m\) donde se toma números aleatorios de la forma \(u_n=\frac{x_n}{m}\)) cumple con la definición de número aleatorio.

Pruebas de bondad de ajuste

Las pruebas de bondad de ajuste se plantea de la siguiente manera, dada una distribución teórica \(F(X)\), construir una muestra de observaciones \(X_1,X_2,\ldots,X_n\), que se ajusten a la distribución dada.

Entre las pruebas de bondad de ajuste tenemos las siguientes:

Pruebas gráficas

Las pruebas gráficas son de carácter informal y solo como una primera aproximación deben ser utilizadas en el contexto de la generación de números aleatorios uniformes.

Método gráfico o P–P

Se representan en un plano cartesiano las parejas \((H_i,F_i)\) para \(i=1,2,\ldots,n\) donde \(H_i\) representa la frecuencia relativa acumulada, \(F_i\) es la probabilidad acumulada hasta el punto \(X_i\). Si las observaciones se ajustan a la distribución teórica entonces \(H_i=F_i\) para todo punto, lo que traería como consecuencia una línea recta con pendiente de 45 grados, en este caso diremos que la distribución teórica que se desea probar se ajusta a los datos.

Histogramas

Al elaborar un histograma este nos da idea de la ``forma’’ de la distribución de los datos. El histograma se logra dibujando una barra rectangular cuya base sea cada clase en la que hemos dividido los datos y cuya longitud o altura sea proporcional a la frecuencia relativa de la clase.

Prueba de Kolmogorov – Smirnov

Consiste en probar la hipótesis en el que la hipótesis nula afirma que los datos si se ajustan a la distribución \(F(X)\). El estadístico de prueba está dado por: \[ D=\max \left\{\left|H_{i-1}-F_i\right|,\left|H_i-F_i\right|\right\},\quad H_0=0 \] este valor se compara con un valor crítico tabulado en algunos de los libros de estadística. Se rechaza la hipótesis nula si \(D\) es mayor que el valor de tabla para el nivel de confianza y el tamaño de muestra que se estén considerando.

Prueba de la \(\chi^2\)

Esta prueba se presenta con frecuencia como la única forma de verificar el ajuste de unos datos a una distribución, y desafortunadamente, ha probado ser una prueba muy débil y que en muchas situaciones existen pruebas alternativas que son mucho mejores, como en el caso uniforme.

Se particiona el intervalo \((0,1)\) en \(k\) intervalos de la misma amplitud, \(\frac{1}{k}\). La hipótesis nula \(H_0\) establece que los \(n\) números aleatorios se distribuyen uniformemente. Sea \(f_i\) el número de observaciones que caen en la clase y el número esperado de observaciones \(e_i\) bajo la distribución uniforme es decir \(e_i=\frac{n}{k}\). Entonces, \begin{align*} \chi^2 &= \sum_{i=1}^k \frac{\left(f_i-e_i\right)^2}{e_i}=\sum_{i=1}^k\frac{\left(f_i-\frac{n}{k}\right)^2}{\frac{n}{k}}\\ &=\frac{k}{n}\sum_{i=1}^k\left(f_i-\frac{n}{k}\right)^2\sim\chi_{(k-1)}^2. \end{align*}

Pruebas de aleatoriedad

Prueba de rachas

Dada la sucesión de \(n\) números aleatorios \(u_1,u_2,\ldots,u_n\), construimos la sucesión \[ s_i=\begin{cases} 1 & \text{si $u_i \leq u_{i+1}$} \\ 0 & \text{si $u_i > u_{i+1}$} \\\end{cases} \quad i=1,2,\ldots,n-1. \] si \(k\) valores de \(s\) son iguales a uno, entonces tenemos una racha arriba de longitud \(k\); una sucesión de \(k\) ceros consecutivos es una racha abajo de longitud \(k\). Calculamos \(h\) como el número de rachas arriba (\(U\)) y abajo (\(D\)) observadas, es decir, \(h=U+D\).

Para una sucesión verdaderamente aleatoria de \(n\) números su distribución viene dada por \[ h\sim\mathcal{N}\left(\frac{2n-1}{3},\frac{16n-29}{90}\right) \]

Calculamos el estadístico \(z=\frac{h-E(h)}{\sqrt{V(h)}}\), por lo cual si \(z\) es mayor que valor crítico \(Z_{\alpha/2}\) rechazamos la aleatoriedad de los datos.

Pruebas de independencia

Las pruebas de independencia consisten en demostrar que los números generados son estadísticamente independiente entre sí, que no depende uno de otro.

Prueba de pares de números aleatorios (Prueba de series)

Considere los \(n-1\) pares \((u_1,u_2),(u_2,u_3),\ldots,(u_{n-1},u_n)\). Particionamos tanto el eje \(x\) y el eje \(y\) en \(k\) subintervalos de igual longitud. El número esperado de parejas por cuadro es \(e_{ij}=\frac{n-1}{k^2}\). Sea \(f_{ij}\) el número de puntos que caen realmente en el \((i,j)\)–ésimo cuadrado, con \(i,j=1,2,\ldots,k\). Calculamos el estadístico \begin{align*} \psi^2 &=\sum_{i=1}^k\sum_{j=1}^k\frac{\left(f_{ij}-e_{ij}\right)^2}{e_{ij}}=\sum_{i=1}^k\sum_{j=1}^k\frac{\left(f_{ij}-\frac{n-1}{k^2}\right)^2}{\frac{n-1}{k^2}}\\ &=\frac{k^2}{n-1}\sum_{i=1}^k\sum_{j=1}^k\left(f_{ij}-\frac{n-1}{k^2}\right)^2 \end{align*}

Este estadístico no tiene una distribución \(\chi^2\), ya que las \(f_{ij}\) son dependientes. Por lo tanto podemos considerar los \(n/2\) pares \((u_1,u_2),(u_3,u_4),\ldots,(u_{n-1},u_n)\) (suponiendo \(n\) par). El estadístico \[ \chi^2=\frac{k^2}{n/2}\sum_{i=1}^k\sum_{j=1}^k\left(f_{ij}-\frac{n/2}{k^2}\right)^2\sim\chi^2_{k^2-1}. \]

Prueba de correlación

El coeficiente de correlación entre un par de variables aleatorias se define como \[ \rho=\frac{cov(X,Y)}{\sigma_X\sigma_Y} \] donde \(cov(X,Y)=E\left[\left(X-\mu_X\right)\left(Y-\mu_Y\right)\right]\). Si el \(i\)–ésimo y el \((i+j)\)–ésimo números aleatorios de una sucesión de \(u_i\) se distribuyen independientemente, entonces \[ \rho_j=E\left[\left(u_i-.5\right)\left(u_{i+j}-.5\right)\right]=0, \quad \text{para $j>0$}, \] donde \(E(u_i)=E(u_{i+j})=.5\), ya que se asume uniformemente distribuidas en el intervalo \((0,1)\). La covarianza del rezago \(j\) puede estimarse como \[ \hat{\rho}_j=\frac{1}{n-j}\sum_{i=1}^{n-j}\left[\left(u_i-.5\right)\left(u_{i+j}-.5\right) \right] \]

Se ha mostrado que \(\hat{\rho}_j\) es asintóticamente normal \(\mathcal{AN}\left(0,\frac{1}{144(n-j)}\right)\).

Ejemplo 1

Mediante la siguiente función se genera números aleatorios mediante el método congurencial mixto.

metodo.congruencial <-function(seed,a,c,m){
  x <- (a*seed + c)%%m
  u <- x/m
  for(i in 2:m){
    x[i] <- (a*x[i-1] + c)%%m
    u[i] <- x[i]/m
  }
  u
}

Si \(X_0=15\) y \(X_{n+1}=(1365X_n+1)\mod 2047\) encuentre \(X_1,\ldots,X_{2047}\)

R <- metodo.congruencial(seed = 15,a = 1365,c = 1,m = 2047)
head(R)
## [1] 0.0029311187 0.0014655594 0.0009770396 0.3341475330 0.1118710308
## [6] 0.7044455300

Pruebas de bondad

Histograma

hist(R)

Método gráfico

qqplot(R,punif(ppoints(R)))
abline(0,1,col=1,lty=2)

Kolmogorov-Smirnov

ks.test(R,"punif")
## Warning in ks.test(R, "punif"): ties should not be present for the
## Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  R
## D = 0.12799, p-value < 2.2e-16
## alternative hypothesis: two-sided

Prueba de la \(\chi^2\)

k=8 # número de particiones
tabla<-table(cut(R,breaks = seq(from=0,to = 1,by = 1/k),right = F))
tabla
## 
##    [0,0.125) [0.125,0.25) [0.25,0.375)  [0.375,0.5)  [0.5,0.625) 
##          281          396          209          350          139 
## [0.625,0.75) [0.75,0.875)    [0.875,1) 
##          279          254          139
chisq.test(tabla)
## 
##  Chi-squared test for given probabilities
## 
## data:  tabla
## X-squared = 231.29, df = 7, p-value < 2.2e-16

Pruebas de aleatoriedad

Prueba de rachas

rachas(R)
## $rachas
##    [1] 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0
##   [35] 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0
##   [69] 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1
##  [103] 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0
##  [137] 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0
##  [171] 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0
##  [205] 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1
##  [239] 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1
##  [273] 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1
##  [307] 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0
##  [341] 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0
##  [375] 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0
##  [409] 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0
##  [443] 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1
##  [477] 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0
##  [511] 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1
##  [545] 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1
##  [579] 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0
##  [613] 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1
##  [647] 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0
##  [681] 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1
##  [715] 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1
##  [749] 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1
##  [783] 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1
##  [817] 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1
##  [851] 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0
##  [885] 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0
##  [919] 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0
##  [953] 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0
##  [987] 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0
## [1021] 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0
## [1055] 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0
## [1089] 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0
## [1123] 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1
## [1157] 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0
## [1191] 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1
## [1225] 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0
## [1259] 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1
## [1293] 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0
## [1327] 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0
## [1361] 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0
## [1395] 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1
## [1429] 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0
## [1463] 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0
## [1497] 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0
## [1531] 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0
## [1565] 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1
## [1599] 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0
## [1633] 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0
## [1667] 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0
## [1701] 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1
## [1735] 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1
## [1769] 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1
## [1803] 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0
## [1837] 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0
## [1871] 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0
## [1905] 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0
## [1939] 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1
## [1973] 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0
## [2007] 1 0 1 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1
## [2041] 0 0 1 1 1 0
## 
## $num.rachas
## [1] 1349
## 
## $statistic
## [1] -0.8041393
## 
## $p.value
## [1] 0.4213165
## 
## $res
## [1] "Los datos son aleatorios"

Pruebas de independencia

Prueba de series

series(R)

## $tabla
##               y
## x              [0,0.125) [0.125,0.25) [0.25,0.375) [0.375,0.5) [0.5,0.625)
##   [0,0.125)          140            0           48           0           0
##   [0.125,0.25)       116            0            0         164           0
##   [0.25,0.375)        24            0            0         115           0
##   [0.375,0.5)          0          164            0          71           0
##   [0.5,0.625)          0           47            0           0          23
##   [0.625,0.75)         0          185            0           0          47
##   [0.75,0.875)         0            0          115           0          69
##   [0.875,1)            0            0           46           0           0
##               y
## x              [0.625,0.75) [0.75,0.875) [0.875,1)
##   [0,0.125)              93            0         0
##   [0.125,0.25)          116            0         0
##   [0.25,0.375)            0           70         0
##   [0.375,0.5)             0          115         0
##   [0.5,0.625)             0           69         0
##   [0.625,0.75)            0            0        46
##   [0.75,0.875)            0            0        70
##   [0.875,1)              70            0        23
## 
## $prueba
## 
##  Pearson's Chi-squared test
## 
## data:  tabla
## X-squared = 3840.9, df = 49, p-value < 2.2e-16
## 
## 
## $res
## [1] "Los datos no son independientes"
## 
## $cortes
## [1] 8

Prueba de correlación

Gráfico de auto-correlación

acf(R,type="correlation")

Ejemplo 2

Generar números aleatorios en R medainte la función , genere 2000, determine que tan bueno es esté generador.

set.seed(20150902)
R <- runif(2000)
head(R)
## [1] 0.6843331 0.9495332 0.6590943 0.4997519 0.2998565 0.1121852

Pruebas de bondad

Histograma

hist(R)

Método gráfico

qqplot(R,punif(ppoints(R)))
abline(0,1,col=1,lty=2)

Kolmogorov-Smirnov

ks.test(R,"punif")
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  R
## D = 0.016422, p-value = 0.6535
## alternative hypothesis: two-sided

Prueba de la \(\chi^2\)

k=8 # número de particiones
tabla<-table(cut(R,breaks = seq(from=0,to = 1,by = 1/k),right = F))
tabla
## 
##    [0,0.125) [0.125,0.25) [0.25,0.375)  [0.375,0.5)  [0.5,0.625) 
##          273          256          234          241          248 
## [0.625,0.75) [0.75,0.875)    [0.875,1) 
##          274          224          250
chisq.test(tabla)
## 
##  Chi-squared test for given probabilities
## 
## data:  tabla
## X-squared = 8.632, df = 7, p-value = 0.2802

Pruebas de aleatoriedad

Prueba de rachas

rachas(R)
## $rachas
##    [1] 1 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 1 0 0 0
##   [35] 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1
##   [69] 0 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 0 0
##  [103] 1 0 0 1 1 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1
##  [137] 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0
##  [171] 0 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1
##  [205] 1 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0
##  [239] 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1
##  [273] 0 1 1 1 0 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1
##  [307] 1 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 1
##  [341] 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 1
##  [375] 1 1 0 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 0 1
##  [409] 0 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1
##  [443] 0 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0
##  [477] 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0
##  [511] 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 1
##  [545] 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1
##  [579] 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1
##  [613] 0 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1
##  [647] 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 1 1 0 1 0 1 0
##  [681] 1 0 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0
##  [715] 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 0 1 1 1 0
##  [749] 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 0 0 0 1 0 1 1 1 1 0 0
##  [783] 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0
##  [817] 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 1 1 0 0 1
##  [851] 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 1
##  [885] 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0
##  [919] 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1
##  [953] 0 1 0 0 1 0 1 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1
##  [987] 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 0
## [1021] 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 0 1 1 0
## [1055] 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 0 1 0 0 1 0
## [1089] 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 1
## [1123] 1 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0 0 1
## [1157] 1 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 1 1
## [1191] 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1
## [1225] 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0
## [1259] 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 1 1 0 0
## [1293] 0 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 0 0 1 0 0 1 0
## [1327] 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 0 0
## [1361] 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0
## [1395] 1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 1
## [1429] 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0
## [1463] 1 0 1 1 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0
## [1497] 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1
## [1531] 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1
## [1565] 0 1 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 0 0 1 1 0 1
## [1599] 1 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0
## [1633] 0 1 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1
## [1667] 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1
## [1701] 0 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0
## [1735] 1 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0
## [1769] 1 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0
## [1803] 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0
## [1837] 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1
## [1871] 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 0 1 1 0 0 0
## [1905] 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0 0 1
## [1939] 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 1 1 0
## [1973] 1 0 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1
## 
## $num.rachas
## [1] 1331
## 
## $statistic
## [1] -0.1061141
## 
## $p.value
## [1] 0.9154918
## 
## $res
## [1] "Los datos son aleatorios"

Pruebas de independencia

Prueba de series

series(R)

## $tabla
##               y
## x              [0,0.125) [0.125,0.25) [0.25,0.375) [0.375,0.5) [0.5,0.625)
##   [0,0.125)           29           34           30          36          34
##   [0.125,0.25)        33           26           28          42          39
##   [0.25,0.375)        39           31           25          21          32
##   [0.375,0.5)         28           34           33          29          28
##   [0.5,0.625)         35           28           35          28          36
##   [0.625,0.75)        30           40           32          28          30
##   [0.75,0.875)        30           36           30          17          19
##   [0.875,1)           49           27           21          40          30
##               y
## x              [0.625,0.75) [0.75,0.875) [0.875,1)
##   [0,0.125)              41           32        37
##   [0.125,0.25)           28           25        35
##   [0.25,0.375)           34           27        25
##   [0.375,0.5)            27           22        40
##   [0.5,0.625)            35           25        25
##   [0.625,0.75)           45           34        35
##   [0.75,0.875)           32           29        31
##   [0.875,1)              31           30        22
## 
## $prueba
## 
##  Pearson's Chi-squared test
## 
## data:  tabla
## X-squared = 59.757, df = 49, p-value = 0.1396
## 
## 
## $res
## [1] "Los datos son independientes"
## 
## $cortes
## [1] 8

Prueba de correlación

Gráfico de auto-correlación

acf(R,type="correlation")

Actividad

Realizando el mismo ejercicio, determine si los siguientes generadores son buenos

  1. Generador de cuadrados medios Von Neumann introdujo le siguiente generador. Supongamos que deseamos sucesiones de cuatro dígitos. Escogemos un número de cuatro dígitos, lo elevamos al cuadro y nos quedamos con los cuatro dígitos centrales. ¿Es éste un buen generador?
  2. Generador congruencial mixto Estudiar el generador congruencial de módulo 2048. para \(a=1365\) y \(b=1\)
  3. Generador de fibonacci Genere números aleatorios con el generador fibonacci \[X_n=(X_{n-L}+X_{n-k})\mod m\] e indique si este es un buen generador.
  4. Generador de Excel Mediante la función de Excel, genere \(2000\) datos e indique si este es un buen generador.
  5. Generador Congruencial Matricial Genere números aleatorios definido por \[X_i=BX_{i-1}\mod p \text{, para }i\geq 1,\] donde los \(X_i\)’s son vectores k-dimensionales,\(X_0 \neq 0\) es un vector inicial, \(B\) es una matriz de dimensión \(k\times k\), y \(p\) generalmente se selecciona como un primo grande. El máximo período del es \(p^k-1\). Mediante un ejemplo para \(3\) dimensiones genere una muestra de v.a. uniformes \((0,1)\).
  6. Con los siguientes datos pruebe en forma manual si los datos provienen de una distribución uniforme \begin{center} \begin{tabular}{ccccc} \hline 0.90 & 0.77 & 0.36 & 0.69 & 0.21 \\ 0.33 & 0.07 & 0.06 & 0.87 & 0.71 \\ 0.95 & 0.71 & 0.37 & 0.73 & 0.29 \\ 0.10 & 0.80 & 0.15 & 0.62 & 0.06 \\ 0.15 & 0.97 & 0.77 & 0.76 & 0.38 \\ 0.15 & 0.53 & 0.35 & 0.25 & 0.18 \\ \hline \end{tabular} \end{center}
  7. Pruebe en forma manual si los datos anteriores son tomados en forma aleatoria e independientes.

References

Coss Bu, Raúl. 1996. Simulación: Un Enfoque Práctico. Editorial Limusa.

Schmeiser, B. 1990. “Stochastic Models.” In, edited by Sobel Heyman. Nort Holland.