Алгоритм логистической регрессии
Давайте заглянем внутрь и реализуем алгоритм логистической регрессии. Поскольку функция glm() в R устроена очень сложно, мы ограничимся реализацией простой логистической регрессии для одного конкретного набора данных.
Вместо суммы квадратов в качестве метрики мы будем использовать правдоподобие. Однако логарифм правдоподобия вычислительно устойчивее, поэтому воспользуемся именно им. Есть ещё одна тонкость: так как нам нужно максимизировать логарифм правдоподобия, а функция optim() по умолчанию ищет минимум, удобнее вычислять отрицательный логарифм правдоподобия.
Значение логарифма правдоподобия для каждого наблюдения задаётся формулой:

Метрика, которую нужно вычислить, — это минус сумма вкладов логарифма правдоподобия по всем наблюдениям.
Значения объясняющей переменной (столбец time_since_last_purchase из набора данных churn) доступны как x_actual.
Значения целевой переменной (столбец has_churned из набора данных churn) доступны как y_actual.
Это упражнение является частью курса
Промежуточная регрессия в R
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Set the intercept to 1
intercept <- ___
# Set the slope to 0.5
slope <- ___
# Calculate the predicted y values
y_pred <- ___
# Calculate the log-likelihood for each term
log_likelihoods <- ___
# Calculate minus the sum of the log-likelihoods for each term
___