5 votos

Bondad de ajuste de los precios de las acciones

Estoy en mis primeros días de aprendizaje R y me topé con un obstáculo con un pequeño caso de uso de las finanzas.


(EDIT) Básicamente quiero saber cómo probar la aptitud de la muestra contra cualquier distribución. Digamos, encontrar el grado de libertad de una distribución t que tendría el mejor ajuste con la lista dada de los rendimientos de los activos. Pensé que el camino a seguir es generar un conjunto de datos aleatorios con propiedades dadas, y qqplot con los datos reales, junto con un abline para ver si es lineal o no. En la pregunta estoy usando normal/lognormal sólo como un ejemplo que pensé que sería más fácil de discutir.


Así, hay una lista de precios de acciones (presumiblemente una distribución lognormal), a partir de la cual calculo una lista de rendimientos (presumiblemente una distribución normal). Ahora quiero comprobar mis suposiciones sobre las distribuciones, así que grafico ambas:

par(mfcol=c(2,3))

#plot densities
plot(density(sbux.prices))
plot(density(sbux.returns))

#plot q-q probabilities for normal distribution
sbux.prices.norm = rnorm(n=1000, mean=mean(sbux.prices), sd=sd(sbux.prices))
qqplot(sbux.prices.norm, sbux.prices)
abline(0,1) 
sbux.returns.norm = rnorm(n=1000, mean=mean(sbux.returns), sd=sd(sbux.returns))
qqplot(sbux.returns.norm, sbux.returns)
abline(0,1)

#plot q-q probabilities for lognormal distribution
sbux.prices.lnorm = rlnorm(n=1000, mean=mean(sbux.prices), sd=sd(sbux.prices))
qqplot(sbux.prices.lnorm, sbux.prices)
abline(0,1) 
sbux.returns.lnorm = rlnorm(n=1000, mean=mean(sbux.returns), sd=sd(sbux.returns))
qqplot(sbux.returns.lnorm, sbux.returns)
abline(-1,1)

enter image description here

Dos preguntas.

  1. Con sólo mirar los gráficos anteriores, puedo decir que los precios siguen una distribución lognormal, porque el gráfico QQ correspondiente se ajusta mucho mejor a la lognormal que a la normal. Pero los rendimientos parecen ajustarse bien con ambas distribuciones - ¿es correcto o estoy haciendo algo mal?
  2. Obviamente, es mejor confiar en una estimación matemática de la forma física que en un humano que compruebe las tablas. Creo que puedo utilizar la prueba de Chi-cuadrado o Kolmogorov-Smirnov, pero no entiendo cómo hacerlo exactamente. Por ejemplo ks.test(sbux.returns, sbux.returns.norm) me da p-value = 0.007781 así que definitivamente me estoy perdiendo algo.

1voto

mat_geek Puntos 1367

Como veo en el gráfico de densidad de los precios, la distribución no parece normal ni lognormal. Parece tener 2 jorobas y una lognormal no. Pero eso podría ser un artefacto de la anchura del kernel (estoy asumiendo que se utilizó una estimación de la densidad del kernel). ¿Es eso lo que hace la función de densidad en R? No estoy muy familiarizado con R.

En mi opinión, la densidad de los rendimientos se ajusta bien a una distribución normal, pero es posible que haya un problema en la cola inferior, como se observa en el gráfico qq. No creo que se ajuste bien a una lognormal. El gráfico qq diverge de la línea en ambas colas.

¿Por qué crees que el ajuste lognormal es bueno para los precios? La línea es muy empinada, lo que indica que las escalas deben ser diferentes. Debería seguir la línea de 45 grados si los cuantiles de ambos ejes utilizaran la misma escala. Dado que la pendiente es tan pronunciada y los círculos tan gruesos, no creo que esté claro que los cuantiles caigan sobre una línea recta.

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