В множественной линейной регрессии можно найти коэффициент по следующей формуле.
beta = solve(t(X) %*% X) %*% (t(X) %*% Y) ; beta
Например:
> y <- c(9.3, 4.8, 8.9, 6.5, 4.2, 6.2, 7.4, 6, 7.6, 6.1)
> x0 <- c(1,1,1,1,1,1,1,1,1,1)
> x1 <- c(100,50,100,100,50,80,75,65,90,90)
> x2 <- c(4,3,4,2,2,2,3,4,3,2)
> Y <- as.matrix(y)
> X <- as.matrix(cbind(x0,x1,x2))
> beta = solve(t(X) %*% X) %*% (t(X) %*% Y);beta
[,1]
x0 -0.8687015
x1 0.0611346
x2 0.9234254
> model <- lm(y~+x1+x2) ; model$coefficients
(Intercept) x1 x2
-0.8687015 0.0611346 0.9234254
Я хотел бы, как таким же «ручным» способом рассчитать бета-версию для логистической регрессии. Где, конечно, у будет 1 или 0. Предполагая, что я использую семейство биномов со ссылкой на логит.
Ответы:
Оценщик OLS в модели линейной регрессии довольно редко обладает тем свойством, что он может быть представлен в закрытой форме, то есть без необходимости выражать его как оптимизатор функции. Однако он является оптимизатором функции - функции остаточной суммы квадратов - и может быть вычислен как таковой.
MLE в модели логистической регрессии также является оптимизатором надлежащим образом определенной логарифмической функции правдоподобия, но, поскольку она недоступна в выражении закрытой формы, она должна быть вычислена как оптимизатор.
Большинство статистических оценок могут быть выражены только как оптимизаторы правильно сконструированных функций данных, называемых критериальными функциями. Такие оптимизаторы требуют использования соответствующих алгоритмов численной оптимизации. Оптимизаторы функций могут быть вычислены в R с использованием
optim()
функции, которая предоставляет некоторые алгоритмы оптимизации общего назначения, или одного из более специализированных пакетов, таких какoptimx
. Знание того, какой алгоритм оптимизации использовать для различных типов моделей и статистических критериальных функций, является ключевым.Линейная регрессия остаточной суммы квадратов
Оценщик OLS определяется как оптимизатор известной функции остаточной суммы квадратов:
В случае дважды дифференцируемой выпуклой функции, такой как остаточная сумма квадратов, большинство оптимизаторов на основе градиента делают хорошую работу. В этом случае я буду использовать алгоритм BFGS.
Это дает:
Логистическая регрессия логарифмическая вероятность
Критериальной функцией, соответствующей MLE в модели логистической регрессии, является функция логарифмического правдоподобия.
Я покажу, как построить и оптимизировать функцию критерия, используя
optim()
функцию, снова используя алгоритм BFGS.Это дает
В качестве предостережения отметим, что алгоритмы численной оптимизации требуют осторожного использования, иначе вы можете получить всевозможные патологические решения. Пока вы их не понимаете, лучше всего использовать доступные пакетные опции, которые позволяют вам сконцентрироваться на определении модели, а не беспокоиться о том, как вычислить числовые оценки.
источник
-sum(vY%*%(mX%*%vBeta)-log(1+exp(mX%*%vBeta)))
Вы не можете добраться отсюда. Решения как общей линейной модели, так и логистической модели возникают из решения соответствующих уравнений максимального правдоподобия, но только линейная модель имеет решение в замкнутой форме.
Если вы обратитесь к книге МакКаллаха и Нелдера, вы сможете узнать, как получаются решения в логистическом случае (или другой обобщенной модели). По сути, решения создаются итеративно, где каждая итерация включает решение взвешенной линейной регрессии. Весовые коэффициенты частично зависят от функции связи.
источник