Creo que no hay ningún error por su parte, si establece sigma <- 0.0045
y
x <- seq(100, 112, length=100) // Lower values produce jagged edges
y <- seq(0.25, 1.1, length=60)
tendrás esto:
Con estos parámetros la densidad tiene aproximadamente el mismo pico y el máximo de la función de densidad también tiene una dirección similar. Por desgracia, en este gráfico hay varias cosas que no funcionan: el parámetro sigma se ha cambiado y el máximo de la función de densidad parece disminuir más lentamente. Sin embargo, el código producido es correcto, ya que podemos asumir que plnorm está implementado correctamente y el parámetro sdlog es obviamente correcto. El parámetro de la media también es correcto, la prueba de ello se deja como ejercicio ;)
Me imagino que no estás satisfecho con el argumento anterior, pero la trama de la Wikipedia debe estar equivocada. La volatilidad de una lognormal viene dada por $\sqrt{(e^{\sigma^2}-1) e^{2 \mu + \sigma^2}}$ . Para $t=1$ esto se evalúa como $11.08$ En el caso de la bolsa de valores, es evidente que es mucho más amplia que la que aparece en la Wikipedia, tal vez el autor se olvidó de incluir el precio de las acciones en su cálculo de $\mu$ . Compara con esto generado por
mu <- 0.1
sigma <- 0.1
S0 <- 100
color <- rgb(85, 141, 85, maxColorValue=255)
x <- seq(80, 130, length=100)
y <- seq(0.25, 1.1, length=60)
f <- function(s, t) {
dlnorm(s, meanlog=log(S0) + ((mu - 1/2 * sigma^2) * t),
sdlog=sigma * sqrt(t))
}
z <- outer(x, y, f)
persp(x, y, z, theta=180, phi=25, expand=0.75, col=color,
ticktype="detailed", xlab="s", ylab="time", zlab="density"
)