Tópicos Especiais em Estatística Comp.

Apresentação

Prof. Jodavid Ferreira

UFPE

Estrutura da disciplina


  • Carga Horária: 75 horas

  • Como será a disciplina:

    • Aulas expositivas;
    • Aulas práticas (em computador);
    • Avaliação:
      • 2 Provas:
        • 17.10.2024;
        • 28.11.2024;
      • 1 Trabalhos:
        • Aplicação de alguns métodos e será completo com escrita e apresentação;
          • Inicio: 05.12.2024;

Tópicos da disciplina


  1. Fundamentos de Programação em R e Python:
    • Essenciais para a implementação de métodos estatísticos computacionais.
  2. Ferramentas e Versionamento (Git e GitHub):
    • Importantes para o gerenciamento de projetos (em estatística computacional), colaborativos e reprodutíveis.
  3. Web Scraping:
    • Utilizado para coletar dados, que é uma etapa crucial na análise estatística.
  4. Desenvolvimento de Aplicações Web (Markdown e Shiny):
    • Permite a criação de dashboards e ferramentas interativas para visualização de dados e resultados.

Tópicos da disciplina


  1. APIs e Docker:
    • Facilitam a integração e a distribuição de aplicações em diferentes ambientes.
  2. Big Data:
    • Envolve técnicas de manipulação e análise de grandes volumes de dados, frequentemente usadas em estatística.
  3. Bancos de Dados Estruturados e Não Estruturados:
    • Conhecimentos sobre diferentes tipos de dados e suas manipulações são cruciais em análises estatísticas complexas.
  4. Machine Learning (apenas os conceitos):
    • Engloba métodos estatísticos para predição, essenciais na estatística computacional.

Tópicos da disciplina


  1. TensorFlow e Keras:
    • Ferramentas de software utilizadas para implementar modelos de deep learning.
  2. Deep Learning e Redes Neurais:
    • São métodos “estatísticos” utilizados para modelagem e análise de dados.
  3. Modelos de Linguagem Natural (LLMs):
    • Visão sobre Modelos de IA Generativa que geram diferentes saídas a partir de diferentes inputs.







R e Python


R e Python





O que é o R? O que é o Python?

R e Python


R:

  • É uma linguagem de programação voltado para a análise estatística e gráficos;

  • É uma linguagem de programação de alto nível e de código aberto (R é Software Livre);

  • É uma das linguagens mais utilizadas em estatística e análise de dados, e possui uma grande quantidade de pacotes para tais fins.

Python:

  • É uma linguagem de programação de alto nível e de código aberto (o Python é Open Source);

  • É uma das linguagens mais utilizadas em desenvolvimento de software e análise de dados.;

  • É uma linguagem de programação que também possui uma grande quantidade de pacotes para análise de dados.

R e Python


Fonte: https://www.statista.com/statistics/793628/worldwide-developer-survey-most-used-languages/

Fonte: https://www.statista.com/statistics/793628/worldwide-developer-survey-most-used-languages/

- python na 3º posição;

- R na 21º posição;

Programação


  • Por que Programar?


Geralmente, utilizamos a programação quando “se precisa automatizar processos do nosso dia a dia”.


Para programarmos, usamos uma linguagem de programação que possibilita informar ao computador como ele deve se comportar para assim conseguirmos automatizar o processo desejado

Por que Progamar?



- Programação de Alto Nível:

Uma linguagem de programação de alto nível disponibiliza comandos (palavras-chaves) bem próximos de uma linguagem natural. Com isso, o processo de “conversar” com o computador é facilitado, pois essas palavras-chaves fornecem uma maior clareza de como se deve orquestrar o que o computador deve fazer por nós.


- Programação de Baixo Nível:

Uma linguagem de programação de baixo nível é mais próxima da linguagem de máquina, ou seja, mais próxima do que o computador entende. Com isso, o processo de “conversar” com o computador é mais difícil, pois é necessário entender como o computador funciona para poder programar. Um exemplo de linguagem de baixo nível é o Assembly, que é uma linguagem de programação que utiliza códigos de máquina para programar.

Por que Progamar?



  • Exemplo em R
# Exemplo de código em R
cat('Hello, World!\n')
  • Exemplo em python
# Exemplo de código em python
print('Hello, World!')
  • Exemplo em Assembly
section .data
    msg db 'Hello, World!', 0xA  ; Mensagem a ser impressa seguida de nova linha
    len equ $ - msg              ; Calcula o comprimento da string

