Provisionamento de Infraestrutura Computacional e Integração de Inteligência Artificial para Ciência de Dados
Resumo Executivo
Esta aula inaugural estabeleceu as bases de infraestrutura computacional necessárias para as disciplinas de ferramentas computacionais e experimentação do MBA. O objetivo central foi capacitar os alunos no provisionamento de ambientes de desenvolvimento locais e em nuvem, integrando as linguagens R e Python com assistentes de Inteligência Artificial para viabilizar análises estatísticas confirmatórias e reprodutíveis. Sob uma abordagem prática de pair programming e vibe coding, foram debatidas as diferenças conceituais entre o R (linguagem de propósito específico para estatística e gráficos) e o Python (linguagem de propósito geral). No ecossistema local, demonstrou-se a instalação estruturada do R e do RStudio, bem como o provisionamento enxuto do Python via Miniconda, discutindo-se a mitigação do dependency hell. Foram configuradas as IDEs modernas Positron e Antigravity (com IA nativa do Google), além de extensões essenciais como servidores gráficos (httpgd), servidores de linguagem (languageserver), Jupyter Notebooks e Quarto Markdown. Através do recurso de entrevista Grill me da IA, desenvolveu-se um estudo de caso completo de regressão linear múltipla utilizando o conjunto de dados swiss, com diagnósticos estatísticos de resíduos e visualizações gráficas via pacote lattice. Por fim, apresentaram-se soluções de alta portabilidade em nuvem, como o Google Colab e o Posit Cloud, garantindo flexibilidade operacional e inclusão de estudantes de todos os níveis de familiaridade técnica.
1 Resumo Expandido
1.1 Apresentação Docente e Estrutura das Disciplinas
Perfil do Docente e Dinâmica Pedagógica
A condução das disciplinas está sob a responsabilidade do Prof. Dr. Walmes Zeviani, engenheiro agrônomo de formação com mestrado e doutorado em Estatística e Experimentação Agropecuária, tendo lecionado no Departamento de Estatística da Universidade Federal do Paraná (UFPR) no período de 2010 a 2024. O professor ressaltou a importância da interatividade ativa no ambiente remoto. Pela ausência de pistas visuais e linguagem corporal presentes no ensino presencial, o docente encorajou os discentes a interromperem as explicações por voz a qualquer momento, evitando o acúmulo de dúvidas que possam comprometer o entendimento de conceitos subsequentes.
Subdivisões Curriculares e Abordagem de Ensino
As disciplinas sob a tutela do professor estão organizadas em dois eixos fundamentais:
- Ferramentas Computacionais e Inteligência Artificial (60 horas): Aborda a programação estatística em R (conduzida pelo professor), a programação em Python (com o Prof. Pecora) e o módulo de Pair Programming e Vibe Coding. Este último foca no uso avançado de modelos de linguagem (LLMs), engenharia de prompts voltada à geração ágil de código e ao protocolo de comunicação MCP (Model Context Protocol) para integração direta com bancos de dados SQL. O professor enfatizou que a proliferação das ferramentas de IA generativa altera a pedagogia tradicional: o foco em sala de aula migra da memorização sintática para o domínio dos conceitos fundamentais, permitindo que detalhes de codificação sejam refinados e gerados com auxílio computacional.
- Fundamentos de Estatística e Experimentação: Compreende a Análise de Experimentos Planejados (testes A/B em plataformas de negócios, delineamentos clássicos e ensaios clínicos) e a Metodologia de Superfície de Resposta (Response Surface Methodology), onde o design experimental se une à otimização matemática para maximizar métricas críticas (como taxas de conversão ou eficiência industrial).
1.2 Fundamentação Teórica: O Embate Paradigmático R versus Python
Propósito Específico vs. Propósito Geral
A escolha entre R e Python deve basear-se no propósito de design de cada linguagem:
- Python: É classificado como uma Linguagem de Propósito Geral (general purpose language). Possui forte acoplamento com engenharia de software, automação de sistemas, raspagem de dados (web scraping via
BeautifulSoup) e arquiteturas de produção em nuvem. - R: É uma Linguagem de Propósito Específico (domain-specific language ou DSL) desenvolvida especificamente para Computação Estatística e Gráficos (statistical computing and graphics). Criada por e para estatísticos, possui uma biblioteca nativa infinitamente mais rica para análises exploratórias, estimação de parâmetros e diagnósticos estatísticos avançados.
Equivalência Funcional e Integração
Ambas as linguagens exercem influências mútuas e possuem pacotes equivalentes para grandes volumes de dados:
- O pacote
pandasdo Python foi inspirado nas estruturas de dados (data frames) do R. - O pacote
rvestdo R foi inspirado noBeautifulSoupdo Python. - Para arquiteturas de Big Data, o Python conta com o
PySpark, enquanto o R conta com o pacotesparklyr, garantindo igual capacidade de abstração e processamento massivo distribuído.
Rigor Algébrico e o Operador de Atribuição no R
Um aspecto de destaque discutido foi o uso do operador de atribuição <- no R, em detrimento do operador tradicional de igualdade =. Na engenharia de software, a expressão:
x = x + 1é amplamente aceita. Contudo, no escopo das ciências matemáticas, essa equação é uma inconsistência lógica insolúvel (se \(x = 5\), deduz-se que \(5 = 6\), o que é uma falsidade algébrica).
Para manter o rigor e a semântica da modelagem estatística, a linguagem R adota o símbolo de atribuição: \[x \leftarrow x + 1\] Isto indica de forma inequívoca que o objeto à esquerda está sendo definido ou atualizado com o valor avaliado à direita. O operador = é reservado estritamente para a passagem de parâmetros dentro de funções ou para checagens lógicas de igualdade. No editor RStudio, o atalho de teclado para gerar este operador de forma limpa (com espaçamentos automáticos) é Alt + - (tecla Alt pressionada conjuntamente com o hífen).
1.3 Provisionamento de Ambientes Locais e Correção de Políticas de Segurança
A configuração local do ecossistema do analista exige o isolamento de interpretadores e a parametrização fina do shell do sistema operacional. O professor realizou a instalação demonstrativa em uma máquina virtual Windows limpa para mapear todos os possíveis erros do processo.
Instalação do R Base e do RStudio
- R (Base): Foi instalada a versão estável
4.6.1(lançada em 24/06/2026), obtida diretamente do CRAN (Comprehensive R Archive Network). O professor destacou a importância de manter o idioma padrão de instalação em inglês. Isso evita traduções imprecisas de avisos do compilador e facilita a busca de soluções para mensagens de erro em fóruns técnicos internacionais. A interface gráfica padrão (RGui) foi apresentada como limitada por não possuir realce de sintaxe ou recuo de código, reforçando a necessidade de uma IDE. - RStudio: IDE consagrada de desenvolvimento integrado desenvolvida pela Posit (antiga RStudio Corp). O professor frisou que a ordem de instalação é mandatória: instala-se primeiro o interpretador R e, em seguida, o RStudio. Isso permite que o RStudio varra os diretórios do sistema durante a sua inicialização e aponte automaticamente para o executável correto do motor R (localizado no caminho padrão
C:/Program Files/R/R-4.6.1/bin).
Python: Miniconda versus Anaconda e a Resolução do “Dependency Hell”
Para gerenciar ambientes virtuais e interpretadores Python, o professor apresentou razões técnicas para a adoção da distribuição Miniconda em detrimento do Anaconda Navigator completo:
- Anaconda: Distribuição massiva que instala previamente mais de 600 pacotes científicos (
pandas,numpy,scikit-learn,transformers, etc.), demandando cerca de 10 GB de espaço em disco. Essa imensa teia de pacotes gera um gargalo de desempenho computacional crônico para o gerenciadorcondana hora de atualizar ou instalar novas bibliotecas, dada a complexidade matemática para resolver dependências sem gerar conflitos de versão (dependency hell). - Miniconda: Distribuição minimalista que ocupa menos de 1 GB de espaço, trazendo apenas o Python, o gerenciador de pacotes
condae cerca de 130 dependências essenciais. Permite que o analista de dados instale os pacotes cirurgicamente sob demanda, mantendo o ambiente leve e de rápida resposta.
Resolução de Erros de Shell no Windows (PowerShell)
Durante a integração do Miniconda com o PowerShell do Windows, identificou-se um bloqueio de segurança para execução de scripts do Conda. O professor demonstrou o diagnóstico passo a passo:
Abertura do terminal Anaconda Prompt (que já herda as variáveis de ambiente pré-configuradas).
Execução do comando de inicialização do shell:
conda init powershellAbertura do PowerShell como Administrador no Windows para alteração das políticas locais de execução (permitindo que o script de perfil do Conda seja carregado no terminal padrão):
Set-ExecutionPolicy -ExecutionPolicy RemoteSignedInclusão manual dos caminhos de executáveis do Miniconda à variável
%PATH%global do sistema operacional para garantir o reconhecimento universal do comandocondaem qualquer terminal.
1.4 Arquitetura de IDEs Modernas e Suporte a Linguagens
Foram apresentadas três interfaces de desenvolvimento modernas baseadas em tecnologias de código aberto, com ênfase na configuração manual de suas extensões.
Positron IDE
Desenvolvido pela Posit como um fork otimizado do VS Code, o Positron é um editor projetado especificamente para a Ciência de Dados (data science first). Sua principal vantagem técnica é a automação do provisionamento pós-instalação: ele detecta os interpretadores R e Python do sistema e instala nativamente toda a suíte de extensões requerida para Júpiter Notebooks, Quarto e visualização gráfica.
Antigravity IDE (Ambiente IA-First do Google)
Editor standalone desenvolvido pelo Google com base na arquitetura aberta do VS Code, cujo diferencial é a integração profunda de inteligência artificial com modelos do ecossistema Gemini (como o Gemini 3.7 Flash). Exige autenticação por meio de uma conta Google para a liberação de recursos de geração de código em tempo real (vibe coding). O professor configurou o perfil de interação no modo Review-Driven, o qual atua de forma estrita, exigindo que o desenvolvedor revise e aprove manualmente as alterações propostas pela IA antes de sua aplicação real.
Configuração Manual de Extensões (Antigravity/VS Code)
Para assegurar a reprodutibilidade analítica em IDEs de propósito geral, as seguintes extensões e configurações de retaguarda devem ser implementadas:
┌────────────────────────────────────────────────────────┐
│ PILHA DE EXTENSÕES IDE │
│ │
│ ┌─────────────────────────┐ ┌──────────────────────┐ │
│ │ EXTENSÕES R │ │ EXTENSÕES PY │ │
│ │ │ │ │ │
│ │ - R Editor Support │ │ - Python Extension │ │
│ │ - languageserver (pkg) │ │ - Ruff Linter │ │
│ │ - httpgd (pkg) │ │ - ipykernel (pip) │ │
│ └────────────┬────────────┘ └──────────┬───────────┘ │
│ │ │ │
│ └────────────┬────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ MOTORES DE RELATÓRIO E CADERNOS │ │
│ │ │ │
│ │ - Jupyter Extension + IRkernel (R) │ │
│ │ - Quarto CLI + rmarkdown/knitr (R) │ │
│ └──────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────┘
Suporte Semântico ao R: Instalação da extensão
R Editor Support. No console do R, é mandatória a instalação do pacote do servidor de linguagem para habilitar recursos de autocompletar, checagem de tipos e documentação sob o cursor (hover documentation):install.packages("languageserver")Servidor de Gráficos de Alta Performance: Instalação da extensão correspondente na IDE e ativação do pacote
httpgdno console R, permitindo renderização rápida de imagens vetoriais interativas no editor:install.packages("httpgd")Suporte a Cadernos Jupyter: Instalação da extensão
Jupyterna IDE. No ambiente base do Miniconda, ativa-se o servidor de cadernos e o kernel Python:pip install jupyterlab ipykernelNo console do R, instala-se e registra-se o kernel estatístico correspondente para habilitar cadernos baseados em R:
install.packages("IRkernel") IRkernel::installspec(user = FALSE)Suporte ao Ecossistema Quarto: Instalação da extensão
Quartoe do executável Quarto CLI (instalador do sistema operacional). No console R, instalam-se os pacotes necessários para a renderização do formato:install.packages(c("rmarkdown", "knitr"))
1.5 Estudo de Caso Prático: Pair Programming e Regressão Linear Múltipla
Para consolidar o fluxo de programação assistida, realizou-se uma modelagem estatística completa utilizando o modelo Gemini 3.7 Flash integrado ao recurso interativo Grill me do Antigravity IDE.
Alinhamento de Escopo via Interface Interativa (Grill me)
O recurso Grill me atua como um sistema de entrevista técnica estruturada, coletando as especificações do analista antes de prosseguir com a geração do código. No estudo de caso, as definições alinhadas foram:
- Dataset de Trabalho: Conjunto de dados histórico
swiss(nativamente presente no R, contendo dados socioeconômicos de 47 províncias da Suíça em 1888). - Variável Resposta (\(Y_i\)): Índice de fertilidade padronizado (
Fertility). - Variáveis Preditoras (\(x_{ij}\)): Porcentagem de homens na agricultura (
Agriculture), exame militar (Examination), nível de educação avançada (Education), percentual de população católica (Catholic) e taxa de mortalidade infantil (Infant.Mortality). - Mecanismo Gráfico: Matriz de diagramas de dispersão condicionada utilizando a função
splom()da biblioteca estatísticalattice. - Formato de Entrega: Documento Quarto Markdown (
.qmd) para renderização em relatório acadêmico HTML.
Estrutura Matemática do Modelo de Regressão Múltipla
O modelo linear formulado estatisticamente para estimar o comportamento dos dados foi: \[Y_i = \beta_0 + \beta_1 x_{i1} + \beta_2 x_{i2} + \beta_3 x_{i3} + \beta_4 x_{i4} + \beta_5 x_{i5} + \epsilon_i\] onde o índice observacional varia de \(i = 1\) a \(n = 47\) observações dos municípios.
De acordo com o Teorema de Gauss-Markov para estimação de parâmetros por mínimos quadrados ordinários, as suposições clássicas impostas sobre o termo de erro estocástico \(\epsilon_i\) são de que este possui média zero, variância constante (\(\sigma^2\)) e covariância nula entre diferentes observações: \[\epsilon_i \sim \text{Normal}(0, \sigma^2)\] \[\text{Var}(\epsilon_i) = \sigma^2\] \[\text{Cov}(\epsilon_i, \epsilon_j) = 0 \quad (\text{para } i \neq j)\]
Compilação do Relatório Reprodutível e Diagnósticos Estatísticos
A IA gerou um documento Quarto de 251 linhas que foi automaticamente compilado e validado. O relatório conteve as seguintes fases analíticas estruturadas:
- Análise Exploratória de Dados (AED): Gráficos de dispersão condicionados (
splom()) divididos por uma nova variável categórica indicando se o município possui maioria católica ou protestante (ponto de corte em \(50\%\)). - Ajuste do Modelo: Ajuste da regressão múltipla através da função clássica
lm()do R, extraindo os coeficientes estimados, os desvios padrão, as estatísticas de teste e os intervalos de confiança dos parâmetros. - Quadro de Análise de Variância (ANOVA): Decomposição das somas de quadrados para verificar a significância geral do modelo linear ajustado.
- Análise de Diagnóstico de Resíduos: Gráficos de diagnóstico (resíduos contra valores ajustados para avaliar linearidade e homocedasticidade; gráfico Q-Q plot para verificar normalidade).
- Testes de Hipóteses Formais: Execução do teste de normalidade de Shapiro-Wilk sobre os resíduos e testes estatísticos formais de homocedasticidade.
1.6 Soluções de Computação em Nuvem para Alta Portabilidade
Como alternativa viável para contornar limitações de hardware local ou garantir a reprodutibilidade imediata, foram detalhadas duas plataformas em nuvem:
Google Colab
Plataforma de execução de cadernos em nuvem mantida pelo Google. O professor elucidou a origem etimológica do termo Jupyter, que faz referência direta às três linguagens pioneiras da computação científica aberta:
- Ju: Julia
- Py: Python
- te: (conector ortográfico)
- R: R
Demonstrou-se que, no Colab, é possível acessar o menu de configurações de tempo de execução (Change runtime type) para alterar a linguagem padrão de Python 3 para R, viabilizando o uso de modelos do ecossistema Google para escrita e execução de códigos estatísticos.
Posit Cloud
Interface web que fornece uma instância completa e isolada do RStudio Server rodando em servidores remotos da Posit. Permite o compartilhamento ágil de projetos e o controle exato das versões do interpretador R e pacotes utilizados, eliminando custos de infraestrutura local.
1.7 Armadilhas de Desenvolvimento e Práticas Recomendadas
Nesta seção, consolidam-se as diretrizes mais críticas discutidas em sala de aula para evitar falhas silenciosas, assegurar legibilidade e garantir a portabilidade do ambiente computacional.
Identificação de Pontos de Atenção e Falhas Silenciosas (Armadilhas)
- Instalação fora de ordem cronológica: Instalar o RStudio antes do R Base impede que a IDE mapeie os caminhos do executável automaticamente, deixando a interface sem o “motor” de execução do R.
- Gargalo de Hardware com a Distribuição Anaconda: A instalação da suíte completa do Anaconda (cerca de \(10\text{ GigaBytes}\)) em computadores pessoais ou máquinas virtuais limitadas esgota o espaço em disco e degrada severamente o desempenho das atualizações de pacotes científicos do Python devido à complexidade computacional para a resolução de conflitos de dependências.
- Poluição de Workspace por Concorrência: Abrir o mesmo diretório de projeto simultaneamente em editores distintos (ex: abrir no Positron e no Antigravity ao mesmo tempo) gera conflitos de gravação em disco e falhas silenciosas na execução dos servidores Jupyter integrados.
- Bloqueio Silencioso de Scripts no Windows: No Windows PowerShell, o bloqueio do perfil do Conda por diretivas padrão do sistema operacional impede a inicialização automática do interpretador de ambientes virtuais, exigindo a reconfiguração explícita via
Set-ExecutionPolicy.
Boas Práticas de Codificação para Ciência de Dados
- Configuração de Margem Visual de Código: Configurar a margem do editor para um limite estrito de \(72\) ou \(80\) caracteres. Essa quebra de linha visual impede a escrita de linhas horizontais muito longas, o que facilita revisões por pares e leitura direta nos linters da IDE.
- Isolamento de Diretórios de Projeto: Manter uma estrutura rígida de diretórios dentro da pasta do projeto para separar dados de entrada (raw data), dados processados (processed data), scripts de análise e relatórios finais compilados.
- Especificação Explícita de Bibliotecas Gráficas na IA: Na engenharia de prompts, ao interagir com modelos de linguagem para geração de código, deve-se explicitar quais pacotes visuais devem ser utilizados (ex: pacote clássico
latticepara gráficos condicionados ouggplot2para visualizações declarativas), sob o risco de a IA gerar scripts que utilizam pacotes obsoletos ou incompatíveis com o ambiente atual. - Ciclo de Vida de Scripts no R: Compreender a diferença prática na gestão de ambientes. No Python, o isolamento rígido via ambientes virtuais (
venv,uv) é indispensável devido ao caráter de produção das aplicações. No R, embora existam ferramentas de controle de dependências como o pacoterenv, a prática de análise de dados estatísticos geralmente baseia-se em scripts de ciclo de vida curto (geração de um relatório estático reprodutível Quarto ou PDF de suporte à decisão), tornando o controle de versões de bibliotecas importante, porém focado em reprodutibilidade acadêmica direta.
Apoio a Alunos Iniciantes e Requisitos Próximos
Para os estudantes que não são provenientes de áreas tecnológicas (como a aluna Ana Paula) e sentiram-se apreensivos com terminologias técnicas complexas (como docker, kernel, etc.), o professor garantiu que o andamento das aulas será gradativo. Todas as sessões serão gravadas, acompanhadas de questionários (quizzes) para fixação e materiais de referência.
Aos iniciantes, recomendou-se o estudo do material clássico de R do Prof. Paulo Justiniano (UFPR/Embrapa), excelente ponto de partida conceitual. Para o próximo encontro (sábado), o único requisito mandatório é possuir o R Base e o RStudio instalados e funcionais localmente.