10 votos

¿Cómo puedo determinar los parámetros de Weibull a partir de los datos?

Tengo un histograma de los datos de la velocidad del viento que suele representarse mediante una distribución weibull. Me gustaría calcular la forma de Weibull y los factores de escala que dan el mejor ajuste al histograma.

Necesito una solución numérica (a diferencia de soluciones gráficas ) porque el objetivo es determinar la forma weibull de forma programada.

Editar: Las muestras se recogen cada 10 minutos y la velocidad del viento se promedia a lo largo de los 10 minutos. Las muestras también incluyen la velocidad máxima y mínima del viento registrada durante cada intervalo, que por el momento se ignoran pero que me gustaría incorporar más adelante. El ancho de la bandeja es de 0,5 m/s

Histogram for 1 month of data

1 votos

Cuando dices que tienes el histograma, ¿te refieres a que también tienes la información sobre las observaciones o sólo conoces la anchura y la altura de las casillas?

0 votos

@suncoolsu Tengo todos los puntos de datos. Conjuntos de datos que van desde 5.000 a 50.000 registros.

0 votos

¿No se podría tomar una muestra aleatoria de los datos y realizar un MLE de los parámetros?

13voto

Alp Puntos 446

Utilice fitdistrplus:

Necesito ayuda para identificar una distribución por su histograma

Este es un ejemplo de cómo se ajusta la distribución de Weibull:

library(fitdistrplus)

#Generate fake data
shape <- 1.9
x <- rweibull(n=1000, shape=shape, scale=1)

#Fit x data with fitdist
fit.w <- fitdist(x, "weibull")
summary(fit.w)
plot(fit.w)

Fitting of the distribution ' weibull ' by maximum likelihood 
Parameters : 
       estimate Std. Error
shape 1.8720133 0.04596699
scale 0.9976703 0.01776794
Loglikelihood:  -636.1181   AIC:  1276.236   BIC:  1286.052 
Correlation matrix:
          shape     scale
shape 1.0000000 0.3166085
scale 0.3166085 1.0000000

enter image description here

0 votos

Gracias, pero estoy tratando de encontrar una solución en Java.

0 votos

¿alguna indicación en la codificación de R para obtener los factores de forma y escala? Gracias.

11voto

merriam Puntos 67

Estimación por máxima verosimilitud de los parámetros de Weibull puede ser una buena idea en su caso. Una forma de distribución de Weibull tiene el siguiente aspecto:

$$(\gamma / \theta) (x)^{\gamma-1}\exp(-x^{\gamma}/\theta)$$

Dónde $\theta, \gamma > 0$ son parámetros. Dadas las observaciones $X_1, \ldots, X_n$ la función de probabilidad logarítmica es

$$L(\theta, \gamma)=\displaystyle \sum_{i=1}^{n}\log f(X_i| \theta, \gamma)$$

Una solución "basada en la programación" sería optimizar esta función mediante una optimización con restricciones. Resolver la solución óptima:

$$\frac {\partial \log L} {\partial \gamma} = \frac{n}{\gamma} + \sum_1^n \log x_i - \frac{1}{\theta}\sum_1^nx_i^{\gamma}\log x_i = 0 $$ $$\frac {\partial \log L} {\partial \theta} = -\frac{n}{\theta} + \frac{1}{\theta^2}\sum_1^nx_i^{\gamma}=0$$

Sobre la eliminación $\theta$ nos encontramos con que:

$$\Bigg[ \frac {\sum_1^n x_i^{\gamma} \log x_i}{\sum_1^n x_i^{\gamma}} - \frac {1}{\gamma}\Bigg]=\frac{1}{n}\sum_1^n \log x_i$$

Ahora esto se puede resolver para la estimación de ML $\hat \gamma$ . Esto se puede lograr con la ayuda de los procedimientos iterativos estándar que se utilizan para encontrar la solución de la ecuación como -- Newton-Raphson u otros procedimientos numéricos.

Ahora $\theta$ se puede encontrar en términos de $\hat \gamma$ como:

$$\hat \theta = \frac {\sum_1^n x_i^{\hat \gamma}}{n}$$

0 votos

Una cosa con la que tendría cuidado es que parece que tenemos datos de series temporales aquí. Si los datos se muestrean durante un corto período de tiempo, asumir la independencia podría ser peligroso. Dicho esto, (+1).

0 votos

@cardinal Por favor, explíquese. Los datos abarcan el transcurso de un mes o hasta un año, pero muestreados regularmente (10 minutos). ¿Qué puede implicar esto?

0 votos

@cardinal Gracias por señalarlo. Yo tampoco estaba seguro de si el supuesto de independencia es adecuado.

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