HOWTO · R
Usare il simbolo tilde (~) in R
Scopri cosa significa il simbolo tilde (~) nelle formule di R, come usarlo con lm() e come trovare la sua documentazione con help().
In questa pagina
In R, l’operatore tilde (~) crea una formula. In una formula di modello come y ~ x, il lato sinistro nomina la risposta da modellare, e il lato destro specifica il predittore. Leggila come «modellare y usando x». Creare la formula da sola non adatta un modello; una funzione come lm() la interpreta.
Come usare l’operatore tilde in R
Scrivi response ~ predictor1 + predictor2 per specificare una risposta e due predittori. In una formula di modello, + aggiunge termini del modello invece di sommare tra loro i valori dei predittori. Una formula può anche avere solo un lato destro, come in ~ x; se questa forma sia appropriata dipende dalla funzione che la riceve.
Adattare un modello lineare
Il seguente esempio autonomo usa la funzione standard lm() di R. Crea un data frame, adatta un modello e stampa i suoi coefficienti.
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
Qui, y è la risposta e x è il predittore. L’argomento data dice a lm() dove cercare quelle colonne. Per impostazione predefinita, questo modello include un’intercetta: coef(model) restituisce l’intercetta e il coefficiente di x. Nella retta adattata, l’intercetta rappresenta la risposta adattata in x = 0, e il coefficiente di x rappresenta la variazione della risposta adattata per un aumento di una unità di x. Usa summary(model) per richiedere il riepilogo statistico più completo.
Per adattare la formula, sostituisci i nomi delle colonne e fornisci il tuo data frame. Per più predittori, usa una formula come y ~ x1 + x2. All’interno di lm(), y ~ x1 * x2 include entrambi i predittori e la loro interazione, mentre y ~ x - 1 rimuove l’intercetta. Questi sono esempi di sintassi, non esempi eseguiti. Controlla l’ortografia e assicurati che le colonne referenziate esistano nei dati forniti.
Costruire una formula in modo dinamico
Quando i nomi delle variabili sono memorizzati come stringhe, as.formula() può convertire il testo di una formula in un oggetto. Esegui questo esempio autonomo per costruire e stampare una formula a partire dal nome di risposta "y" e dai nomi di predittore "x1" e "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
Il paste() interno unisce i nomi dei predittori con +, e la chiamata esterna posiziona la risposta prima di ~. La formula risultante specifica y usando entrambi i predittori. La sola costruzione non adatta un modello né stima coefficienti. Per adattarla, passa model_formula a lm() insieme a un data frame contenente le colonne nominate; le colonne non servono solo per costruire la formula.
Cercare l’operatore
Usa la funzione help() con l’operatore tra virgolette: help("~"). Questo richiede la documentazione sulla tilde di R. La sua presentazione dipende dalla tua interfaccia R e dalle impostazioni della guida; non richiede una particolare scheda del browser di file di RStudio. Per la sintassi dei termini del modello, consulta anche help("formula").
Conclusione
Usa ~ per costruire formule e passarle a funzioni che accettano formule. Per un modello lineare, posiziona la risposta a sinistra e i predittori a destra. Usa help("~") per cercare l’operatore e help("formula") per le convenzioni delle formule di modello.