30 votos

¿Cuáles son los ejemplos de experimentos estadísticos que permiten calcular la proporción áurea?

Hay algunas experiencias muy sencillas que puede hacer un niño en casa, cuyo resultado permite acercarse estadísticamente a números tan famosos como $\pi$ o $e$ .

Un ejemplo en el que $\pi$ aparece es quizás el más famoso de su tipo. En El problema de la aguja de Buffon , dibujamos tiras en el suelo y dejamos caer una aguja. La probabilidad de que la aguja se encuentre en una línea entre dos tiras implica $\pi$ . Repetir el proceso muchas veces nos permite acercarnos a $\pi$ con exactitud, si estamos dispuestos a repetir la experiencia un número suficiente de veces.

Un ejemplo en el que $e$ aparece consiste en extraer una muestra aleatoria de tamaño $n$ con reemplazo a partir de una población de tamaño $n$ . La probabilidad de que un miembro de la población no sea elegido es $p=(1-1/n)^n$ . Si $n \to \infty$ entonces $p \to 1/e$ .

Mi pregunta es, ¿cuáles son los ejemplos de experimentos que permitirían acercarse estadísticamente al valor de la proporción áurea $\Phi = (1+\sqrt{5})/2 = 1.618033...$ ? O, en otras palabras, cómo abordar $\Phi$ por simulación de Monte Carlo.

(Una condición es que la experiencia no pueda ser afinada para obtener el resultado. Por ejemplo, si dibujamos un contorno en el suelo y lo dividimos en dos partes utilizando de alguna manera la proporción áurea y luego le lanzamos piedras al azar, obviamente podemos recuperar la proporción áurea contando el número de piedras que cayeron en cada parte. Pido ejemplos en los que el resultado surja de forma más inesperada).

21voto

jldugger Puntos 7490

Dado que busca soluciones "inesperadas", permítame ofrecerle una antes de explicándolo.

Esto funciona R código para estimar $\varphi=(1+\sqrt{5})/2$ de iid valores uniformes y cálculos relativamente sencillos (algebraicos):

u <- runif(1e6)
v <- runif(length(u))
median((v/u)[u^2 + v^2 <= 1 & u <= 2*v])
1.61998

Este procedimiento, que se inspira en la naturaleza geométrica del experimento de la aguja de Buffon, también puede ilustrarse geométricamente. Toma muestras de la parte azul del cuadrado unitario que se encuentra por encima de la línea de pendiente 1/2, u <= 2*v encerrado en el círculo unitario u^2 + v^2 <= 1 . La mediana de la pendiente de los puntos muestreados estima $\varphi,$ como lo afirman simples cálculos trigonométricos. Así, se lanzan dardos a la diana cuadrada y, después de cansarse de ello, se hace un barrido en sentido contrario a las agujas del reloj por los puntos que caen en el sector azul hasta que se haya encontrado la mitad de ellos: la pendiente que se ha alcanzado estima $\varphi.$ Desde aproximadamente $7\pi/40 \approx 55\%$ de los puntos caerán en el sector azul, este método de muestreo de rechazo es razonablemente eficiente.

Figure

Hay muchas formas equivalentes de realizar este experimento, algunas de las cuales son un poco más eficientes, como por ejemplo

z <- qt(runif(1e6, 1/2, pt(2,1)), 1)
p <- median(z)
(1 + p + 1/(7*p)) * 7/8
1.61731

Este método genera las pendientes directamente a partir de una distribución Cauchy (t de Student) y utiliza la relación $\varphi = 1/\varphi$ para generar dos estimaciones inversamente relacionadas; una combinación lineal convenientemente ponderada de las mismas tiene menor varianza (y por tanto mayor precisión) que cualquiera de las dos estimaciones por separado. (Las ponderaciones son aproximadas, elegidas empíricamente).


