J'ai lu le code utilisé par R pour adapter un modèle linéaire généralisé (GLM), puisque le code source de R est disponible gratuitement. L'algorithme utilisé est appelé itérativement repondéré moindres carrés (IRLS), qui est un algorithme assez documenté. Pour chaque itération, il existe un appel à une fonction Fortran pour résoudre le problème des moindres carrés pondérés.Comment l'interception est-elle calculée dans le GLM?
Du point de vue de l'utilisateur final, pour une régression logistique par exemple, un appel en R ressemble à ceci:
y <- rbinom(100, 1, 0.5)
x <- rnorm(100)
glm(y~x, family=binomial)$coefficients
Et si vous ne voulez pas utiliser une interception, l'une de ces appels est correct:
glm(y~x-1, family=binomial)$coefficients
glm(y~x+0, family=binomial)$coefficients
Cependant, je ne parviens pas à comprendre comment la formule , à savoir y~x
ou y~x-1
, fait sens dans le code et étant compris comme pour utiliser ou non une interception. Je cherchais une partie du code où une colonne d'un serait liée à x
, mais il semble qu'il n'y en ait aucune.
Merci. PS: Autant que j'ai lu, l'interception booléenne qui apparaît dans la fonction appelée glm.fit
n'est pas la même que l'intercept dont je parle. Et il en est de même pour le offset. La documentation sur glm
et glm.fit
est here.
est le dernier paragraphe de cette réponse réellement correct? 'glm.fit' prend une matrice de modèle' x' qui est exactement la même que dans 'lm.fit' ... –
Cela fait quelques années que je n'ai pas répondu à cette question, mais il me semble me souvenir d'avoir cherché dans le code. Je pourrais bien sûr me tromper sur n'importe quel aspect de celui-ci ... –