Dans une régression linéaire multiple, il est possible de trouver le coefficient avec la formule suivante.
beta = solve(t(X) %*% X) %*% (t(X) %*% Y) ; beta
Par exemple:
> 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
Je voudrais savoir comment calculer de la même manière "manuelle" la bêta pour une régression logistique. Où bien sûr, le y serait 1 ou 0. En supposant que j'utilise la famille binomiale avec un lien logit.
Réponses:
L'estimateur OLS dans le modèle de régression linéaire est assez rare pour avoir la propriété de pouvoir être représenté sous forme fermée, c'est-à-dire sans avoir besoin d'être exprimé comme l'optimiseur d'une fonction. Il s'agit cependant d'un optimiseur d'une fonction - la fonction de somme résiduelle des carrés - et peut être calculé comme tel.
Le MLE dans le modèle de régression logistique est également l'optimiseur d'une fonction de vraisemblance logarithmique convenablement définie, mais comme il n'est pas disponible dans une expression sous forme fermée, il doit être calculé en tant qu'optimiseur.
La plupart des estimateurs statistiques ne peuvent être exprimés que comme optimiseurs de fonctions des données correctement construites appelées fonctions critères. De tels optimiseurs nécessitent l'utilisation d'algorithmes d'optimisation numérique appropriés. Les optimiseurs de fonctions peuvent être calculés en R à l'aide de la
optim()
fonction qui fournit des algorithmes d'optimisation à usage général, ou l'un des packages les plus spécialisés tels queoptimx
. Il est essentiel de savoir quel algorithme d'optimisation utiliser pour différents types de modèles et de fonctions de critères statistiques.Somme résiduelle de régression linéaire des carrés
Dans le cas d'une fonction convexe deux fois différentiable comme la somme résiduelle des carrés, la plupart des optimiseurs basés sur un gradient font du bon travail. Dans ce cas, j'utiliserai l'algorithme BFGS.
Cela donne:
Log-vraisemblance de régression logistique
La fonction critère correspondant au MLE dans le modèle de régression logistique est la fonction log-vraisemblance.
Je montre comment construire et optimiser la fonction critère en utilisant
optim()
à nouveau la fonction en utilisant l'algorithme BFGS.Cela donne
À titre de mise en garde, notez que les algorithmes d'optimisation numérique nécessitent une utilisation prudente ou vous pouvez vous retrouver avec toutes sortes de solutions pathologiques. Jusqu'à ce que vous les compreniez bien, il est préférable d'utiliser les options packagées disponibles qui vous permettent de vous concentrer sur la spécification du modèle plutôt que de vous soucier de la façon de calculer numériquement les estimations.
la source
-sum(vY%*%(mX%*%vBeta)-log(1+exp(mX%*%vBeta)))
Vous ne pouvez pas y arriver à partir d'ici. Les solutions au modèle linéaire général et au modèle logistique résultent de la résolution des équations maximales de vraisemblance respectives, mais seul le modèle linéaire a une solution de forme fermée.
Si vous consultez le livre de McCullagh et Nelder, vous pouvez apprendre comment les solutions sont obtenues dans le cas logistique (ou tout autre modèle généralisé). En effet, les solutions sont produites de manière itérative, où chaque itération implique la résolution d'une régression linéaire pondérée. Les poids dépendent en partie de la fonction de liaison.
la source