Metodos y Simulacion Estadistica
Genero n cordenadas de X y Y en intervalo entre 0 y 1
x <- runif(n = 1000, min = 0, max = 1)
y <- runif(n = 1000, min = 0, max = 1)
estimar_pi = function(x, y) {
n = length(x)
puntos_dentro = 0
for (i in 1:n) {
distancia = (x[i]-0.5)^2 + (y[i]-0.5)^2
if (distancia < 0.25) {
puntos_dentro = puntos_dentro + 1
}
}
pi = (puntos_dentro/n)*4
return(c(puntos_dentro, pi))
}
resultado = estimar_pi(x,y)
puntos_dentro = resultado[1]
pi_estimado1 = resultado[2]
#Numero de puntos dentro del rango
puntos_dentro
## [1] 788
#Valor estimado Pi
pi_estimado1
## [1] 3.152
error1 <- abs(pi - pi_estimado1)
#Error
error1
## [1] 0.01040735
#Grafica
plot(x, y, cex = 0.5, main = "Estimacion para 1000 valores", asp = 1)
#Punto Central
points(mean(x), mean(y), cex = 0.5, col = 'red', pch = 10)
#Circulo de referencia
symbols(0.5, 0.5, circles = 0.5, add = TRUE, inches = FALSE)
x2 <- runif(n = 10000, min = 0, max = 1)
y2 <- runif(n = 10000, min = 0, max = 1)
resultado2 = estimar_pi(x2, y2)
puntos_dentro2 = resultado2[1]
pi_estimado2 = resultado2[2]
puntos_dentro2
## [1] 7924
pi_estimado2
## [1] 3.1696
resultado2 = estimar_pi(x2,y2)
puntos_dentro2 = resultado2[1]
pi_estimado2 = resultado2[2]
#Numero de puntos dentro del rango
puntos_dentro2
## [1] 7924
#Valor estimado Pi
pi_estimado2
## [1] 3.1696
error2 <- abs(pi - pi_estimado2)
#Error
error2
## [1] 0.02800735
#Grafica
plot(x2, y2, cex = 0.5, main = "Estimacion para 10000 valores", asp = 1)
#Punto Central
points(mean(x2), mean(y2), cex = 0.5, col = 'red', pch = 10)
#Circulo de referencia
symbols(0.5, 0.5, circles = 0.5, add = TRUE, inches = FALSE)
x3 <- runif(n = 100000, min = 0, max = 1)
y3 <- runif(n = 100000, min = 0, max = 1)
resultado3 = estimar_pi(x3, y3)
puntos_dentro3 = resultado3[1]
pi_estimado3 = resultado3[2]
#Numero de puntos dentro del rango
puntos_dentro3
## [1] 78409
#Valor estimado Pi
pi_estimado3
## [1] 3.13636
error3 <- abs(pi - pi_estimado3)
#Error
error3
## [1] 0.005232654
#Grafica
plot(x3, y3, cex = 0.5, main = "Estimacion para 10000 valores", asp = 1)
#Punto Central
points(mean(x3), mean(y3), cex = 0.5, col = 'red', pch = 10)
#Circulo de referencia
symbols(0.5, 0.5, circles = 0.5, add = TRUE, inches = FALSE)
Como observamos anteriormente con una muestra de solo 1,000 puntos, es probable que la estimación del parámetro de interés presente un error relativamente alto, posiblemente de 0.05 o más. Esto se debe a la mayor variabilidad inherente a las muestras pequeñas, lo que incrementa el margen de error y la incertidumbre alrededor de la estimación.
Por otro lado, al aumentar el tamaño de la muestra a 10,000 o 100,000 puntos, la estimación tiende a ser más precisa y cercana al valor verdadero. Esto se debe a la ley de los grandes números, donde a mayor cantidad de datos, la variabilidad se reduce, lo que permite que la estimación converja hacia el valor real con mayor probabilidad.
De igual forma, el valor de π es mas cercano en la muestra de 100,000.