J'utilise la bibliothèque rms pour effectuer une régression logistique régularisée, et je souhaite forcer l'interception à zéro. Je suis en utilisant ce qui suit et pour simuler la régression:R Supprimer les interceptions dans la régression logistique
library(rms)
N = 100
pred <- vapply(1:12, function(i) rnorm(N, mean = 0, sd =1), numeric(N))
resp <- 20*pred[, 1] - 3*pred[, 7] - 2*pred[, 8] + matrix(rnorm(N, sd = 0.1)) + 20
pr <- 1/(1 + exp(-resp))
y <- rbinom(N, 1, pr)
lrm(y ~ pred, penalty = 1)
Le poste de How to remove intercept in R suggère d'inclure « 0 + » ou « - 1 » dans la formule du modèle. Cependant, cela ne semble pas fonctionner pour lrm.
devez-vous utiliser la bibliothèque 'rms'? –
Non. Je connais trois bibliothèques possibles, 'glmnet',' LiblinearC', et 'rms'; si vous en connaissez d'autres, cela ne me dérangerait pas d'en apprendre plus. J'ai trouvé que 'LiblinearC' fonctionnait plus longtemps et donnait des résultats plus étranges que' rms'; Je suis en train de tester 'glmnet' en ce moment. – TreeStump
Je pense que glmnet est maintenant l'état de l'art. –