Aula 08 · Introdução à Linguagem R
PPG em Ecologia e Conservação · UFMS
Se eu repetir o seu experimento
exatamente como você descreveu,
chegarei aos mesmos resultados?
Ioannidis, J.P.A. (2005). Why Most Published Research Findings Are False. PLoS Medicine 2(8): e124. doi:10.1371/journal.pmed.0020124
“Simulations show that for most study designs and settings, it is more likely for a research claim to be false than true.”
O argumento não é sobre fraude. É sobre poder estatístico, viés e o número de hipóteses testadas num campo.
Baker, M. (2016). 1,500 scientists lift the lid on reproducibility. Nature 533: 452–454. doi:10.1038/533452a
Mesma pessoa, mesmo código, mesmos dados, mesma máquina.

Outra pessoa, mesmo código, mesmos dados.

Outra pessoa, mesmo método, dados novos — as conclusões se sustentam?


Ilustrações de Candace Savonen — Advanced Reproducibility in Cancer Informatics, JHU Data Science Lab · CC BY 4.0. A pirâmide é baseada em figura de Essawy et al. (2020), doi:10.1016/j.envsoft.2020.104753
Resumindo o que acabamos de ver:
| Termo | Dados | Método | Pergunta |
|---|---|---|---|
| Repetível | os mesmos | o mesmo | mesma pessoa repete |
| Reprodutível | os mesmos | o mesmo | outra pessoa repete |
| Replicável | novos | o mesmo | o resultado se sustenta? |
| Generalizável | novos | novo contexto | vale além daqui? |
Adaptado de Advanced Reproducibility in Cancer Informatics, JHU Data Science Lab · CC BY
Esta aula trata da primeira. Sem ela, a segunda nem chega a ser testável.
Só a última é fraude. As outras quatro a gente comete sem perceber.
p < 0,05 não é selo de verdadeWasserstein, R.L. & Lazar, N.A. (2016). The ASA Statement on p-Values: Context, Process, and Purpose. The American Statistician 70(2): 129–133. doi:10.1080/00031305.2016.1154108

Csada, R.D.; James, P.C.; Espie, R.H.M. (1996). The “file drawer problem” of non-significant results: does it apply to biological research? Oikos 76: 591–593. doi:10.2307/3546355
Bauchau, V. (1997). Is there a “file drawer problem” in biological research? Oikos 79: 407–409. doi:10.2307/3546025 — a réplica, no ano seguinte.
Remover este outlier? Transformar em log? Juntar estas duas categorias? Excluir a coleta da chuva?
Cada decisão dessas é defensável sozinha. Tomadas todas juntas, olhando para o resultado, elas produzem qualquer coisa que você queira.

