HOWTO · R

Usar el símbolo de tilde (~) en R

Aprenda qué significa el símbolo de tilde (~) en las fórmulas de R, cómo usarlo con lm() y cómo encontrar su documentación con help().

En esta página

En R, el operador de tilde (~) crea una fórmula. En una fórmula de modelo como y ~ x, el lado izquierdo nombra la respuesta que se va a modelar, y el lado derecho especifica el predictor. Léalo como «modelar y usando x». Crear la fórmula por sí solo no ajusta un modelo; una función como lm() la interpreta.

Cómo usar el operador de tilde en R

Escriba response ~ predictor1 + predictor2 para especificar una respuesta y dos predictores. En una fórmula de modelo, + agrega términos del modelo en lugar de sumar los valores de los predictores entre sí. Una fórmula también puede tener solo un lado derecho, como en ~ x; que esa forma sea adecuada depende de la función que la recibe.

Ajustar un modelo lineal

El siguiente ejemplo autónomo usa la función estándar lm() de R. Crea un marco de datos, ajusta un modelo e imprime sus 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

Aquí, y es la respuesta y x es el predictor. El argumento data le dice a lm() dónde buscar esas columnas. Por defecto, este modelo incluye una constante: coef(model) devuelve la constante y el coeficiente de x. En la recta ajustada, la constante representa la respuesta ajustada en x = 0, y el coeficiente de x representa el cambio en la respuesta ajustada ante un aumento de una unidad en x. Use summary(model) para solicitar el resumen estadístico más completo.

Para adaptar la fórmula, reemplace los nombres de las columnas y proporcione su propio marco de datos. Para varios predictores, use una fórmula como y ~ x1 + x2. Dentro de lm(), y ~ x1 * x2 incluye ambos predictores y su interacción, mientras que y ~ x - 1 elimina la constante. Estos son ejemplos de sintaxis, no ejemplos ejecutados. Revise la ortografía y asegúrese de que las columnas referenciadas existan en los datos proporcionados.

Construir una fórmula dinámicamente

Cuando los nombres de las variables se almacenan como cadenas, as.formula() puede convertir el texto de una fórmula en un objeto. Ejecute este ejemplo autónomo para construir e imprimir una fórmula a partir del nombre de respuesta "y" y los nombres de predictor "x1" y "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

El paste() interno une los nombres de los predictores con +, y la llamada externa coloca la respuesta antes de ~. La fórmula resultante especifica y usando ambos predictores. La mera construcción no ajusta un modelo ni estima coeficientes. Para ajustarlo, pase model_formula a lm() junto con un marco de datos que contenga las columnas nombradas; las columnas no son necesarias solo para construir la fórmula.

Consultar el operador

Use la función help() con el operador entre comillas: help("~"). Esto solicita la documentación de la tilde en R. Su presentación depende de su interfaz de R y de la configuración de ayuda; no requiere ninguna pestaña concreta del navegador de archivos de RStudio. Para la sintaxis de los términos del modelo, consulte también help("formula").

Conclusión

Use ~ para construir fórmulas y pasarlas a funciones que aceptan fórmulas. Para un modelo lineal, coloque la respuesta a la izquierda y los predictores a la derecha. Use help("~") para consultar el operador y help("formula") para las convenciones de las fórmulas de modelo.