Как сделать логистическую регрессию в R, когда результат является дробным (отношение двух отсчетов)?


24

Я рецензирую статью, в которой есть следующий биологический эксперимент. Устройство используется, чтобы подвергать клетки различным величинам напряжения сдвига жидкости. По мере того как к клеткам прикладывается большее напряжение сдвига, большее их количество начинает отрываться от субстрата. На каждом уровне напряжения сдвига они подсчитывают количество клеток, которые остаются прикрепленными, и, поскольку они знают общее количество клеток, которые были присоединены в начале, они могут рассчитать дробное присоединение (или отделение).

Если вы построите график зависимости адгезионной фракции от напряжения сдвига, результатом будет логистическая кривая. Теоретически, каждая отдельная ячейка - это отдельное наблюдение, но очевидно, что существуют тысячи или десятки тысяч ячеек, поэтому набор данных был бы гигантским, если бы он был установлен обычным образом (с каждой строкой, являющейся наблюдением).

Поэтому, естественно, мой вопрос (как указано в заголовке) должен иметь смысл сейчас. Как мы делаем логистическую регрессию, используя дробный результат в качестве DV? Есть ли автоматическое преобразование, которое можно сделать в GLM?

В том же духе, если бы было потенциально 3 или более (дробных) измерений, как можно было бы сделать это для полиномиальной логистической регрессии?


Вот несколько примеров относительно многомерной логистической регрессии результатов:http://www.ats.ucla.edu/stat/r/dae/mlogit.htm
marbel

1
То, что вы описываете, не звучит так, как будто вы будете иметь независимые наблюдения (поскольку клетки, по-видимому, не присоединяются повторно при увеличении сдвига, число, все еще прикрепленное при каждой более высокой настройке напряжения, должно быть не больше, чем предыдущее число); эта зависимость должна быть принята во внимание. (Это напоминает ситуацию с кривыми роста.) --- вы не можете просто вставить числа в GLM, как если бы они были независимыми ... и ни один из ответов, кажется, не решает эту проблему.
Glen_b

2
@Glen_b Каждый эксперимент будет проводиться с разными ячейками, т. Е. С привязкой «100%» и применением другого значения напряжения сдвига.
thecity2

Ах хорошо. Это дало бы независимые результаты.
Glen_b

Ответы:


37

glmФункция Rпозволяет 3 способа указать формулу для модели логистической регрессии.

Наиболее распространенным является то, что каждая строка фрейма данных представляет одно наблюдение, а переменная отклика равна либо 0, либо 1 (или коэффициент с 2 уровнями, или другой вариант с только 2 уникальными значениями).

Другой вариант - использовать матрицу из 2 столбцов в качестве переменной ответа, причем первый столбец - это счетчик «успехов», а второй столбец - счетчик «неудач».

Вы также можете указать ответ в виде пропорции от 0 до 1, а затем указать другой столбец в качестве «веса», который дает общее число, из которого получена пропорция (таким образом, ответ 0,3 и вес 10 равен 3 ». успехи »и 7« неудач »).

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


9

Для начала, если у вас есть зависимая переменная, которая является пропорцией, вы можете использовать бета-регрессию. Это не распространяется (с моими ограниченными знаниями) на несколько пропорций.

Для обзора бета-регрессии и реализации R ознакомьтесь с бетарегом .


Благодарность! Это похоже на то, что мне нужно для биномиального случая.
thecity2

2

Я использовал nnet::multinom(пакет nnet является частью MASS) для аналогичной цели, он принимает непрерывный ввод в [0, 1].

Если вам нужна ссылка: C. Beleites et.al .: Рамановская спектроскопическая классификация тканей астроцитомы: использование мягкой справочной информации. Anal Bioanal Chem, 2011, Vol. 400 (9), стр. 2801-2816


Большой! У меня есть этот пакет, и я не осознавал, что у него есть такая возможность.
thecity2

@cbeleites: это позволяет зависимому быть [0,1]? Я думал, что это была функция для номинальной зависимости (предикторы должны быть масштабированы до [0,1] ...
B_Miner

@B_Miner: да, зависимый может быть в [0, 1]. Функция подходит для искусственной нейронной сети без скрытого слоя и с логистической сигмоидальной. И да, рекомендуется также приблизить предикторы к [0, 1] для лучшей конвергенции.
cbeleites поддерживает Монику
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.