Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Emilio Camargo
20/2/2024
Pregunta 1
Z π/3
sin(t)dt
0
1
0.54
0.52
0.50
In
0.48
0.46
Respuesta
El valor exacto de la integral es 0.5. Después de 20,000 simulaciones, el valor aproximado es .4772364. Como
podemos observar, el error es de aproximadamente +/-.2
Pregunta 2
Escribir una función para calcular el estimador de Monte Carlo de la función de distribución Be (3, 3) y usar
la función para estimar F(x) para x = 0.1, . . . , 0.9. Comparar los estimados con los valores obtenidos con
la función pbeta de R.
layout(matrix(c(1,3,2,3),2,2,byrow=T))
plot(X, type = "l")
plot(max(1, nsim-100):nsim, X[max(1,nsim-100):nsim], type = "l", main = "Muestra de la Cadena X", xlab =
hist(X, probability = T, main = "", ylab="densidad")
lines(seq(0,1,0.01), dbeta(seq(0,1,0.01),a,b), col = "red")
2
0.6
X
1.5
0.0
densidad
Index
1.0
Muestra de la Cadena X
0.5
0.8
0.2
0.0
9900 9940 9980 0.0 0.2 0.4 0.6 0.8 1.0
i X
A<-sort(X)
cuantil1<-list()
lista_percentil<-c(.1,.2,.3,.4,.5,.6,.7,.8,.9)
for( i in lista_percentil){
posicion<-which(A<=i)
b<-tail(posicion, n=1)
cuantil<-b/length(A)
cuantil1=c(cuantil1,cuantil)
}
lista_correcta<-list()
for(i in lista_percentil){
a<-pbeta(i,3,3)
lista_correcta<-c(lista_correcta,a)
}
plot(lista_percentil,lista_correcta, type = "o", col = "blue", pch = 16, xlab = "X1", ylab = "Y")
points(lista_percentil,cuantil1, type = "o", col = "red", pch = 16, xlab = "X1", ylab = "Y")
3
1.0
0.8
0.6
Y
0.4
0.2
0.0
X1
x1<-do.call(rbind.data.frame,lista_correcta)
x2<-do.call(rbind.data.frame,cuantil1)
x3<-cbind(lista_percentil,x1,x2)
colnames(x3)<-c("percentiles","valores_correctos", "valores_estimados")
x3<-x3%>%mutate(diferencia=x3$valores_correctos-x3$valores_estimados)
x3
R
Como puede observarse al compararse los valores correctos con los estimados (así como viendo la gráfica) la
diferencia es minima.
Pregunta_3
4
1
e−x
Z
dx
0 1 + x2
y calcular el tamaño de muestra necesario para obtener un error de estimación máximo de ±0.001.
0.51
0.49
# error I - I_n
Error_n <- numeric(n)
I <- integrate(h, 0, 1)$value
Error_n<- I_n - I
5
plot(Error_n, ylim = c(-0.01, 0.01), type = "l")
grid()
abline(h = 0, lty = 2, col = "red")
abline(h = c(-0.001, 0.001), lty = 3, col = "blue")
0.010
0.005
Error_n
0.000
−0.010
Index
R
Como puede observarse, a partir de n =22000, el valor estimado esta en el rango solicitado. Esto puede
variar al correr de nuevo la simulación