Trabalho de Conclusão de Curso
Defesa: data
📖 Ler TCC (versão digital) · 🐛 Bug · 🚀 Feature
-
Modelagem e simulação
rgamer: implementação dos modelos Experience-Weighted Attraction (EWA), Reinforcement Learning (RL) e Belief-based Learning (BL)
-
Manipulação de dados
dplyr,tidyr,purrr,tibble
-
Visualização
ggplot2,patchwork,scales
-
Aplicação interativa
- Shiny: interface para exploração das simulações
-
Documentação
- Quarto: versão digital do TCC
-
Reprodutibilidade
renv
Além disso, o projeto utiliza GitHub Actions para rodar testes leves que verificam funções centrais com base em dados simulados, o que garante a consistência dos resultados sem depender da execução completa das simulações.
Este repositório concentra o código-fonte do meu TCC sobre dinâmicas de aprendizado em cenários de incerteza de mercado. Investigo três algoritmos de aprendizagem em jogos 2×2, EWA, RL e BL, e comparo a trajetória dos agentes com os equilíbrios teóricos. O foco recai sobre dois ambientes clássicos: Buyer–Seller Game (BSG) e Market Entry Game (MEG).
Compatibilidade:
Este projeto foi desenvolvido em R 4.3.2 e também testado em R 4.5.1.
Para reprodutibilidade completa, recomenda-se restaurar o ambiente comrenv::restore()antes de executar os scripts.
-
Modelos em forma normal para BSG e MEG, implementados com
rgamer, incluindo definição de jogadores, estratégias e payoffs. - Simulador baseado em agentes com execução de rodadas sob EWA, RL e BL, controle de parâmetros e de horizontes (amostras e períodos). A metodologia descreve as equações do EWA e seus casos especiais (RL e BL), além da implementação em R.
-
Exploração interativa via Shiny para ajustar
$\lambda$ (sensibilidade à atração) e observar a evolução das proporções de escolha por estratégia e por jogador ao longo do tempo. - Geração de tabelas e figuras (métricas descritivas, distribuições, correlações e matrizes de jogo) prontas para exportação em PDF, PNG e LaTeX.
As matrizes de BSG e MEG são definidas via rgamer::normal_form, com payoffs especificados por funções (BSG) ou vetores (MEG). A infraestrutura de simulação cria amostras e períodos, agrega os resultados e produz visualizações por jogador e estratégia.
Os parâmetros do EWA seguem faixas e relações comuns na literatura (por exemplo,
Abaixo vai um guia direto para reproduzir as simulações, figuras e tabelas (e para rodar o app Shiny localmente).
- R ≥ 4.3
- (Opcional) RStudio/Positron
- Sistema:
- Windows: instale o Rtools correspondente à versão do R.
- Linux: garanta as libs de gráficos para PDF (ex.:
libcairo2,libharfbuzz,libfribidi). - macOS: Xcode Command Line Tools já resolve o essencial.
Se o
cairo_pdfnão estiver disponível no seu sistema, troquedevice = cairo_pdfpordevice = "pdf"nas chamadasggsave(...)ou instale as libs de Cairo.
git clone https://github.com/drewmelo/EWA-MarketDynamics.git
cd EWA-MarketDynamicsEste projeto usa renv para congelar as versões dos pacotes de R e permitir que qualquer pessoa recrie exatamente o mesmo ambiente.
# dentro do R
install.packages("renv") # só na 1ª vez
renv::restore() # recria o MESMO ambiente do projeto
targets::tar_make() # roda o pipeline (executa main.R e gera saídas)O targets detecta automaticamente o que precisa ser atualizado e garante a execução reprodutível de todas as etapas. Além disso, o comando executa o pipeline descrito em _targets.R, que por sua vez roda o script principal e gera todos os arquivos de saída (PDFs, PNGs e TEX) automaticamente.
O projeto também inclui um painel interativo em Shiny desenvolvido com o tema bslib e elementos visuais otimizados para análise de aprendizado em jogos.
Para quem é:
O painel foi pensado para usuários low-code, que desejam realizar as simulações e gerar todos os resultados do TCC automaticamente, sem precisar escrever código em R.
Ele permite:
- Escolher parâmetros de simulação (
$\lambda$ , número de amostras e períodos); - Visualizar em tempo real a evolução das estratégias nos jogos BSG e MEG;
- Alternar entre os modelos de aprendizado (EWA, Reinforcement Learning, Belief-based Learning);
- Baixar simulações completas e resultados agregados em formato CSV;
- Gerar automaticamente as mesmas tabelas e figuras utilizadas no TCC.
EWA Market Dynamics Dashboard: ambiente interativo para simulação e análise
Dica:
Ao clicar em “Baixar Simulação”, o painel executa o mesmo pipeline automatizado usado no projeto (targets::tar_make()), exportando os resultados diretamente, sem necessidade de rodar scripts manualmente.
Caso queira executar o web app:
shiny::runApp("app") # ou source("app/app.R")Assim, qualquer pessoa pode restaurar o mesmo ambiente e reproduzir integralmente todas as análises e resultados do TCC com apenas dois comandos (renv::restore() e targets::tar_make()) ou via shiny::runApp()