Por último, confieso que hay un "parámetro de ajuste" en esta configuración (como debe ser): al variar el valor mágico $x=2$ en la condición u <= 2*v puedes estimar el número cuadrático $(1 + \sqrt{1 + x^2})/x.$ Una demostración rápida se basa en una fórmula de medio ángulo para la tangente. Sea $0\lt \theta\lt \pi/2$ sea la medida angular del sector azul. Con $x=\tan\theta,$

$$x = \tan\theta= \frac{2 \tan(\theta/2)}{\tan^2(\theta/2) - 1}.$$

Geométricamente, este procedimiento de muestreo estima la pendiente recíproca de la mitad del ángulo del sector, $1/\phi = \cot(\theta/2)$ (o, invirtiendo los papeles de u y v estima que $\phi = \tan(\theta/2)$ ). Así, en términos algebraicos encuentra una solución de la ecuación

$$x = \frac{2\phi}{\phi^2-1}$$

lo que equivale a

$$\phi^2 + \frac{2}{x}\phi - 1 = 0$$

y la afirmación se deduce de la Fórmula Cuadrática.

17voto

Silverfish Puntos 6909

Sólo hay un Sr. Triplemente problemático. De hecho, a menos que tenga un hijo al que transmitir su apellido, será el último Sr. Tripletoddletrouble. Las costumbres sociales de su tiempo y lugar lamentablemente no permiten que un apellido tan exquisito sobreviva pasando por la línea femenina.

El Sr. Tripletoddletrouble tiene un raro y matemáticamente conveniente condición genética, que heredarán las futuras generaciones de Tripletoddletroubles heredará: si engendra algún hijo, y hay un 50% de posibilidades de que lo haga, será un conjunto de trillizos . Así que en cada paso del árbol genealógico vemos, con la misma probabilidad, o tres hijos o ninguno.

Las malas noticias para onomatólogos es esto deja un 50% de posibilidades de que un nombre maravilloso se extinga entre la próxima generación. La buena noticia es que cada Mr. Tripletoddletrouble tiene, por término medio, 1,5 hijos. la población esperada de Tripletoddletroubles goza de un crecimiento crecimiento exponencial, y hay una probabilidad positiva de que su apellido sobreviva para siempre .

¿Cuál es la probabilidad de que el apellido Tripletoddletrouble se extinga?

Aquí hay un rápido R simulación.

set.seed(123)

nsims <- 1e5
ngens <- 20

simulate_extinction <- function(ngens) {
  nsurvivors <- c(1, rep(NA, ngens - 1))
  for (gen in seq_len(ngens - 1)) {
    nsurvivors[gen + 1] <- 3 * rbinom(1, nsurvivors[gen], 0.5)
  }
  extinct <- (!is.na(nsurvivors) & nsurvivors == 0) # rbinom gives NA if population huge
  return(extinct)
}

pextinct <- rowMeans(replicate(n = nsims, simulate_extinction(ngens)))

plot(pextinct, xlab = "Generation number", ylab = "Probability of extinction")
abline(h = (sqrt(5) - 1)/2, col = "red")
sprintf("Estimated probability of extinction = %f", pextinct[ngens])

La línea roja del gráfico está en

$$\varphi - 1 = \varphi^{-1} = \frac{\sqrt{5} - 1}{2} \approx 0.618034 $$ Graph of probability of surname extinction approaching 1/phi

[1] "Estimated probability of extinction = 0.618150"

Esta es una pregunta sobre procesos de bifurcación . De hecho, una de las primeras investigaciones sobre su comportamiento estocástico tuvo su origen en la preocupación victoriana por la extinción de apellidos poco comunes. El resultado Proceso de Galton-Watson está disponible en línea:

