Как я могу определить параметры Weibull из данных?

10

У меня есть гистограмма данных о скорости ветра, которая часто представлена ​​с использованием распределения Вейбулла. Я хотел бы рассчитать форму и масштабные коэффициенты Вейбулла, которые наилучшим образом соответствуют гистограмме.

Мне нужно численное решение (в отличие от графических решений ), потому что цель состоит в том, чтобы программно определить форму Вейбулла.

Изменить: образцы собираются каждые 10 минут, скорость ветра усредняется за 10 минут. Образцы также включают максимальную и минимальную скорость ветра, записанные в течение каждого интервала, которые в настоящее время игнорируются, но я хотел бы включить их позже. Ширина бункера 0,5 м / с

Гистограмма за 1 месяц данных

klonq
источник
1
когда вы говорите, что у вас есть гистограмма - вы имеете в виду также информацию о наблюдениях или вы ТОЛЬКО знаете ширину и высоту бункера?
Suncoolsu
@ Suncoolsu У меня есть все данные точек. Наборы данных в диапазоне от 5000 до 50000 записей.
клонк
Не могли бы вы взять случайную выборку данных и выполнить MLE параметров?
Schenectady
2
Какова цель оценки? Чтобы ретроспективно охарактеризовать прошлые условия? Предсказать будущее производство электроэнергии в одном месте? Для прогнозирования выработки электроэнергии в сети турбин? Калибровать метеорологическую модель? И т.д. Для этого вопроса определение подходящего решения критически зависит от того, как оно будет использовано.
whuber
@whuber в настоящее время идея состоит в том, чтобы суммировать наборы данных о ветре в форме, позволяющей сравнивать периоды и / или сайты. Позже целью будет сравнение тенденций и, как вы говорите, формирование суждений относительно будущего производства и т. Д. Я очень новичок в статистике, но у меня есть масса данных (которыми я не могу поделиться), и я хотел бы извлечь как Как можно больше информации от него. Если вы можете указать мне на любое чтение на эту тему, это будет высоко ценится.
Клонк

Ответы:

11

Оценка максимального правдоподобия параметров Вейбулла может быть хорошей идеей в вашем случае. Форма распределения Вейбулла выглядит следующим образом:

(γ/θ)(x)γ1exp(xγ/θ)

Где - это параметры. Учитывая наблюдения , функция логарифмического правдоподобияθ,γ>0X1,,Xn

L(θ,γ)=i=1nlogf(Xi|θ,γ)

Одно из «программных» решений - оптимизировать эту функцию с помощью ограниченной оптимизации. Решение для оптимального решения:

logLγ=nγ+1nlogxi1θ1nxiγlogxi=0
logLθ=nθ+1θ21nxiγ=0

При устранении мы получаем:θ

[1nxiγlogxi1nxiγ1γ]=1n1nlogxi

Теперь это можно решить для оценки ML . Это может быть достигнуто с помощью стандартных итерационных процедур, решение которых используется для нахождения решения уравнения, такого как Ньютон-Рафсон или других численных процедур.γ^

Теперь можно найти в терминах как:θγ^

θ^=1nxiγ^n
suncoolsu
источник
Я бы хотел быть осторожным в том, что у нас есть данные временных рядов. Если данные отбираются в течение короткого периода времени, предполагая, что независимость может быть опасной. Тем не менее, (+1).
кардинал
@cardinal Пожалуйста, объясните. Данные колеблются в течение месяца или до года, но регулярно отбираются (10 минут). Что это может означать?
Клонк
@cardinal Спасибо за указание на это. Я тоже не был уверен, уместно ли предположение о независимости.
Suncoolsu
1
@ klonq, как берется образец? Это средняя скорость за десять минут между записями? За одну минуту до записи? Мгновенная скорость на момент записи? В основном я бы искал последовательные корреляции, которые могли бы значительно уменьшить ваш эффективный размер выборки. Использование оценки ML, основанной на предположении о независимых выборках, может дать или не дать вам хорошую оценку в этом контексте, и следует проявлять особую осторожность в отношении любого вывода, основанного на оценке. Однако подход Suncoolsu определенно обеспечивает первую линию атаки.
кардинал
@klonq - Если возможно, не могли бы вы описать, как был собран ваш образец? Как выглядят данные?
Suncoolsu
12

Используйте fitdistrplus:

Нужна помощь в определении распределения по его гистограмме

Вот пример того, как подходит распределение Вейбулла:

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

введите описание изображения здесь

bill_080
источник
Спасибо, но я пытаюсь найти решение в Java.
Клонк
какие-либо указатели в кодировании R, чтобы получить форму и масштабные коэффициенты? Спасибо.