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


10

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

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

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

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


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

Я бы хотел быть осторожным в том, что у нас есть данные временных рядов. Если данные отбираются в течение короткого периода времени, предполагая, что независимость может быть опасной. Тем не менее, (+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

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


Спасибо, но я пытаюсь найти решение в Java.
Клонк

какие-либо указатели в кодировании R, чтобы получить форму и масштабные коэффициенты? Спасибо.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.