"O bien 3 o bien 0 descendientes, con la misma probabilidad" es posiblemente la más sencillo proceso de bifurcación con probabilidad de extinción no trivial. Necesitamos al menos dos resultados si el azar juega un papel, incluyendo cero descendientes para que la extinción sea posible. "O bien 1 o bien 0 descendientes" está claramente condenado: sin ramas que broten, la línea familiar se extingue la primera vez que no hay hijos. "O 2 o 0 descendientes, igualmente probable" da una media de exactamente un descendiente para reemplazar a cada individuo. Cuando el destino se equilibra en este filo de la navaja, resulta que la extinción es segura a largo plazo, incluso si el árbol familiar brota con éxito unas cuantas veces. Podríamos ajustar la distribución de la descendencia para producir un rango de probabilidades de extinción deseadas, pero sólo introduciendo probabilidades desiguales o más de dos resultados. Esta configuración no siente artificialmente "afinado" para meter con calzador la proporción áurea.

Busquemos la probabilidad de extinción final, $\theta$ algebraicamente. Intuitivamente, esta probabilidad se divide en dos partes: o bien el Sr. Tripletoddletrouble original no tiene hijos y su línea se extingue inmediatamente, o tiene tres hijos con éxito, pero cada una de sus tres líneas acaba extinguiéndose. Dado que un hijo está en la misma posición que el Sr. Tripletoddletrouble original, sus líneas también tienen cada una la probabilidad de extinción $\theta$ . Dado que sólo nos ocupamos de los descendientes masculinos directos, el destino de cada línea es independiente de las demás. Dado que hay tres hijos, la probabilidad de que el apellido se extinga es, por tanto, de $\theta^3$ .

Tree diagram for branching process of surname extinction. Either there are 0 sons (immediate extinction) with probability 0.5, or 3 sons with probability 0.5. If the latter, the probability of all 3 lines becoming extinct is theta^3, or of at least one surviving is 1-theta^3.

En el diagrama de árbol, vemos que la probabilidad de extinción $\theta$ debe obedecer a la ecuación

$$\theta = \frac{1}{2} + \frac{1}{2}\theta^3 \tag{1}$$

que podemos resolver (y lo haremos, en breve). En primer lugar, vamos a relacionar esto con una teoría más amplia de los procesos de ramificación. El número de descendientes de cualquier individuo es una variable aleatoria con una distribución de probabilidad $p_0 = p_3 = 0.5$ et $p_n = 0$ de otro modo, por lo que su función generadora de probabilidad es:

$$\Pi(s) = \sum_n p_n s^n = \frac{1}{2} + \frac{1}{2} s^3 $$

¿Te resulta familiar? No es una coincidencia. Más adelante. Evaluando la derivada de la pgf en $s=1$ obtenemos el número medio de crías. Este número $R_0 = \Pi'(1)$ es importante en la ecología de la población y en la demografía humana, donde se denomina tasa de reproducción neta (normalmente se define como el número medio de hijas producidas por cada hembra, en lugar de hijos por cada macho - la maternidad es más fácil de rastrear que la paternidad, y en muchas especies las hembras pueden reproducirse por partenogénesis ), mientras que en epidemiología es el número básico de reproducción (número medio de infecciones generadas directamente por un individuo infectado, en una población totalmente susceptible). Si $\Pi'(1) \leq 1$ entonces la extinción final es segura. Si $\Pi'(1) \gt 1$ la probabilidad de extinción es inferior a uno. Tenemos

$$\Pi'(s) = \frac{3s^2}{2} \implies \Pi'(1) = 1.5 > 1$$

por lo que el apellido tiene una probabilidad positiva de supervivencia. Cuántos ¿Sobrevive el triple de problemas en cada generación? Tome un individuo como "generación cero", y deje que $Z_n$ sea el número de descendientes después de $n$ generaciones. $Z_n$ es una variable aleatoria cuya distribución de probabilidad puede leerse a partir de los coeficientes de su pgf $\Pi_{n}(s)$ que encontramos aplicando iterativamente $\Pi$ , la descendencia pgf, $n$ tiempos:

$$\Pi_{n}(s) = \Pi(\dots\Pi(\Pi(s))\dots) $$

