Я читал код , используемый R для соответствия обобщенной линейной модели (GLM), поскольку исходный код R находится в свободном доступе.Используемый алгоритм называется итеративно переоцененными наименьшими квадратами (IRLS), что является довольно документированным алгоритмом.Для каждой итерации существует вызов функции Fortran для решения проблемы взвешенных наименьших квадратов.
С точки зрения конечного пользователя, например, для логистической регрессии, вызов в R выглядит так:
y <- rbinom(100, 1, 0.5)
x <- rnorm(100)
glm(y~x, family=binomial)$coefficients
И если вы не хотите использовать перехват , любой из этих вызовов в порядке:
glm(y~x-1, family=binomial)$coefficients
glm(y~x+0, family=binomial)$coefficients
Однако мне не удается понять, как формула , то есть y~x
или y~x-1
, имеет смысл в коде и понимается, использовать ли перехват или нет.Я искал часть кода, где столбец единиц был бы связан с x
, но, похоже, его нет.
Спасибо.
PS: Насколько я знаючитай, логический перехват, который появляется в функции с именем glm.fit
, не совпадает с перехватом, о котором я говорю.И то же самое для смещения .
Документация о glm
и glm.fit
здесь здесь .