section .text
    global _start                ; Define o ponto de entrada do programa

_start:
    mov edx, len                ; Define o terceiro argumento: tamanho da mensagem
    mov ecx, msg                ; Define o segundo argumento: ponteiro para a mensagem
    mov ebx, 1                  ; Define o primeiro argumento: descritor de arquivo (stdout)
    mov eax, 4                  ; Define o número da chamada de sistema para sys_write
    int 0x80                    ; Chama o kernel

    mov eax, 1                  ; Define o número da chamada de sistema para sys_exit
    xor ebx, ebx                ; Define o argumento para sys_exit: 0
    int 0x80                    ; Chama o kernel

Por que é interessante aprender R e python?


IDEs para utilização do R e python



Integrated Development Environment (IDE) é o ambiente de desenvolvimento integrado, ou seja, um software que agrega várias funções necessárias para cria um ambiente de criação de código e programação. Como já mencionado, o R possui versões compatíveis com vários sistemas operacionais, como o Linux, o Windows e o macOS. Para cada sistema existe várias IDEs que podem ser utilizadas para programar em R, em algumas dessas IDEs também possuem versões para todos os sistemas. A escolha da melhor IDE é aquela que o usuário ficar mais confortável para programar, entretanto, segue algumas IDEs recomendadas para utilização, principalmente para novos usuários e programadores do R:

RGui (Windows/macOS)


Vantagens Desvantagens
Leve e simples, ideal para uso básico Interface gráfica limitada e pouco amigável
Instalação direta e integração nativa com R Falta de recursos avançados (R Markdown, Shiny, etc.)
Consumo mínimo de recursos Menos intuitivo para iniciantes

RStudio


Vantagens Desvantagens
Interface amigável para iniciantes Pode parecer complexo para usuários básicos
Instalação simples e integração com R
Recursos colaborativos (Git, RMarkdown)
Ferramentas abrangentes para scripts e visualização

Positron


Vantagens Desvantagens
Suporte a múltiplas linguagens (R, Python) Ainda em beta, pode ter problemas de estabilidade
Alta personalização, herdada do VS Code Faltam alguns recursos como saída inline

Visual Studio Code - VSCode


Vantagens Desvantagens
Alta personalização e suporte a múltiplas linguagens Configuração inicial para R pode ser complexa
Boas ferramentas de conclusão de código Menos focado em recursos específicos para R
Integração com Git e grande comunidade

Geany


Vantagens Desvantagens
Leve e rápido, ideal para sistemas leves Pode faltar recursos avançados para R
Suporte a múltiplas linguagens, incluindo R Requer configuração para integração com R
Interface simples e fácil de usar

Vim com o plugin Vim-R-plugin


Vantagens Desvantagens
Altamente personalizável e eficiente Curva de aprendizado acentuada para iniciantes
Suporte a múltiplas linguagens com plugins Pode faltar recursos específicos para R
Ideal para usuários avançados

Emacs com ESS


Vantagens Desvantagens
Altamente personalizável e poderoso Curva de aprendizado acentuada para novos usuários
Suporte robusto para R via ESS Pode ser menos amigável para tarefas específicas em R
Versátil, usado para várias tarefas Requer mais configuração

Google Colab

Solução on-line


Vantagens Desvantagens
Acesso gratuito a recursos computacionais (GPUs e TPUs) Limitações de tempo de uso e desconexão por inatividade
Nenhuma configuração inicial necessária Dependência total de uma conexão com a internet
Facilidade de compartilhamento e colaboração em tempo real Recursos (RAM, CPU, GPU) são variáveis e não garantidos
Integração nativa com o Google Drive Armazenamento temporário que é apagado ao final da sessão

Kaggle Jupyter Notebook

Solução on-line


Vantagens Desvantagens
Acesso gratuito a GPUs e TPUs por um quota semanal Sessões interativas são limitadas em tempo de execução
Enorme acervo de datasets públicos facilmente acessíveis O ambiente é menos flexível para projetos que não envolvem análise de dados
Versionamento de código automático (commits) que facilita o acompanhamento Recursos computacionais (CPU, RAM) podem ser mais limitados que em outras plataformas
Integração perfeita com competições do Kaggle A interface pode ser menos intuitiva para tarefas gerais de programação

Plataforma Recomendada

Solução localmente


Plataforma Recomendada

Solução On-line


Sites para Bases de dados


Sites para Bases de dados


Sites para Bases de dados


Sites para Bases de dados


Sites Interessantes





OBRIGADO!


Slide produzido com quarto