#Estimación del valor de π
Para este ejercicio se requiere caclular el valor de π de un circulo que se encuentra dentro de un cuadrado cuya area es igual a 1, por medio de simular una serie de puntos dentro del circulo que permita estimar el valor de Pi, sabremos que los puntos se encuentran dentro del ciruclo porque este tenrá el mismo diametro del cuadrado, es decir: 1. Por ende sabemos que el radio del ciruculo equivale a 0.5, por ende solo los puntos cuyas coordenadas tengan una distancia menor a 0.5 se considerarán dentro del mismo. Entonces:
#1. Establecemos el numero de puntos:
n1 <- 1000
n2 <- 10000
n3 <- 100000
x <- runif(n1, min = 0, max = 1)
y <- runif(n1, min = 0, max = 1)
distancia_al_centro <- (x - 0.5)^2 + (y - 0.5)^2
puntos_dentro_del_circulo <- sum(distancia_al_centro <= 0.25)
estimacion_pi1 <- (puntos_dentro_del_circulo / n1) * 4
cat("Estimación de pi1 con", n1, "puntos:", estimacion_pi1, "\n1")
## Estimación de pi1 con 1000 puntos: 3.216
## 1
#Estimación con 10000 puntos:
x <- runif(n2, min = 0, max = 1)
y <- runif(n2, min = 0, max = 1)
distancia_al_centro <- (x - 0.5)^2 + (y - 0.5)^2
puntos_dentro_del_circulo <- sum(distancia_al_centro <= 0.25)
estimacion_pi2 <- (puntos_dentro_del_circulo / n2) * 4
cat("Estimación de pi2 con", n2, "puntos:", estimacion_pi2, "\n2")
## Estimación de pi2 con 10000 puntos: 3.1672
## 2
#Estimación con 100000 valores:
x <- runif(n3, min = 0, max = 1)
y <- runif(n3, min = 0, max = 1)
distancia_al_centro <- (x - 0.5)^2 + (y - 0.5)^2
puntos_dentro_del_circulo <- sum(distancia_al_centro <= 0.25)
estimacion_pi3 <- (puntos_dentro_del_circulo / n3) * 4
cat("Estimación de pi3 con", n3, "puntos:", estimacion_pi3, "\n3")
## Estimación de pi3 con 1e+05 puntos: 3.14256
## 3
Con este ejercicio podemos observar cómo con el amuento de los valores de los puntos dentro del circulo, el valor de Pi se hace cada vez más especifico.
#Propiedades de los estimadores En este ejercicio debemos evaluar las propiadades de unos estimadores con un valor theta desconocido:
library(reshape2)
library(ggplot2)
theta <- 2
n_values <- c(20, 50, 100, 1000)
num_simulations <- 1000
theta1_est <- function(sample) {
(sample[1] + sample[2]) / 6 + (sample[3] + sample[4]) / 3
}
theta2_est <- function(sample) {
(sample[1] + 2 * sample[2] + 3 * sample[3] + 4 * sample[4]) / 5
}
theta3_est <- function(sample) {
mean(sample)
}
theta4_est <- function(sample) {
(min(sample) + max(sample)) / 2
}
results <- data.frame(n = integer(), theta1 = numeric(), theta2 = numeric(), theta3 = numeric(), theta4 = numeric())
for (n in n_values) {
for (i in 1:num_simulations) {
sample <- rexp(n, rate = 1 / theta)
theta1 <- theta1_est(sample)
theta2 <- theta2_est(sample)
theta3 <- theta3_est(sample)
theta4 <- theta4_est(sample)
results <- rbind(results, data.frame(n = n, theta1 = theta1, theta2 = theta2, theta3 = theta3, theta4 = theta4))
}
}
results_long <- melt(results, id.vars = "n")
ggplot(results_long, aes(x = factor(n), y = value, fill = variable)) +
geom_boxplot() +
labs(title = "Comparación de Estimadores",
x = "Tamaño de la muestra",
y = "Estimación de Theta",
fill = "Estimador") +
theme_minimal()
El objetivo de este ejercicio es evaluar cual de los 4 diferentes
estimadores tienen el menor sesgo, así como la mayor eficiencia y
consistencia. Theta 2 es el estimador con más sesgo y menos eficiencia,
presenta valores con una varianza grande, además de los valores se
alejan del parametro. En este caso podemos observar que los mejores
estimadores son Theta 1 y Theta 3, ya que presentan el menor sesgo,
varianza y mayor consistencia, siendo Theta 3 el estimador ideal en este
caso.