Tengo un conjunto de datos y tengo que montar este conjunto de datos con una distribución estable. El problema es que las distribuciones estables son conocidas analíticamente solamente bajo la forma de la función característica (de Fourier). ¿Cómo puedo hacerlo?
Respuestas
¿Demasiados anuncios?Como se sugiere en los comentarios, puede utilizar fitdistr
, con la función de densidad de fBasics
.
# Sample data
x <- rt(100,df=4)
# Density (I reparametrize it to remove the constraints
# on the parameters)
library(fBasics)
f <- function(u,a,b,c,d) {
cat(a,b,c,d,"\n") # Some logging (it is very slow)
dstable(u, 2*exp(a)/(1+exp(a)), 2*exp(b)/(1+exp(b))-1, exp(c), d)
}
# Fit the distribution
library(MASS)
r <- fitdistr(x, f, list(a=1, b=0, c=log(mad(x)), d=median(x)))
r
# Graphical check
plot(
qstable(ppoints(100),
2*exp(r$estimate[1])/(1+exp(r$estimate[1])),
2*exp(r$estimate[2])/(1+exp(r$estimate[2]))-1,
exp(r$estimate[3]),
r$estimate[4]
),
sort(x)
)
abline(0,1)
Una forma para adaptarse a la $\alpha$ parámetro es a través de la Nagaev transformar descrito por Okoneshnikov. Una alternativa es la Probabilidad de Retorno' método de Mantegna y Stanley, que es considerablemente más fácil.
edit: el otro 'clásico' es el método de Kogon & Williams (S. M. Kogon, Douglas B. Williams, "En Función Característica Basada en la Distribución Estable Estimación de los Parámetros de Técnicas"), véase también la implementación en matlab de K&W
Respuesta de @Vincent suena bien, pero aquí es otro enfoque: ya que sabes la transformada de Fourier de la distribución, tomar la adecuada transformación de Fourier de los datos y encontrar parámetros que le dan el mejor ajuste en el espacio de Fourier.
Creo que este método debería funcionar igual de bien en la teoría y en práctica evitaría un montón de Integración numérica para obtener la forma de las distribuciones estables. Yo soy no codificación de la prueba de ahora, lo siento. ¿Alguien tiene cualquier idea sobre esto?