¿Por qué? $Z_{n}$ es la suma de la descendencia del $Z_{n-1}$ supervivientes de la generación anterior. Los números de descendientes de cada superviviente son variables aleatorias independientes e idénticamente distribuidas (iid) con pgf $\Pi$ y el número de ellos que estamos sumando tiene pgf $\Pi_{n-1}$ por lo que por la regla de la pgf de la suma de un número aleatorio de variables iid ( prueba en esta respuesta ), $Z_n$ tiene pgf $\Pi_{n}(s) = \Pi_{n-1}(\Pi(s))$ . Por ejemplo, después de dos generaciones

$$\Pi_2(s) = \Pi(\Pi(s)) = \frac{1}{2} + \frac{1}{2} \left(\frac{1}{2} + \frac{s^3}{2} \right)^3 = \frac{9}{16} + \frac{3s^3}{16} + \frac{3s^6}{16} + \frac{s^9}{16} $$

por lo que hay un $\frac{1}{16}$ posibilidad de nueve descendientes pero $\Pi_2(0) = \frac{9}{16}$ posibilidad de que la extinción ya se haya producido. $\mathbb{E}(Z_2)$ el número esperado de descendientes después de dos generaciones, se halla mediante $\Pi'_2(1) = 2.25$ . No es casualidad que esto sea igual a $1.5^2$ .

La media y la varianza del número de descendientes de un solo individuo son $\mu = \Pi'(1)$ et $\sigma^2 = \Pi''(1) + \mu - \mu^2$ . Se puede demostrar por inducción que $\mathbb{E}(Z_n) = \mu^n$ . Ahora es obvio por qué la extinción final es segura cuando $\mu < 1$ . Con $\mu = 1.5$ vemos un crecimiento exponencial de media a pesar de nuestra alta probabilidad de extinción temprana. Esencialmente, las cadenas de transmisión de apellidos tienden a esfumarse o a estallar, y $\mu = 1.5$ garantiza las suficientes posibilidades de explotar que la extinción no es inevitable. Una buena noticia para los Tripletoddletroubles; una mala noticia si cambiamos el contexto de los apellidos a las enfermedades infecciosas con $R_0 > 1$ . La forma en que las cadenas de infección pueden "ir a lo grande o irse a casa" de forma aleatoria, en lugar de seguir una regla determinista como "cada caso infecta exactamente a dos susceptibles", se relaciona con la idea epidemiológica de sobredispersión debido a eventos de agrupación o superdifusión. La varianza del número de descendientes después de $n$ generaciones puede ser considerable, ya que $Z_n$ puede ser enorme o nula. De nuevo por inducción, encontramos:

$$\operatorname{Var}(Z_n) = \begin{cases} \frac{\mu^{n-1} \sigma^2 \left(\mu^n - 1\right)}{\mu - 1}, & \mu \neq 1 \\[2ex] n \sigma^2, & \mu = 1 \end{cases}$$

En general, la probabilidad de extinción final es la solución positiva más pequeña , $\theta^{*}$ de la ecuación $\theta = \Pi(\theta)$ . Esa es exactamente la ecuación $(1)$ ¡que derivamos arriba! Pero, ¿cómo sabíamos qué solución tomar? La probabilidad de extinción por generación $n$ es $\Pi_n(0)$ ya que es la constante o $s^0$ término de la pgf de $Z_n$ por lo que representa $\Pr(Z_n = 0)$ . La probabilidad de extinción final debe ser $\lim_{n \to \infty} \Pi_n(0)$ que podemos encontrar utilizando un trama de telarañas de $y=\Pi(x)$ et $y=x$ para $0 \le x \le 1$ . Desde $\Pi(0) = p_0$ la probabilidad de que un individuo no tenga descendencia, podemos suponer que la intersección y está entre $0 \lt \Pi(0) \le 1$ (si $p_0 = 0$ entonces la extinción es claramente imposible). Así que $y = \Pi(x)$ comienza arriba $y=x$ y la primera vez que se cruza $y=x$ debe ser de arriba. Ya que $\Pi(x)$ y sus derivadas sólo tienen coeficientes no negativos, su gráfica es creciente y convexa en $0 \le x \le 1$ . Esto significa que puede cruzar $y=x$ como máximo dos veces en este intervalo: una desde arriba y otra desde abajo. $\Pi(1) = \sum p_n = 1$ por lo que los gráficos ciertamente se cruzan en $(1,1)$ .

