Capítulo 6 Computação estatística
6.1 Programas de computador
6.1.1 O que é R?
R é um programa de computador de código aberto com linguagem computacional direcionada para análise estatística.40,41
R version 4.4.2 (2024-10-31) está disponível gratuitamente em Comprehensive R Archive Network (CRAN).42
6.1.2 Por que usar R?
- R é o software de maior abrangência de métodos estatísticos, possui sintaxe que permite análises estatísticas reproduzíveis e está disponível gratuitamente no Comprehensive R Archive Network (CRAN).22,42
6.1.3 O que é RStudio?
RStudio é um ambiente de desenvolvimento integrado (integrated development environment, IDE) desenvolvido visando a reprodutibilidade e a simplicidade para a criação e disseminação de conhecimento.41,43
O ambiente do RStudio é dividido em paineis:

Figura 6.1: Interface do RStudio. Fonte: https://docs.posit.co/ide/user/
As principais características do RStudio incluem um ambiente de edição com abas para acesso rápido a arquivos, comandos e resultados; histórico de comandos previamente utilizados; ferramentas para visualização de bancos de dados e elaboração de scripts e gráficos e tabelas.41,43
RStudio está disponível gratuitamente em Posit.
O pacote learnr44 fornece tutoriais interativos para RStudio.
6.2 Scripts computacionais
6.2.1 O que são R scripts?
“Scripts são dados”.49
Scripts permitem ao usuário se concentrar nas tarefas mais importantes da computação e utilizar pacotes ou bibliotecas para executar as funções mais básicas com maior eficiência.49
Um script é um arquivo de texto contendo (quase) os mesmos comandos que você digitaria na linha de comando do R. O “quase” refere-se ao fato de que se você estiver usando sink() para enviar a saída para um arquivo, você terá que incluir alguns comandos em print() para obter a mesma saída da linha de comando.
6.3 Pacotes
6.3.1 O que são pacotes?
Pacotes são conjuntos de scripts programados pela comunidade e compartilhados para uso público.41
Os pacotes ficam armazenados no Comprehensive R Archive Network (CRAN) e podem ser instalados diretamente no RStudio.41,42
Na mais recente atualização deste livro, o [Comprehensive R Archive Network (CRAN) possui 374629 pacotes disponíveis.41,42
Os pacotes disponíveis podem ser encontrados em R PACKAGES DOCUMENTATION.50
O pacote utils51 fornece a função install.packages para instalar os pacotes no computador.
O pacote utils51 fornece a função installed.packages para listar os pacotes instalados no computador.
O pacote utils51 fornece a função update.packages para atualizar os pacotes instalados no computador.
6.3.2 Quais práticas são recomendadas na redação de scripts?
Use nomes consistentes para as variáveis.52
Defina os tipos de variáveis adequadamente no banco de dados.52
Defina constantes - isto é, variáveis de valor fixo - ao invés de digitar valores.52
Use e cite os pacotes disponíveis para suas análises.52
Teste o script antes de sua utilização.52
Conduza revisão por pares do código durante a redação (digitação em dupla).52
O pacote formatR54 fornece a função tidy_source para formatar um R script.
O pacote styler55 fornece a função style_file para formatar um R script.
O pacote lintr56 fornece a função lint para verificar a adesão de um script a um determinado estilo, identificando erros de sintaxe e possíveis problemas semânticos.
6.4 Manuscritos reproduzíveis
6.4.1 O que são manuscritos reproduzíveis?
- Manuscritos reproduzíveis - manuscritos executáveis ou relatórios dinâmicos - permitem a produção de um manuscrito completo a partir da integração do banco de dados da(s) amostra(s), do(s) script(s) de análise estatística (incluindo comentários para sua interpretação), dos pacotes ou bibliotecas utilizados, das fontes e referências bibliográficas citadas, além dos demais elementos textuais (tabelas, gráficos) - todos gerados dinamicamente.49
6.4.2 Por que usar manuscritos reproduzíveis?
No processo tradicional de redação científica há muitas etapas de copiar e colar não reproduzíveis envolvidas. Documentos dinâmicos combinam uma ferramenta de processamento de texto com o R script que produz o texto/tabela/figura a ser incorporado no manuscrito.22
Ao trabalhar com relatórios dinâmicos, é possível extrair o mesmo script usado para análise estatística. Os documentos podem ser compilados em vários formatos de saída e salvos como DOCX, PPTX e PDF.22
Muitos erros de análise poderiam ser evitados com a adoção de boas práticas de programação em manuscritos reproduzíveis.57
O pacote rmarkdown58 fornece as funções render para criar manuscritos reprodutíveis a partir de arquivos .Rmd.
O pacote officedown59 fornece as funções rdocx_document e rpptx_document para criar arquivos DOCX e PPTX, respectivamente, com o conteúdo criado no manuscrito reprodutível.
O pacote bookdown60 fornece as funções gitbook, pdf_book, epub_book e html_document2 para criar documentos reprodutíveis em diversos formatos (Git, PDF, EPUB e HTML, respectivamente).
6.4.3 O que é RMarkdown?
RMarkdown58 é uma ferramenta que permite a integração de texto, código e saída em um único documento. O RMarkdown é uma extensão do Markdown, que é uma linguagem de marcação simples e fácil de aprender, que é usada para formatar texto. O RMarkdown permite a inclusão de blocos de código R, Python, SQL, C++, entre outros, e a saída desses blocos de código é incorporada ao documento final. O RMarkdown é uma ferramenta poderosa para a criação de relatórios dinâmicos, que podem ser facilmente atualizados com novos dados ou análises. O RMarkdown é amplamente utilizado na comunidade científica para a criação de relatórios de pesquisa, artigos científicos, apresentações, livros, entre outros.
O trabalho com RMarkdown58 permite um fluxo de dados totalmente transparente, desde o conjunto de dados coletados até o manuscrito finalizado. Todos os aspectos do fluxo de dados podem ser incorporados em blocos de R script (chunk), exibindo tanto o R script quando o respectivo texto, tabelas e figuras formatadas no estilo científico de interesse.61
O RMarkdown58 foi projetado especificamente para relatórios dinâmicos onde a análise é realizada em R e oferece uma flexibilidade incrível por meio de uma linguagem de marcação.22
6.4.4 Como manuscritos reprodutíveis contribuem para a ciência?
- O compartilhamento de bancos de dados e seus scripts de análise estatística permitem a adoção de práticas reprodutíveis, tais como a reanálise dos dados.62
O pacote projects63 fornece a função setup_projects para criar um projeto com arquivos organizados em diretórios.
6.4.5 Como contribuir para a reprodutibilidade?
Disponibilize publicamente os bancos de dados, respeitando as considerações éticas vigentes (ex.: autorização dos participantes e do Comitê de Ética em Pesquisa) e internacionalmente.22
Produza manuscritos reprodutíveis - manuscritos executáveis ou relatórios dinâmicos - que permitem a integração do banco de dados da(s) amostra(s), do(s) script(s) de análise estatística (incluindo comentários para sua interpretação), dos pacotes ou bibliotecas utilizados, das fontes e referências bibliográficas citadas, além dos demais elementos textuais (tabelas, gráficos) - todos gerados dinamicamente.49
O pacote rmarkdown58 fornece a função render para criar manuscritos reprodutíveis a partir de arquivos .Rmd.
O pacote bookdown60 fornece as funções gitbook, pdf_book, epub_book e html_document2 para criar documentos reprodutíveis em diversos formatos (Git, PDF, EPUB e HTML, respectivamente).
6.5 Compartilhamento
6.5.1 Por que compartilhar scripts?
- Compartilhar o script — principalmente junto aos dados — pode facilitar a replicação direta do estudo, a detecção de eventuais erros de análise, a detecção de pesquisas fraudulentas.64
6.5.2 O que pode ser compartilhado?
Idealmente, todos os scripts, pacotes/bibliotecas e dados necessários para outros reproduzirem seus dados.53
Minimamente, partes importantes incluindo implementações de novos algoritmos e dados que permitam reproduzir um resultado importante.53
6.5.4 Como preparar scripts para compartilhamento?
Providencie a documentação sobre seu script (ex.: arquivo README).53
Inclua a versão dos pacotes usados no seu script por meio de um script inicial para instalação de pacotes (ex.: ‘instalar.R’).57
Documente em um arquivo README os arquivos disponíveis e os pré-requisitos necessários para executar o código (ex.: pacotes e respectivas versões). Uma lista de configurações (hardware e software) que foram usadas para rodar o código pode ajudar na reprodução dos resultados.21
Use endereços de arquivos relativos.57
Crie links persistentes para versões do seu script.53
Defina uma semente para o gerador de números aleatórios em scripts com métodos computacionais que dependem da geração de números pseudoaleatórios.21
O pacote base65 fornece a função set.seed para especificar uma semente para reprodutibilidade de computações que envolvem números aleatórios.
Escolha uma licença apropriada para garantir os direitos de criação e como outros poderão usar seus scripts.53
Teste o script em uma nova sessão antes de compartilhar.57
Cite todos os pacotes relacionados à sua análise.66
O pacote grateful67 fornece a função cite_packages para citar os pacotes utilizados em um projeto R.
- Inclua a informação da sessão em que os scripts foram rodados.57
O pacote utils51 fornece a função sessionInfo para descrever as características do programa, pacotes e plataforma da sessão atual.
6.5.5 O que incluir no arquivo README?
Título do trabalho.21
Autores do trabalho.21
Principais responsáveis pela escrita do script e quaisquer outras pessoas que fizeram contribuições substanciais para o desenvolvimento do script.21
Endereço de e-mail do autor ou contribuidor a quem devem ser direcionadas dúvidas, comentários, sugestões e bugs sobre o script.21
Lista de configurações nas quais o script foi testado, tais com nome e versão do programa, pacotes e plataforma.21