Бета-регрессия данных о пропорциях, включая 1 и 0


19

Я пытаюсь создать модель, для которой у меня есть переменная ответа, которая составляет пропорцию между 0 и 1, это включает довольно много 0 и 1, но также и много значений между ними. Я думаю о попытке бета-регрессии. Пакет, который я нашел для R (betareg), допускает только значения в диапазоне от 0 до 1, но не включая 0 или 1. Я читал в другом месте, что теоретически бета-распределение должно иметь возможность обрабатывать значения 0 или 1, но я не знаю, как справиться с этим в RI видел, что некоторые люди добавляют 0,001 к нулям и беру 0,001 из единиц, но я не уверен, что это хорошая идея?

В качестве альтернативы я мог бы преобразовать ответную переменную и использовать линейную регрессию. В этом случае у меня та же проблема с 0 и 1, которые не могут быть преобразованы в лог.


Знание количества, а не только пропорций, имеет решающее значение независимо от того, что вы делаете. Но как только у вас есть счетчики, первой моделью, которую следует рассмотреть, даже если это всего лишь отправная точка, является логистическая регрессия.
whuber

Ну, бета находится между 0 и 1 ( почти наверняка ). Если вы наблюдаете их, вы должны использовать модель, которая дает возможность наблюдать за вашей выборкой. Несколько ответов, кажется, охватывают такой подход; Я бы начал с них.
Glen_b

Ответы:


18

Вы можете использовать модели с нулевой и / или одной завышенной бета-регрессией, которые комбинируют бета-распределение с вырожденным распределением, чтобы присвоить некоторую вероятность 0 и 1 соответственно. Для подробностей смотрите следующие ссылки:

Ospina, R. & Ferrari, SLP (2010). Завышенные бета-версии. Статистические документы, 51 (1), 111-126. Ospina, R. & Ferrari, SLP (2012). Общий класс моделей бета-регрессии с нулевой или одной инфляцией. Вычислительная статистика и анализ данных, 56 (6), 1609 - 1623.

Эти модели легко реализовать с помощью пакета gamlss для R.


У вас есть пример того, как реализовать их на R?
Ouistiti

2
@ Ouistiti zoibпакет делает это легко.
Марк Уайт

11

В документации для betaregпакета R упоминается, что

если y также принимает крайние значения 0 и 1, практическое преобразование на практике имеет вид (y * (n − 1) + 0,5) / n, где n - размер выборки.

http://cran.r-project.org/web/packages/betareg/vignettes/betareg.pdf

Они дают ссылку Smithson M, Verkuilen J (2006). «Лучшая лимонная соковыжималка? Регрессия максимального правдоподобия с бета-распределенными зависимыми переменными». Психологические методы, 11 (1), 54–71.


1

Разве вы не делаете логит-преобразование, чтобы сделать переменную в диапазоне от минус бесконечности до плюс бесконечности? Я не уверен, если данные с 0 и 1 должны быть проблемой. Это показывает какое-либо сообщение об ошибке? Кстати, если у вас есть только пропорции, ваш анализ всегда будет неправильным. Вы должны использовать , weight=argumentчтобы glmс числом случаев.

Если ничего не работает, вы можете использовать медианное разделение, разделение на квартили или любую другую точку разделения, которую вы считаете целесообразной, чтобы разделить DV на несколько категорий, а затем выполнить вместо этого Порядковую логистическую регрессию. Это может сработать. Попробуйте эти вещи.

Лично я не думаю, что добавление 0,001 к нулям и взятие 0,001 из них - это слишком плохая идея, но у нее есть некоторые проблемы, которые будут обсуждаться позже. Подумайте, почему бы вам не сложить и не вычесть 0,000000001 (или даже больше десятичных знаков)? Это будет лучше представлять 0 и 1 !! Вам может показаться, что это не имеет большого значения. Но это действительно так.

Давайте посмотрим на следующее:

> #odds when 0 is replaced by 0.00000001

> 0.00000001/(1-0.00000001)
[1] 1e-08
> log(0.00000001/(1-0.00000001))
[1] -18.42068

> #odds when 1 is replaced by (1-0.00000001):

> (1-0.00000001)/(1-(1-0.00000001))
[1] 1e+08
> log((1-0.00000001)/(1-(1-0.00000001)))
[1] 18.42068

> #odds when 0 is replaced by 0.001

> 0.001/(1-0.001)
[1] 0.001001001
> log(0.001/(1-0.001))
[1] -6.906755

> #odds when 1 is replaced by (1-0.001):

> (1-0.001)/(1-(1-0.001))
[1] 999
> log((1-0.001)/(1-(1-0.001)))
[1] 6.906755

Итак, вы видите, вам нужно держать шансы как можно ближе к (0/1) и (1/0). Вы ожидаете, что шансы на логи варьируются от минус бесконечности до плюс бесконечности. Таким образом, чтобы сложить или вычесть, вам нужно выбрать действительно очень длинное десятичное число, чтобы шансы журнала были близки к бесконечности (или очень велики) !! Степень, которую вы считаете достаточно большой, зависит исключительно от вас.


1

Проверьте следующее, где специальное преобразование упомянуто на слайде 17. maartenbuis.nl/presentations/berlin10.pdf. Также вы можете моделировать 0 и 1 с двумя отдельными логистическими регрессиями, а затем использовать бета-регрессию для тех, кто не находится на границе.


1
(Y*(N-1)+0,5)/NN

0

пп

a,бa,б

Икс1,...,ИксNNΣJ[ψ(ΣяИкся)-ψ(ИксJ)]ΣJ[ψ(Σя1-Икся)-ψ(1-ИксJ)]


1
Вы можете участвовать в этой мета-теме. stats.meta.stackexchange.com/questions/5814/…
Sycorax говорит восстановить Monica
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.