La naturaleza de esta intersección depende de la pendiente $\Pi'(1)$ que representa el número medio de crías $\mu$ (biológicamente, $R_0$ ). Si $\Pi'(1) > 1$ debe ser más pronunciado que $y=x$ así que $y = \Pi(x)$ está golpeando la línea desde abajo, en cuyo caso debe haber habido una intersección anterior en $0 \lt x \lt 1$ . Si $\Pi'(1) < 1$ es más superficial por lo que se golpea desde arriba, y no hay una raíz anterior. Si $\Pi'(1) = 1$ las dos curvas sólo se tocan en $(1,1)$ pero $y = \Pi(x)$ debe haber sido más superficial antes (su pendiente media sobre $0 \le x \le 1$ es $1 - p_0$ así que por debajo de uno), por lo tanto se acerca a la línea desde arriba y no puede haber una raíz anterior. Por eso, si $\mu=1$ pero $p_0 > 0$ La extinción final tiene probabilidad uno.

Para encontrar $\lim_{n \to \infty} \Pi_n(0)$ gráficamente, leer horizontalmente desde la intersección y en $y = \Pi(0)$ a la $y=x$ línea, donde ahora $x = \Pi(0)$ . A continuación, lea verticalmente a la $y = \Pi(x)$ gráfico, donde ahora $y = \Pi(\Pi(x)) = \Pi_2(x)$ . Léase horizontalmente a la línea así $x = \Pi_2(x)$ . Léase verticalmente a la curva para que $y = \Pi(\Pi_2(x)) = \Pi_3(x)$ . Obsérvese que todas las lecturas horizontales son hacia la derecha y las verticales hacia arriba, ya que $y = \Pi(x)$ es creciente por lo que cada posición vertical está por encima de la anterior. Este procedimiento debe converger a la primero (es decir, el menor positivo $x$ ) punto de intersección $x = \Pi(x)$ , donde $y = \Pi(x)$ golpea $y = x$ desde arriba. Ilustramos los tres casos $\mu = 1.5$ ( $p_0 = p_3 = \frac{1}{2}$ ), $\mu = 1$ ( $p_0 = \frac{2}{3}, p_3 = \frac{1}{3}$ ) y $\mu = 0.5$ ( $p_0 = \frac{5}{6}, p_3 = \frac{1}{6}$ ). La línea azul punteada es la tangente a $y = \Pi(x)$ en $(1, 1)$ y muestra el papel de su pendiente $\Pi'(1) = \mu$ para determinar si hubo una intersección anterior.

Cobweb diagram of offspring pgf showing convergence of ultimate probability of extinction

Necesitamos la solución positiva más pequeña $\theta*$ de $(1)$ . Moviendo $\theta$ al lado derecho y doblando para despejar las fracciones, obtenemos:

$$0 = \theta^3 - 2 \theta + 1 = (\theta - 1)(\theta^2 + \theta - 1)$$

Las soluciones son $-\varphi < \varphi^{-1} < 1$ por lo que la solución positiva más pequeña es $\theta^{*} = \varphi^{-1}$ .

