Capítulo 14 - Apêndice

Vamos listar aqui os pacotes do R que eu mais utilizo e as principais funções.

14.1 Importação

Para ler arquivos em csv ou formato tabular, prefiro a função fread do data.table.

Para ler arquivos de outrossoftwares, como stata ou SPSS, vejam as funções do pacote haven.

Para arquivos em formato xls ou xlsx, do Excel, uso a função read_excel do pacote readxl.

14.2 Gráficos e Tabelas

Para visualização, uso o ggplot e pacotes que dialogam com o ggplot2. A única exceção é para plotar o gráfico da logística, que usei o R base e a função curve.

Para gerar tabelas em Rmarkdown, uso quatro funções (deveria ser mais consistente e usar só uma ou duas), kable do knitr, gt do pacote de mesmo nome, stargazer, também do pacote de mesmo nome e a função etable do pacote fixest, quando rodo regressões desse pacote.

14.3 Limpeza de dados

Para limpeza de dados, além do tidyverse e tidyr, uso o pacote janitor (particularmente a função clean_names) e o pacote lubridate para trabalhar com datas. Com relação a textos, o pacote stringr.

14.4 Modelagem de dados

Para regressões limpes, uso o R base e suas funções lm e glm. Para dados em painel, prefiro o pacote fixest e suas funções, como a feols, que evita de eu ter de chamar o pacote sandwich para erro padrão robusto. O fixest é melhor que o mais tradicional e antigo pacote plm, que era mais usado para dados em painel antigamente. Para modelos Bayesianos, vario entre rstanarm e brms.

14.5 Outros

Checagem do modelo, o pacote performance. Para testes informais de permutação, o pacote nullabor. Para instalação de pacotes direto do gihutb, devtools. Para ajudar na reproducibilidade, uso o pacote here para não vincular aos meus diretórios específicos e evito usar osetwd para apontar o diretório.

14.6 Álgebra Linear

Aqui apresentamos alguns tópicos de álgebra linear que podem ser úteis.

14.6.1 Espaço de vetores e subspaço

O espaço vetorial de dimensão \(n\) é o conjunto infinito de todos os vetores \(x = [x_1, x_2, \cdots, x_n]\), e as coordenadas \(x-i\) podem ser quaisquer números reais.

Dizemos que um subespaço do espaço vetorial \(n\)-dimensional que é gerado por um conjunto de \(k\) vetores \(x = [x_1, x_2, \cdots, x_k]\), em que \(k\) pode ser eventualmente igual a \(n\) (ou menor), é o subconjunto de vetores \(y\) naquele espaço que pode ser expresso como uma combinação linear do conjunto gerador:

\(y = a_1x_1 + a_2x_2 + \cdots + a_kx_k\)

Dizemos que o conjunto de vetores \(x = [x_1, x_2, \cdots, x_k]\) gera o subespaço que ele define.

14.6.2 Projeção linear

14.6.3 2. Load Required Libraries

You’ll need the ggplot2 library for the visualization. Add this to your setup chunk:

# Load necessary library
library(ggplot2)

# Define vectors u and v
u <- c(3, 2)
v <- c(4, 0)

# Calculate the projection of u onto v
proj_v_u <- (sum(u * v) / sum(v * v)) * v

# Create a data frame for plotting
data <- data.frame(
  x = c(0, u[1], 0, v[1], 0, proj_v_u[1]),
  y = c(0, u[2], 0, v[2], 0, proj_v_u[2]),
  label = c("Origin", "u", "Origin", "v", "Origin", "Projection")
)

# Create the plot
ggplot(data) +
  geom_segment(aes(x = x[1], y = y[1], xend = x[2], yend = y[2]), arrow = arrow(length = unit(0.3, "cm")), color = "blue", size = 1.2) +
  geom_segment(aes(x = x[3], y = y[3], xend = x[4], yend = y[4]), arrow = arrow(length = unit(0.3, "cm")), color = "red", size = 1.2) +
  geom_segment(aes(x = x[5], y = y[5], xend = x[6], yend = y[6]), linetype = "dashed", color = "green", size = 1.2) +
  annotate("text", x = u[1] + 0.5, y = u[2], label = "u", color = "blue") +
  annotate("text", x = v[1] + 0.5, y = v[2], label = "v", color = "red") +
  annotate("text", x = proj_v_u[1] + 0.5, y = proj_v_u[2], label = "proj_v_u", color = "green") +
  xlim(0, max(u[1], v[1], proj_v_u[1]) + 1) +
  ylim(0, max(u[2], v[2], proj_v_u[2]) + 1) +
  theme_minimal() +
  labs(title = "Projection of Vector u onto Vector v",
       x = "X-axis",
       y = "Y-axis")

The plot above shows the vectors \(\mathbf{u}\) (in blue) and \(\mathbf{v}\) (in red), along with the projection of \(\mathbf{u}\) onto \(\mathbf{v}\) (in green, dashed line). The projection is the closest point on the line defined by \(\mathbf{v}\) to the point represented by \(\mathbf{u}\). This visualization helps in understanding how projections work in a geometric sense.