a. Analizar el comportamiento del contraste empleando repetidamente el test de rachas, considerando 500 pruebas con muestras de tamaño 10 de una Bernoulli(0.5). ¿Se observa algo extraño?
## Warning: package 'tseries' was built under R version 3.5.3
nsim <- 500
n <- 10
p <- 0.5
estadistico <- numeric(nsim)
pvalor <- numeric(nsim)
for(isim in 1:nsim) {
v <- rbinom(n,1,p)
u <- factor(sign(v))
tmp <- runs.test(u,alternative="two.sided")
estadistico[isim] <- tmp$statistic
pvalor[isim] <- tmp$p.value
}
hist(estadistico,lwd=2,border='red',main='Estadistico')

plot(density(estadistico),lwd=2,col='blue',main = 'Curva de Densidad')

# Se observan dos picos, podemos asumir que la distribución es bimodal.
b Realiza un programa que permita aproximar por simulación la función de masa de probabilidad del estadístico número de rachas (a partir de valores de una Bernoulli(0.5). Representarla gráficamente y compararla con la densidad normal. Obtener los puntos críticos para contrastar la hipótesis nula de aleatoriedad para \(α=0.01\), \(0.05\) y \(0.1\). ¿Es esta dístribución adecuada para el contraste de aleatoriedad de variables continuas?¿Cual debería ser la probabilidad de obtener una única racha al aplicar el test a una variable continua?
media <- mean(estadistico)
sda <- sd(estadistico)
plot(1:nsim, cumsum(estadistico)/(1:nsim),col='orange',lwd=2, type="l", ylab="Media muestral",
xlab="Nº de simulaciones")

plot(density(estadistico),col='red',lwd=2)
curve(dnorm(x),col='blue',lwd=2,add=TRUE)

#Converge una Distribucion N(0,1).
## Media = 0.03997718
## Desviación Estandar 1.028053
#Puntos Criticos.
alfa <- 0.05
z <- qnorm(1 - alfa/2)
Intervalo1 <- c(media - z*1/sqrt(n),media + z*1/sqrt(n))
alfa <- 0.01
z <- qnorm(1 - alfa/2)
Intervalo2 <- c(media - z*1/sqrt(n),media + z*1/sqrt(n))
alfa <- 0.1
z <- qnorm(1 - alfa/2)
Intervalo3 <- c(media - z*1/sqrt(n),media + z*1/sqrt(n))
{
cat("Alfa 0.05 =", Intervalo1)
cat("\n Alfa 0.01 =", Intervalo2)
cat("\n Alfa 0.1 =", Intervalo3)
}
## Alfa 0.05 = -0.5798178 0.6597722
## Alfa 0.01 = -0.7745716 0.8545259
## Alfa 0.1 = -0.4801712 0.5601256
# Es adecuada ya que el estadistico converje en distribucion a una N(0,1)
# La probabilidad debería ser 1.
c Diseñar una rutina que permita realizar el contraste de aleatoriedad de una variable continua aproximando el p-valor por simulación. Asumir que la distribución del estadístico puede ser asimétrica.
estadistico <- numeric(nsim)
pvalor <- numeric(nsim)
for(isim in 1:nsim) {
u <- rbinom(n,1,p)
u <- factor(sign(u))
tmp <- runs.test(u,alternative="two.sided")
estadistico[isim] <- tmp$statistic
pvalor[isim] <- tmp$p.value
}
mean(pvalor)
## [1] 0.5141267
plot(1:nsim, cumsum(pvalor)/(1:nsim),col='orange',lwd=2, type="l", ylab="Media muestral",
xlab="Nº de simulaciones")
