# Ejercicio 3. Construye un IC Bootstrap estudentizado para la media de una Exp(1)
# a partir de una m.a.s. de n=100, B=1000, alpha=0.05.
#-----------------------------------------------------------------#

n<-100
B<-1000
alpha<-0.05

x<-rexp(n) # F desconocida

media<-mean(x)
desv<-sd(x)

tb<-numeric(B) # Evaluaciones del estadístico
for(b in 1:B){
xb<-sample(x,size=n,replace=TRUE)
mediab<-mean(xb)
desvb<-sd(xb)
tb[b]<-sqrt(n)*(mediab-media)/desvb
}

stb<-sort(tb)
clb<-stb[floor((alpha/2)*B)]
cub<-stb[floor((1-alpha/2)*B)]

par(mfrow=c(1,2))
hist(tb,freq=F,main="TB")
abline(v=clb,col=2,lwd=2)
abline(v=cub,col=2,lwd=2)
boxplot(tb,freq=F,main="TB")

IC<-c(media-cub*desv/sqrt(n),media-clb*desv/sqrt(n))
IC


#----------------------------------------------------------#
# Ejercicio 4. Cobertura del intervalo, con M=100 réplicas.
#----------------------------------------------------------#
n<-100
B<-5000
M<-100
alpha<-0.05
tb<-numeric(B)
ICM<-matrix(0,nrow=M,ncol=2)

for(m in 1:M){
x<-rexp(n)
media<-mean(x)
desv<-sd(x)
    for(b in 1:B){
    xb<-sample(x,size=n,replace=TRUE)
    mediab<-mean(xb)
    desvb<-sd(xb)
    tb[b]<-sqrt(n)*(mediab-media)/desvb
    }
stb<-sort(tb)
clb<-stb[floor((alpha/2)*B)]+1
cub<-stb[floor((1-alpha/2)*B)]
ICM[m,]<-c(media-cub*desv/sqrt(n),media-clb*desv/sqrt(n))
}

coverage<-sum((ICM[,1]<=1)*(ICM[,2]>=1))
coverage

ind<-1:M
plot(ICM[,2]~ind,type="n",xlab="",ylab="",main="IC Bootstrap",ylim=c(min(ICM[,1]),max(ICM[,2])))
for(i in 1:M){
segments(ind[i],ICM[i,1],ind[i],ICM[i,2])
}
abline(h=1,col=2,lwd=2)
