Parte 2.

Discusión en equipo (Antes de programar) Antes de abrir el script de R, respondan en su equipo y anoten su respuesta:

  1. Para la función objetivo \(f(x)=2x\) en el intervalo [0,1] ¿cuál es el valor máximo que alcanza la función?

Respuesta: evaluamos en el intervalo dado y como la funcion es decreciente, el valor maximo en [0,1] se alcanza en x=1

  1. Si usamos una propuesta uniforme \(g(x)=1\), ¿cuál debe ser el valor exacto de la constante c para que se cumpla \(f(x)≤c⋅g(x)\) en todo el dominio?

Respuesta: Si se utiliza \(c=20\) en lugar de \(c=2\), el algoritmo sigue siendo válido, pero su eficiencia disminuye considerablemente.

La constante debe ser:

\[ c = 2 \]

ya que se debe cumplir que:

\[ f(x) \leq c \cdot g(x) \]

Sustituyendo \(f(x)=2x\) y \(g(x)=1\):

\[ 2x \leq c \]

En el intervalo \([0,1]\), el valor máximo de \(2x\) es \(2\). Por lo tanto:

\[ \boxed{c=2} \]

  1. ¿Qué pasaría con la eficiencia del algoritmo si por error definimos c=20 en lugar de c=2? Respuesta: Si se utiliza \(c=20\) en lugar de \(c=2\), el algoritmo sigue siendo válido, pero su eficiencia disminuye considerablemente.

La eficiencia es:

\[ \text{Eficiencia}=\frac{1}{c} \]

Para \(c=2\):

\[ \frac{1}{2}=50\% \]

Mientras que para \(c=20\):

\[ \frac{1}{20}=5\% \]

Por lo tanto, usar \(c=20\) hace que el algoritmo sea mucho menos eficiente, ya que se aceptarían aproximadamente el \(5\%\) de las propuestas.

¿Fallarán los números generados o qué métrica se verá afectada?

Respuesta:Los números generados no “fallan” ni se vuelven incorrectos por usar \(c=20\). Lo que se afecta es la eficiencia del algoritmo.

Parte 3.

## Total de intentos: 30226
## Eficiencia teórica vs real: 33.08 %

Parte 4.

Ejercicio Práctico Individual

Modifica el código anterior en tu R Notebook para resolver el siguiente reto:

Cambia la distribución objetivo: Simula una variable aleatoria con densidad triangular \(f(x) = 2x\) para x en \([0, 1]\).

Define los parámetros: Utiliza como propuesta una distribución \(g(x) = 1\) (Uniforme) y determina el valor adecuado de la constante \(c\).

Ajusta el código: Escribe la condición de aceptación correspondiente y genera una muestra de 5000 valores.Comprueba: Grafica el histograma resultante y superpone la línea de la función teórica \(2x\) usando la función curve(). Muestra la tasa de eficiencia del algoritmo en la consola.

Simulación por aceptación y rechazo

La distribución objetivo es:

\[ f(x)=2x,\qquad 0\leq x\leq1 \]

Se utiliza como distribución propuesta una Uniforme\((0,1)\):

\[ g(x)=1 \]

La constante \(c\) debe satisfacer:

\[ f(x)\leq c\,g(x) \]

Como el valor máximo de \(f(x)=2x\) en \([0,1]\) es \(2\), se tiene:

\[ \boxed{c=2} \]

Por lo tanto, la condición de aceptación es:

\[ U\leq\frac{f(Y)}{c\,g(Y)} =\frac{2Y}{2(1)} =Y \]

## Total de intentos: 9976
## Valores aceptados: 5000
## Eficiencia del algoritmo: 50.12 %

Histograma y función teórica

Interpretación

La muestra generada mediante el método de aceptación y rechazo presenta una distribución creciente, consistente con la densidad teórica \(f(x)=2x\).

La eficiencia teórica del algoritmo es:

\[ \frac{1}{c}=\frac{1}{2}=0.5 \]

es decir, aproximadamente un 50%. La eficiencia obtenida en la simulación puede variar ligeramente debido a la aleatoriedad.

Parte 5.

Reto de Experimentación: El costo de una mala elección

En este ejercicio se mantiene la distribución objetivo:

\[ f(x)=2x, \qquad 0 \leq x \leq 1 \]

y la distribución propuesta:

\[ g(x)=1 \]

Sin embargo, se utiliza temporalmente una constante mayor:

\[ c=15 \]

La condición de aceptación queda:

