HOWTO · R

Utiliser le symbole tilde (~) en R

Découvrez ce que signifie le symbole tilde (~) dans les formules R, comment l'utiliser avec lm(), et comment trouver sa documentation avec help().

Sur cette page

En R, l’opérateur tilde (~) crée une formule. Dans une formule de modèle telle que y ~ x, le côté gauche nomme la réponse à modéliser, et le côté droit spécifie le prédicteur. Lisez-la comme « modéliser y à l’aide de x ». Créer la formule à elle seule n’ajuste pas de modèle ; une fonction comme lm() l’interprète.

Comment utiliser l’opérateur tilde en R

Écrivez response ~ predictor1 + predictor2 pour spécifier une réponse et deux prédicteurs. Dans une formule de modèle, + ajoute des termes du modèle plutôt que d’additionner les valeurs des prédicteurs entre elles. Une formule peut aussi n’avoir qu’un côté droit, comme dans ~ x ; la pertinence de cette forme dépend de la fonction qui la reçoit.

Ajuster un modèle linéaire

L’exemple autonome suivant utilise la fonction standard lm() de R. Il crée un data frame, ajuste un modèle et affiche ses coefficients.

measurements <- data.frame(
    x = c(1, 2, 3, 4, 5),
    y = c(3, 5, 6, 9, 11)
)

model <- lm(y ~ x, data = measurements)
print(coef(model))
(Intercept)           x
        0.8         2.0

Ici, y est la réponse et x est le prédicteur. L’argument data indique à lm() où chercher ces colonnes. Par défaut, ce modèle inclut une constante : coef(model) renvoie la constante et le coefficient de x. Dans la droite ajustée, la constante représente la réponse ajustée en x = 0, et le coefficient de x représente la variation de la réponse ajustée pour une augmentation d’une unité de x. Utilisez summary(model) pour demander le résumé statistique plus complet.

Pour adapter la formule, remplacez les noms de colonnes et fournissez votre propre data frame. Pour plusieurs prédicteurs, utilisez une formule telle que y ~ x1 + x2. Dans lm(), y ~ x1 * x2 inclut les deux prédicteurs et leur interaction, tandis que y ~ x - 1 supprime la constante. Ce sont des illustrations de syntaxe, pas des exemples exécutés. Vérifiez l’orthographe et assurez-vous que les colonnes référencées existent dans les données fournies.

Construire une formule dynamiquement

Lorsque les noms de variables sont stockés sous forme de chaînes, as.formula() peut convertir le texte d’une formule en objet. Exécutez cet exemple autonome pour construire et afficher une formule à partir du nom de réponse "y" et des noms de prédicteurs "x1" et "x2" :

response <- "y"
predictors <- c("x1", "x2")
formula_text <- paste(response, "~", paste(predictors, collapse = " + "))
model_formula <- as.formula(formula_text)
print(model_formula)
y ~ x1 + x2

Le paste() interne joint les noms de prédicteurs avec +, et l’appel externe place la réponse avant ~. La formule obtenue spécifie y à l’aide des deux prédicteurs. La construction seule n’ajuste pas de modèle et n’estime pas de coefficients. Pour l’ajuster, passez model_formula à lm() avec un data frame contenant les colonnes nommées ; les colonnes ne sont pas nécessaires pour la seule construction de la formule.

Rechercher l’opérateur

Utilisez la fonction help() avec l’opérateur entre guillemets : help("~"). Cela demande la documentation du tilde de R. Sa présentation dépend de votre interface R et de vos réglages d’aide ; elle ne requiert aucun onglet particulier du navigateur de fichiers de RStudio. Pour la syntaxe des termes de modèle, consultez aussi help("formula").

Conclusion

Utilisez ~ pour construire des formules et les passer à des fonctions qui acceptent les formules. Pour un modèle linéaire, placez la réponse à gauche et les prédicteurs à droite. Utilisez help("~") pour rechercher l’opérateur et help("formula") pour les conventions des formules de modèle.