Як застосувати біноміальний GLMM (glmer) до відсотків, а не так-ні?


21

У мене є експеримент повторного вимірювання, де залежна змінна є відсотком, і я маю кілька факторів як незалежних змінних. Я хотів би використати glmerз пакету R lme4трактувати це як проблему логістичної регресії (шляхом уточнення family=binomial), оскільки, здається, це вміщення безпосередньо відповідає.

Мої дані виглядають так:

 > head(data.xvsy)
   foldnum      featureset noisered pooldur dpoolmode       auc
 1       0         mfcc-ms      nr0       1      mean 0.6760438
 2       1         mfcc-ms      nr0       1      mean 0.6739482
 3       0    melspec-maxp    nr075       1       max 0.8141421
 4       1    melspec-maxp    nr075       1       max 0.7822994
 5       0 chrmpeak-tpor1d    nr075       1       max 0.6547476
 6       1 chrmpeak-tpor1d    nr075       1       max 0.6699825

і ось команда R, на яку я сподівався, буде доречною:

 glmer(auc~1+featureset*noisered*pooldur*dpoolmode+(1|foldnum), data.xvsy, family=binomial)

Проблема в тому, що команда скаржиться на те, що моя залежна змінна не є цілими числами:

In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!

і аналіз цих (пілотних) даних дає в результаті дивні відповіді.

Я розумію, чому binomialсім'я очікує цілих чисел (так-ні рахує), але, здається, слід нормально регресувати дані про відсоток. Як це зробити?


1
Мені це не здається нормальним, оскільки 5 з 10 - це не та сама інформація, як 500 з 1000. Висловіть відповідь як один підрахунок "ні". "успіхи" & один рахунок немає. "невдачі".
Scortchi

@Scortchi спасибі, я думаю, ви можете мати рацію. Я частково замислювався над суцільним характером моїх відсотків (отриманих від імовірнісних рішень), подібним до цього питання: stats.stackexchange.com/questions/77376/…, але я вважаю, що можу висловити свої дані шляхом змістовного перетворення на цілі числа.
Ден Стоуелл

Відповіді:


22

Щоб використовувати вектор пропорцій як змінну відповіді glmer(., family = binomial), вам потрібно встановити кількість випробувань, які призвели до кожної пропорції, використовуючи weightsаргумент. Наприклад, використовуючи cbppдані з lme4пакету:

glmer(incidence / size ~ period + (1 | herd), weights = size,
   family = binomial, data = cbpp)

Якщо ви не знаєте загальної кількості випробувань, то біноміальна модель не підходить, як зазначено в повідомленні про помилку.


Я не можу сказати, чи використовується вага для цього чи ні. Але ви, звичайно, можете вводити дані у вигляді матриці з двома стовпцями (успіхи / невдачі) в лівій частині формули.
ndoogan

Але @ndoogan, оригінальне питання стосувалося пропорцій, а не успіхів / невдач. І наведений вище код дійсно працює, як я взяв його з cbppдовідкової сторінки.
Стів Уокер

Досить справедливо. Хоча я мав на увазі, що успіхи / невдачі ( не призначені для поділу) - це те, звідки беруться пропорції для біноміальної моделі.
ndoogan

+1, але читачі, можливо, захочуть побачити відповідь @ BenBolker тут stats.stackexchange.com/questions/189115 про можливі способи боротьби із зайвою дисперсією.
амеба каже: Відновити Моніку

9

(0,1)


2
Біноміальна модель - модель пропорцій. Хоча це доцільно лише тоді, коли ви знаєте кількість випробувань. Якщо у вас є відсоток, не вказуючи кількість випробувань, то я вважаю, що ви правильні, що бета-регресія підходить.
ndoogan

@ndoogan Щоб уточнити, моя порада не "використовувати бета-регресію, коли ваша відповідь пропорційна", а навпаки, "якщо ваша відповідь може приймати значення лише в (0,1) наприклад, пропорції / відсотки, тоді типова бета-регресія "
М. Берк,

Дякую, це хороший момент. Я приймаю іншу відповідь, тому що вона відповідає на запитання як написано, але пункт про бета-регресію добре зроблений, тому я її схвалив.
Ден Стоуелл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.