Es hora de revelar el "violín". Este enlace a la proporción áurea no es un resultado que recuerde haber visto antes, pero hice ingeniería inversa pensando en la factorización requerida de la ecuación final. Como $\Pi(1) = \sum p_n = 1$ Siempre tenemos $\theta = 1$ como raíz de $\theta = \Pi(\theta)$ Así que $(\theta - 1)$ debe aparecer como factor una vez que que uno de los lados sea cero. También sabía qué cuadrática quería ver. Después trabajé de nuevo para intentar formar una pgf válida. Los coeficientes negativos de coeficientes negativos no están permitidos; los coeficientes positivos sólo positivos sólo hay que normalizarlos para que sumen la unidad. Esperaba que la distribución de probabilidad resultante para la descendencia fuera una "bonita", ¡y creo que lo es!

Código R para el gráfico cobweb

ngens <- 100
par(mfrow=c(1, 3), pty = "s", xaxs = "i", yaxs = "i")

for(p0 in c(1/2, 2/3, 5/6)) {
  pgf <- function(x) {p0 + (1-p0)*x^3}
  mu <- p0*0 + (1-p0)*3
  plot(pgf, xlim = c(0,1), ylim = c(0,1), xlab = "", ylab = "", 
       main = paste0("Mean offspring = ", mu))
  segments(0, 0, 1, 1)
  abline(1 - mu, mu, col = "blue", lty = "dotted")
  pextinct <- c(0, rep(NA, ngens))
  for (n in seq_len(ngens)) {
    pextinct[n + 1] <- pgf(pextinct[n])
    segments(pextinct[n], pextinct[n], pextinct[n], pextinct[n + 1], col = "red")
    segments(pextinct[n], pextinct[n + 1], pextinct[n + 1], pextinct[n + 1], col = "red")
  }
  print(pextinct)
}

14voto

kabirbaidhya Puntos 101

Hay una algoritmo recursivo que tiene éxito (produce cabezas) con probabilidad $1/\Phi$ . Aprovecha el hecho de que la representación de la fracción continua de $\Phi$ tiene todos los unos.

El algoritmo es el siguiente:

Procedimiento OnePhi(): Devuelve 1 con probabilidad $1/\Phi.$

  • Realice los siguientes pasos repetidamente, hasta que el algoritmo devuelva un número:
    1. Establecer C = RandomBit() (el lanzamiento de una moneda justa que muestra 1 o 0 con igual probabilidad).
    2. Si C = 1, devuelve 1 y se detiene.
    3. Conjunto D = OnePhi().
    4. Si D = 1, devuelve 0 y se detiene.

El número esperado de volteos utilizados por el algoritmo, $\mathbb{E}[N]$ es $2\Phi$ como se muestra a continuación, teniendo en cuenta que todos los giros son independientes:

  • Cada iteración detiene el algoritmo con probabilidad $p = \frac{1}{2} + (1-\frac{1}{2}) * (1/\Phi)$ (1/2 para el paso 2 y $1/\Phi$ para el paso 4).
  • Así, el número esperado de iteraciones es $\mathbb{E}[T] = 1/p$ por un conocido argumento de muestreo de rechazo, ya que el algoritmo no depende de los recuentos de iteraciones.
  • Cada iteración tiene $1 * \frac{1}{2} + (1 + \mathbb{E}[N]) * \frac{1}{2}$ lanzamientos de monedas en promedio, por lo que todo el algoritmo tiene $\mathbb{E}[N] = (1 * \frac{1}{2} + (1 + \mathbb{E}[N]) * \frac{1}{2}) * \mathbb{E}[T]$ de media. Esta ecuación tiene la solución $\mathbb{E}[N] = 1 + \sqrt{5} = 2\Phi$ .

Y en promedio, porque la moneda es justa, la mitad de estos lanzamientos ( $\Phi$ ) muestran 1 y la mitad muestran 0.

El siguiente código de Python lo demuestra:

import random

def onephi(flips):
 # Flips stores counts on the number of times
 # the coin was flipped and the number of tails.
 # Flips is not essential to the algorithm and
 # can be omitted.
 done=-1
 while done==-1:
   flips[0]+=1
   if random.random()<0.5:
     done=1
   else:
     flips[1]+=1
     if onephi(flips)==1: done=0
 return done

