J'essaie d'utiliser R caret pour effectuer une validation croisée de mes modèles de régression linéaire. Dans certains cas, je veux forcer l'interception à 0. J'ai essayé ce qui suit, en utilisant la syntaxe standard lm:En utilisant la régression linéaire (lm) dans R caret, comment forcer l'ordonnée à 0?
regressControl <- trainControl(method="repeatedcv",
number = 4,
repeats = 5
)
regress <- train(y ~ 0 + x,
data = myData,
method = "lm",
trControl = regressControl)
Call:
lm(formula = .outcome ~ ., data = dat)
Coefficients:
(Intercept) x
-0.0009585 0.0033794 `
Cette syntaxe semble fonctionner avec la fonction standard « lm », mais pas dans le paquet caret. Aucune suggestion?
test <- lm(y ~ 0 + x,
data = myData)
Call:
lm(formula = y ~ 0 + x, data = myData)
Coefficients:
x
0.003079
Je crois que vous voulez que la formule 'y ~ -1 + x' exclue explicitement l'interception. – aichao
@aichao Les deux fonctionnent dans la plupart des fonctions, mais l'implémentation de 'caret' rend difficile l'édition du code source. – Chrisss
@Chrisss: merci! bon à savoir. – aichao