2016-03-07 3 views
2

Я устанавливаю бета-дистрибутив с beta.fit (W). Значения W не достигают границ [0,1]. Мой вопрос заключается в следующем: мне нужно принудительно установить границы [0,1] с помощью beta.fit (W, loc = min (W), scale = max (W) - min (W)), или я могу предположить, что как если данные находятся в пределах диапазона [0,1], фитинг «будет в порядке»? Очевидно, что масштабирование данных должно давать разные значения a и b. Какой из них «правильный»?установка бета-распределения (в python) - уточнение пожалуйста

Этот вопрос связан с: https://stats.stackexchange.com/questions/68983/beta-distribution-fitting-in-scipy

К сожалению, нет действительного ответа на то, что делать, когда данные в пределах ожидаемого диапазона, дают ...

Я пытался соответствовать данные, полученные с известными значения a и b, и ни один из методов не дал хорошей подгонки, хотя масштабирование, похоже, немного помогло.

Благодаря

+2

Если вы хотите исправить loc или scale, используйте '.fit (..., floc = ..., fscale = ...)'. –

ответ

1

Когда не проходя floc и fscale параметров, fit пытается оценить их. Если вы знаете, что данные находятся в определенном интервале, вы должны сделать эту дополнительную информацию известной функции подгонки (путем установки параметров самостоятельно), чтобы улучшить соответствие. Вы также можете дать начальные догадки для α, β и параметров шкалы (через аргументы ключевого слова loc и scale); Однако функция угадывания по умолчанию для SciPy кажется довольно сложной.

Выведение floc и fscale от границ образца устанавливается is not a good idea, так как бета-распределение равно нуль на границах интервала для большинства значений α и β, что означает, что вы создаете большие расхождения между данными и всеми возможными припадками.

+0

У меня создалось впечатление, что масштаб и loc должны использоваться для масштабирования переменных, которые не находятся в интервале [0,1], и что в пределах шкалы всегда 1 и loc = 0, т.е. ничего не меняется во входных данных , Вы говорите, что данные масштабируются каким-то образом в любом случае. Следовательно, если данные образцы все из определенного [альфа, бета], но не охватывают весь [0,1], оценка будет по своей сути неверной. Я прав? В противном случае я не понимаю значения шкалы больше 1, которые поддерживаются функцией подгонки, поскольку бета определена только на [0,1] ... Спасибо – user3861925

+2

Бета-дистрибуция глобально преобразует свои аргументы в [0,1], применяя преобразование 'y = (x - loc)/scale'. Это не ограничивается данными за пределами интервала [0,1]. –

+0

, так что он просто не всегда работает точно тогда ... когда я предоставляю элементы в диапазоне, скажем, [0,05,0,5]. Я ожидал бы, что подгонка, которая не имеет этого значения вне данных образцов, скажем 0,6. Очевидно, что alg не учитывает это с учетом или без масштабирования ... спасибо снова – user3861925

Смежные вопросы