flips=[0,0]
c=0
runs=10000000
for _ in range(runs):
  c+=onephi(flips)
print("Expected coin flips: %f" % (flips[0]/runs))
print("Expected coin flips showing heads: %f" % (flips[1]/runs))
print("Estimated probability: %f" % (c/runs))

5voto

rodrigob Puntos 118

Aquí hay una rápida. Está relacionado con el proceso de ramificación de la respuesta de Silverfish.

Haz un paseo aleatorio, empezando por la altura 0, por ejemplo. En cada paso, sube 2 o baja 1, con probabilidad 1/2 cada uno.

Cuenta las veces que la altura actual está por debajo de la altura máxima hasta el momento.

La proporción de estos tiempos converge a $\phi$ .

import random
t=0; height=0; max=0; nonRecords=0
N=10**7
while(t<N):
    height+=random.choice([-1,2])
       # increment by -1 or 2 with probability 1/2 each
    if height<max: nonRecords+=1
    if height>max: max=height
    t+=1;
print(nonRecords/t)
print((5**(0.5)-1)/2)

0.6182664
0.6180339887498949

3voto

user164061 Puntos 281

Números de Fibonacci y cadenas de Markov

Recuerdo que una pregunta en la que los números de Fibonacci ocurrieron . Al calcular el tiempo de espera para la probabilidad de voltear '1-0-0', las probabilidades del estado '1' y del estado '1-0' son números de Fibonacci (divididos por alguna potencia de 2).

Podemos simularlo de varias maneras

Ejemplo 1

  1. Generar números binarios aleatorios de longitud $n$
  2. Elimina los números con doble 1
  3. Cuente la fracción de los números con un solo "1" al final entre los restantes

Código de ejemplo

library(binaryLogic)
set.seed(1)
### string length
n <- 20
### simulation
n_sim <- 10^4

### Step 1 generate random binary numbers (including zero)
x_dec <- sample(0:(2^n-1),n_sim,replace=TRUE)
x_bin <- as.binary(x_dec)
### Step 2 find subselection without double one's
sel <- sapply(x_bin, FUN = function(bx) sum(shiftLeft(as.binary(bx),1) & as.binary(bx))<1)
### Step 3 compute the ratio of odd and even numbers
sum(x_dec[sel] %% 2 == 0)/sum(sel)
### returns 0.6045198

Ejemplo 2

Este ejemplo muestra un poco mejor la similitud con una cadena de Markov. Ratios como estos pueden ocurrir mucho en la práctica.

Requisitos:

  • 1 jarrón/urna
  • 1 moneda justa
  • un montón de canicas rojas y azules (o cualquier otra ficha para expresar una opción binaria)

Algoritmo:

  1. Comienza con algunas canicas en el jarrón.

  2. Dibuja una canica y retírala

  3. Lanza dos veces una moneda. Para cada cola: Poner una canica del color opuesto en el jarrón (opuesto al color de la canica retirada. Para cada cabeza: si la canica retirada era roja, entonces pon una canica roja en el jarrón.

  4. Repite los pasos 2 y 3 hasta que te hartes.

  5. Cuenta la proporción de canicas rojas y azules

Código de ejemplo

### initiate
### we start with some red and blue marbles
set.seed(1)
red  <- 5
blue <- 5

### perform step 2 and 3 a lot of times
for (i in 1:10^4) {
  ### sample from the vase
  x <- sample(c("red","blue"),1, prob = c(red,blue))
  ### coin flips
  coinflips <- rbinom(2,1,0.5)

  ### add and remove marbles
  if (x == "blue") {
    blue <- blue - 1
    red <- red + sum(coinflips)
  }
  if (x == "red") {
    blue <- blue + sum(coinflips)
    red  <- red - 1 + sum(coinflips == 0)
  } 
}

### returns 0.6057246
blue/red

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X