Логистическая регрессия в R: вывод уравнения [с примером]

Опубликовано: 2020-07-28

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

Мы также поделились примером логистической регрессии в R, чтобы упростить понимание концепции. Однако убедитесь, что вы достаточно хорошо знаете все идеи, прежде чем работать над примером. Было бы полезно, если бы вы были знакомы с линейной регрессией , потому что обе эти концепции взаимосвязаны.

Оглавление

Что такое логистическая регрессия?

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

  • Линейная регрессия будет предсказывать значения за пределами требуемого диапазона
  • Регрессия может не распределить два преимущества по одной прогнозируемой линии.

Логистическая регрессия не дает линии, как это делает линейная регрессия. Он обеспечивает логистическую кривую, которая находится в диапазоне от 0 до значения более 1.

Изучите онлайн-курсы по науке о данных от лучших университетов мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Проверьте: Идеи проекта R

Вывод уравнения логистической регрессии

Мы можем вывести уравнение логистической регрессии из уравнения линейной регрессии. Логистическая регрессия относится к классу алгоритмов glm (обобщенная линейная модель). Нелдер и Веддерберн представили эту модель в 1972 году как метод использования линейной регрессии для решения проблем, которые она раньше не могла решить. Они предложили класс отдельных моделей и добавили логистическую регрессию как особую.

Мы знаем, что уравнение обобщенной линейной модели имеет следующий вид:

г(е<у) = а + bx1

g() обозначает функцию связи, E(y) обозначает ожидание целевой переменной, а RHS (правая часть) является линейным предиктором. Функция связи «связывает» ожидание y с линейным предиктором.

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

Начнем с уравнения линейной регрессии:

g(y) = o+(доход) — (1)

Здесь мы сохранили независимую переменную как «доход» для простоты понимания.

Наше внимание сосредоточено на вероятности результирующей зависимой переменной (покупает клиент или нет?). Как мы уже говорили, g() — это наша функция связи, и она основана на вероятности успеха (p) и вероятности отказа (1-p). р должен обладать следующими качествами:

  • p всегда должен быть положительным
  • p всегда должен быть меньше или равен 1

Теперь мы обозначим g () с помощью «p» и получим наше уравнение логистической регрессии.

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