\[ U \leq \frac{f(Y)}{c\cdot g(Y)} \]

Sustituyendo:

\[ U \leq \frac{2Y}{15(1)} \]

Por lo tanto, la condición de aceptación es:

U <= (2 * Y) / 15
## [1] FALSE
## Total de intentos: 74581
## Valores aceptados: 5000
## Eficiencia del algoritmo: 6.7 %

Comparación de eficiencia

La eficiencia teórica del método de aceptación y rechazo se calcula como:

\[ \text{Eficiencia}=\frac{1}{c} \]

Con la constante adecuada \(c=2\):

\[ \text{Eficiencia}=\frac{1}{2}=0.5=50\% \]

En cambio, utilizando \(c=15\):

\[ \text{Eficiencia}=\frac{1}{15}\approx0.0667=6.67\% \]

Por lo tanto, para obtener 5000 muestras válidas se necesitarán aproximadamente:

\[ 5000 \times 15 = 75000 \]

intentos.

Interpretación

Al utilizar \(c=15\) en lugar de \(c=2\), el algoritmo sigue generando valores válidos de la distribución objetivo \(f(x)=2x\). Sin embargo, la eficiencia disminuye considerablemente.

Con \(c=2\), aproximadamente el \(50%\) de las propuestas son aceptadas. Con \(c=15\), la eficiencia disminuye aproximadamente al \(6.67%\), por lo que se necesitan muchos más intentos para obtener las mismas 5000 muestras.

Geométricamente, una constante \(c\) mayor hace que la función envolvente \(c\cdot g(x)\) se encuentre mucho más arriba de la densidad objetivo \(f(x)\). Esto genera una región mayor entre ambas funciones, por lo que una mayor cantidad de puntos generados son rechazados.

Conclusión: una mala elección de una constante \(c\) demasiado grande no afecta la validez de los números aceptados, pero sí afecta negativamente la eficiencia del algoritmo, aumentando considerablemente el número de intentos necesarios.

Auditoría del Modelo

1. ¿Por qué el histograma de los valores aceptados se ajusta a la curva teórica \((2x)\)?

Aunque el algoritmo rechaza muchos candidatos cuando se utiliza \((c=15)\), los valores que son aceptados siguen teniendo la distribución objetivo.

La probabilidad de aceptación depende del valor generado \((Y)\):

\[ P(\text{aceptar}\mid Y) = \frac{f(Y)}{c\,g(Y)} = \frac{2Y}{15}. \]

Esto significa que los valores cercanos a 1 tienen una mayor probabilidad de ser aceptados que los valores cercanos a 0.

Por esta razón, después de realizar muchos intentos, los valores aceptados se concentran más hacia 1 y el histograma presenta una forma creciente, ajustándose a la curva teórica:

\[ f(x)=2x. \]

En conclusión: utilizar un valor grande de \((c)\) disminuye la eficiencia del algoritmo, pero no cambia la distribución de los valores aceptados.


2. ¿Qué relación tiene el área bajo la curva roja con la probabilidad de aceptación?

La curva roja representa la función de densidad:

\[ f(x)=2x. \]

El área total bajo esta curva en el intervalo \(([0,1])\) es:

\[ \int_0^1 2x\,dx = \left[x^2\right]_0^1 = 1. \]

Esto confirma que \((2x)\) es una función de densidad válida.

La probabilidad de aceptar un candidato en el método de aceptación y rechazo es:

\[ P(\text{aceptar}) = \frac{1}{c} \int_0^1 f(x)\,dx. \]

Como \((c=15)\) y el área bajo la curva es 1:

\[ P(\text{aceptar}) = \frac{1}{15} \approx 0.0667. \]

Por lo tanto, aproximadamente el \(6.67 %\) de los candidatos son aceptados en el primer intento.

Esto explica por qué se necesitan muchos intentos para obtener las 5000 muestras válidas.


3. ¿Qué pasaría si cambiamos el dominio a \(([0,2])\)?

Si simplemente cambiamos el dominio y mantenemos:

\[ f(x)=2x, \]

la integral sería:

\[ \int_0^2 2x\,dx = \left[x^2\right]_0^2 = 4. \]

Por lo tanto, \((2x)\) ya no sería una densidad de probabilidad válida, porque el área bajo la curva debe ser igual a 1.

Para obtener una densidad válida en \(([0,2])\), sería necesario normalizar la función:

\[ f(x)=\frac{x}{2}. \]

En efecto:

\[ \int_0^2 \frac{x}{2}\,dx=1. \]