Dicas de R

equatiomatic: transformando modelos em equações LaTeX

By 10 de fevereiro de 2021 No Comments

Quem trabalha com modelagem costuma ter que escrever equações de forma bastante rotineira. Para exercícios simples, é bastante tranquilo escrever uma ou outra equação em \LaTeX. O problema é quando você tem muitas equações no mesmo documento. Nessa Dicas de R - disponível toda quarta-feira aqui no blog da AM -vamos divulgar um novo pacote, o equatiomatic, que trata justamente desse problema.

library(equatiomatic)
library(palmerpenguins)
library(ggplot2)
library(latex2exp)

Usei a própria documentação do pacote para exemplificar o seu uso. Primeiro, rodamos um lm qualquer como o abaixo.


m <- lm(bill_length_mm ~ bill_depth_mm + flipper_length_mm, penguins)

Agora, basta usar a função extract_eq para que tenhamos acesso à equação.


extract_eq(m)

(1)   \begin{equation*} \operatorname{body\_mass\_g} = \alpha + \beta_{1}(\operatorname{bill\_length\_mm}) + \epsilon \end{equation*}

A equação extract_eq contém, inclusive, alguns argumentos que permitem a customização da equação a ser exibida. Para além disso, outra coisa legal do pacote é poder plotar gráficos com equações, como abaixo.


# Fit an lm model
m <- lm(body_mass_g ~ bill_length_mm, penguins)
# extract equation with `ital_vars = TRUE` to avoid the use of `\operatorname`
m_eq <- extract_eq(m, use_coef = TRUE, ital_vars = TRUE)
# swap escaped underscores for dashes
prep_eq <- gsub("\\\\_", "-", m_eq)
# swap display-style 
prep_eq <- paste("$", as.character(prep_eq), "$", sep = "")
# Plot
ggplot(penguins, aes(x = bill_length_mm, y = body_mass_g)) +
geom_point() +
geom_smooth(method = "lm") +
labs(title = "Relation between bill length and body mass",
subtitle = TeX(prep_eq))

____________

Um pdf e um script com todo o código desse exercício está disponível para os membros do Clube AM.

 

Cadastre-se em nossa Lista VIP para receber conteúdos exclusivos!

Fazer Inscrição
{"cart_token":"","hash":"","cart_data":""}