Gelman, A. & Loken, E. (2014). American Scientist 102(6). Não é preciso haver má-fé: basta que as escolhas dependam dos dados.
“Your best collaborator is yourself six months from now — and your past self doesn’t answer emails.”
Tudo o que vem a seguir tem esse teste único: daqui a seis meses, você consegue rodar isto de novo e chegar ao mesmo número?
Hart, E.M.; Barmby, P.; LeBauer, D.; Michonneau, F.; Mount, S.; Mulrooney, P.; Poisot, T.; Woo, K.H.; Zimmerman, N.B.; Hollister, J.W. (2016). Ten Simple Rules for Digital Data Storage. PLOS Computational Biology 12(10): e1005097. doi:10.1371/journal.pcbi.1005097
O arquivo que saiu do equipamento ou do caderno de campo nunca é editado.
dados/brutos/ é somente leitura — lembram da aula 02?.csv, .txt, .tsv — não .xlsx, não .sav, não .mdb.
Vai que a empresa dona do formato vai à falência. Ou muda o formato. Ou você simplesmente não tem mais a licença.
E “tratado para análise” tem um nome, que vocês já conhecem: tidy data.
| Untidy | Tidy | ||||
|---|---|---|---|---|---|
sitio |
2019 |
2020 |
sitio |
ano |
abund |
| brejo | 12 | 15 | brejo | 2019 | 12 |
| mata | 8 | 11 | brejo | 2020 | 15 |
| mata | 2019 | 8 | |||
| mata | 2020 | 11 |
À esquerda, 2019 e 2020 são valores, não nomes de variáveis. À direita, cada linha é uma observação.
O exemplo completo está na Figura 1 de Hart et al. (2016) — ver figura · PLOS Comp Biol · CC BY
Análises feitas clicando em menus — Excel, SPSS, Statistica — são impossíveis de auditar.
“Em que ordem você clicou?”
Não existe resposta. E não existe como refazer no ano que vem.
Ferramentas: R Markdown e Quarto no R · Pluto.jl em Julia · Jupyter em Python
O Quarto sucede o R Markdown e absorve o que antes eram pacotes separados — bookdown, blogdown, xaringan. Estes slides são um .qmd.
.qmd1. O cabeçalho YAML — entre ---, diz o que o documento é
2. O texto — Markdown puro: **negrito**, *itálico*, # títulos
3. Os blocos de código — abertos com três crases e {r}
O knitr executa cada bloco, captura a saída — números, tabelas, gráficos — e costura tudo no documento final.
É por isso que “atualizar a figura 3” deixa de ser uma tarefa.
Escritas dentro do bloco, começando com #|:
| Opção | O que faz |
|---|---|
echo: false |
roda, mas não mostra o código |
eval: false |
mostra o código, mas não roda |
warning: false |
esconde os avisos |
message: false |
esconde as mensagens de pacote |
fig-cap: |
põe legenda na figura |
cache: true |
não recalcula o que não mudou |
warning: false e message: false no _quarto.yml são convenientes — e foram o que fez esta figura sumir sem erro, sem aviso, sem rastro:
check_model() devolve o objeto invisivelmente”. Plausível, e erradofig-height ≥ 5; toda falha, ≤ 4,4grid desiste e o knitr descarta a figura caladofig-height: 5.2 ou mais para o check_model(). Ponha o porquê em comentário, ou alguém vai “limpar” isso daqui a seis meseswarning: false não conserta o aviso: ele tira a sua chance de ler o aviso. Ligue os avisos quando algo não sair como esperadoEpisódio real, do repositório de Análise de Dados Univariados (setembro de 2026). O script que mediu isso ficou versionado junto, em R/, para que a conclusão pudesse ser refeita — que é do que esta aula inteira trata.
Código real, de um projeto deste laboratório. Ele remove três linhas antes de padronizar as variáveis:
Funciona. As linhas 107, 152 e 164 são exatamente as três que têm NA em LHC — eu conferi.
Abram o relatorio-modelo.qmd. Ele já compila. Troquem a pergunta.
ewl, ctmin, amplitude — ou outra preditoraO teste de aceitação: reinicie o R, apague o .html e o _files, renderize. Compilou sem você tocar em nada? Está pronto.
Em dados/historico/ há a planilha de trabalho que circulou antes da publicação. O arquivo que usamos a semana toda é o publicado.
Descubram, com código, o que mudou
.qmd que compilaRPB 166, de 2,73 g para 1,75 gHypsiboas_faber virou Boana faberNada disso está anunciado em lugar nenhum. Só aparece porque alguém comparou.
Revisar dado de campo é normal: a balança é reconferida, um indivíduo sai por um motivo que está no caderno, um código é reconciliado.
git log responderia em um comando o que aqui exigiu um scriptOlhem o ID da última linha do arquivo publicado: sem RPB C38 (tvz RPB 226). Um “talvez” que atravessou a revisão por pares e está num repositório público até hoje. Não é deboche — é o que acontece com todo mundo que não versiona o dado desde o primeiro dia.
Peçam a um modelo de linguagem:
“Crie um template de Quarto que inclua uma seção de importação de dados, uma análise exploratória com gráficos e uma tabela formatada com os resultados de um modelo linear.”
Depois: rodem. O que quebrou? O que ele inventou?
O LLM acelera o andaime. Conferir continua sendo trabalho seu.
Obrigado! E por favor respondam o feedback — é importante.
diogo.provete@ufms.br · provetelab.org
Setor de Ecologia — INBIO · UFMS
