HOWTO · R
Usar o símbolo til (~) em R
Saiba o que significa o símbolo til (~) nas fórmulas do R, como usá-lo com lm() e como encontrar a sua documentação com help().
Nesta página
Em R, o operador til (~) cria uma fórmula. Numa fórmula de modelo como y ~ x, o lado esquerdo nomeia a resposta a modelar, e o lado direito especifica o preditor. Leia-a como “modelar y usando x”. Criar a fórmula por si só não ajusta um modelo; uma função como lm() interpreta-a.
Como usar o operador til em R
Escreva response ~ predictor1 + predictor2 para especificar uma resposta e dois preditores. Numa fórmula de modelo, + adiciona termos do modelo em vez de somar os valores dos preditores entre si. Uma fórmula também pode ter apenas um lado direito, como em ~ x; se essa forma é adequada depende da função que a recebe.
Ajustar um modelo linear
O exemplo autónomo seguinte usa a função padrão lm() do R. Cria um data frame, ajusta um modelo e imprime os seus coeficientes.
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
Aqui, y é a resposta e x é o preditor. O argumento data diz a lm() onde procurar essas colunas. Por omissão, este modelo inclui uma constante: coef(model) devolve a constante e o coeficiente de x. Na reta ajustada, a constante representa a resposta ajustada em x = 0, e o coeficiente de x representa a variação da resposta ajustada para um aumento de uma unidade em x. Use summary(model) para solicitar o resumo estatístico mais completo.
Para adaptar a fórmula, substitua os nomes das colunas e forneça o seu próprio data frame. Para vários preditores, use uma fórmula como y ~ x1 + x2. Dentro de lm(), y ~ x1 * x2 inclui ambos os preditores e a sua interação, enquanto y ~ x - 1 remove a constante. Estes são exemplos de sintaxe, não exemplos executados. Verifique a ortografia e certifique-se de que as colunas referenciadas existem nos dados fornecidos.
Construir uma fórmula dinamicamente
Quando os nomes das variáveis estão armazenados como strings, as.formula() pode converter o texto de uma fórmula num objeto. Execute este exemplo autónomo para construir e imprimir uma fórmula a partir do nome de resposta "y" e dos nomes de preditores "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
O paste() interno une os nomes dos preditores com +, e a chamada externa coloca a resposta antes de ~. A fórmula resultante especifica y usando ambos os preditores. A mera construção não ajusta um modelo nem estima coeficientes. Para a ajustar, passe model_formula a lm() juntamente com um data frame que contenha as colunas nomeadas; as colunas não são necessárias apenas para construir a fórmula.
Consultar o operador
Use a função help() com o operador entre aspas: help("~"). Isto solicita a documentação do til do R. A sua apresentação depende da sua interface do R e das definições de ajuda; não requer nenhum separador específico do navegador de ficheiros do RStudio. Para a sintaxe dos termos do modelo, consulte também help("formula").
Conclusão
Use ~ para construir fórmulas e passá-las a funções que aceitam fórmulas. Para um modelo linear, coloque a resposta à esquerda e os preditores à direita. Use help("~") para consultar o operador e help("formula") para as convenções das fórmulas de modelo.