p = exp(0+(доход)) = e((0+(доход)) — (2)

Нам придется разделить p на число большее, чем p, чтобы сделать вероятность меньше 1:

p = exp(0+(доход)) / (0+(доход)) + 1 = e(0+(доход)) / (0+(доход)) + 1 — (3)

Используя уравнение (1), (2) и (3), мы можем определить p как:

р = еу /1 + еу — (4)

Здесь p — вероятность успеха, поэтому 1-p должна быть вероятностью отказа:

q = 1 – p = 1 -(ey /1 + ey) – (5)

Теперь разделим (4) на (5):

р/1 – р = еу

Если мы возьмем лог с обеих сторон, то получим следующее:

log (p / 1 – p) = y

Это функция связи. Когда мы подставляем значение y, которое мы установили ранее, мы получаем:

log(p / 1 – p) = o + (доход)

И вот оно, уравнение логистической регрессии. Поскольку он обеспечивает вероятность результата, его значение всегда остается между 0 и выше 1.

Читайте о: 9 интересных идей и тем для проекта линейной регрессии для начинающих

Пример логистической регрессии в R

В нашем случае логистической регрессии в R мы используем данные UCLA (Калифорнийский университет, Лос-Анджелес). Здесь мы должны создать модель, которая прогнозирует шансы на поступление в соответствии с имеющимися у нас данными. У нас есть четыре переменные, в том числе средний балл, балл GRE, ранг студента в бакалавриате и признание.

df <- read.csv («https://stats.idre.ucla.edu/stat/data/binary.csv»)

ул (дф)

## 'data.frame': 400 набл. из 4 переменных:

## $ accept: int 0 1 1 1 0 1 1 0 1 0 …

## $ gre : int 380 660 800 640 520 760 560 400 540 700 …

## $ gpa : число 3,61 3,67 4 3,19 2,93 3 2,98 3,08 3,39 3,92 …

## $ rank : int 3 3 1 4 4 2 1 2 3 2 …

Переменные могут быть числовыми или целыми:

сумма (is.na (df))

## [1] 0

Мы также обнаруживаем, что нулевых значений нет, и случаев отказа больше, чем событий принятия, поскольку среднее значение переменной limit меньше 0,5.

Вы должны убедиться, что система правильно распределяет допуски в каждой категории ранга. Предположим, что один ранг имеет только 5 отказов (или допуск информации), тогда вам не обязательно использовать этот ранг в своем анализе.

xtabs(~ допустить +rank ,data=df)

## классифицировать

## признать 1 2 3 4

## 0 28 97 93 55

## 1 33 54 28 12

Теперь запустим нашу функцию:

df$rank <- as.factor(df$rank)

logit <- glm(допустить ~ gre+gpa+rank,data=df,family=”binomial”)

резюме (логит)

##

## Вызов:

## glm(formula = accept ~ gre + gpa + rank, family = “binomial”,

## данные = дф)

##

## Остаточное отклонение:

## Мин. 1 кв. Медиана 3 кв. Макс.

## -1,6268 -0,8662 -0,6388 1,1490 2,0790

##

## Коэффициенты:

## Оценить стандарт. Значение ошибки z Pr(>|z|)

## (Перехват) -3,989979 1,139951 -3,500 0,000465 ***

## gre 0,002264 0,001094 2,070 0,038465 *

## гПа 0,804038 0,331819 2,423 0,015388 *

## ранг2 -0,675443 0,316490 -2,134 0,032829 *

## ранг3 -1,340204 0,345306 -3,881 0,000104 ***

## ранг4 -1,551464 0,417832 -3,713 0,000205 ***

## —

## Значение. коды: 0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 '' 1

##

## (Параметр дисперсии для биномиального семейства принимается равным 1)

##

## Нулевое отклонение: 499,98 на 399 степенях свободы

## Остаточное отклонение: 458,52 на 394 степенях свободы

## АИК: 470,52

##

## Количество итераций оценки Фишера: 4

Вы, должно быть, заметили, что перед запуском функции мы преобразовали переменную rank в фактор из целого числа. Убедитесь, что вы делаете то же самое.

Конечный результат:

Предположим, что средний балл студента составляет 3,8, балл GRE — 790, и он учился в колледже с рейтингом 1. Давайте найдем его шансы получить признание в будущем, используя нашу модель:

x <- data.frame(gre=790,gpa=3.8,rank=as.factor(1))

р <- предсказать (логит, х)

п

## 1

## 0,85426

Наша модель предсказывает, что у мальчика есть 85% шансов получить госпитализацию в будущем.

Читайте также: Идеи проекта машинного обучения

Последние мысли

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

Если вам интересно узнать о R, все о науке о данных, ознакомьтесь с программой IIIT-B & upGrad Executive PG по науке о данных , которая создана для работающих профессионалов и предлагает более 10 тематических исследований и проектов, практические семинары, наставничество с отраслевых экспертов, один на один с отраслевыми наставниками, более 400 часов обучения и помощи в трудоустройстве в ведущих фирмах.

Чем логистическая регрессия и линейная регрессия отличаются друг от друга?

Цель линейной регрессии — определить наиболее подходящую линию, но логистическая регрессия идет еще дальше и сопоставляет значения линии с сигмовидной кривой. Основное различие между этими двумя методами заключается в том, что логистическая регрессия применяется, когда зависимая переменная является бинарной. Когда зависимая переменная является непрерывной, а линия регрессии линейной, используется линейная регрессия. В то время как обычный метод наименьших квадратов используется для оценки линейной регрессии, метод оценки максимального правдоподобия используется для оценки логистической регрессии. Выход линейной регрессии является непрерывным, но выход логистической регрессии имеет только ограниченное количество дискретных потенциальных значений.

Когда полезно использовать логистическую регрессию?

Категориальная зависимая переменная прогнозируется с использованием логистической регрессии. Когда имеющиеся у нас данные могут быть измерены в бесконечном масштабе, мы можем применить логистическую регрессию. Для оценки вероятности события полезен логистический регрессионный анализ. Он помогает определить вероятность любых двух классов. С помощью логистической регрессии можно предсказать только результаты классификации и вероятности. Его можно использовать для решения различных задач классификации, таких как обнаружение спама, прогнозирование диабета, диагностика рака и т. д.

Каковы ограничения использования логистической регрессии?

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

2. Алгоритм логистической регрессии чувствителен к выбросам.

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

4. Если существует функция, которая полностью разделяет два класса, модель больше не может обучаться. Это называется «полным разделением».

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

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