Tabela de conteúdos
Programação de métodos estatísticos integrando as linguagens C e R
Resumo
Minicurso (INFORMAL) sobre programação envolvendo e combinando as linguagens C e R.
Será mostrado como pode-se escrever programas em C, utilizando procedimentos e rotinas do R (e ainda de outras bibliotecas como LAPACK etc).
Como exemplo serão mostrados como implementar alguns métodos e operações úteis e comuns em estatística.
Em resumo, o objetivo é fazer um cálculo em C com argumentos declarados em R. Por exemplo, procedimentos iterativos (for, while, repeat) são mais eficientes em C. Podemos programar um procedimento desses em C, gerar uma biblioteca dinamica e usa-la a partir do R, bastando chamar a funcao C e passar os argumentos como ponteiro.
Eventualmente o procedimento que vamos programar em C requer uso de funções de cálculos mais avançados, tais como inversão de matrizes, geração de números aleatórios, optimização, etc. Para isso, usamos bibliotecas R escritas em C, que fazem esses cálculos, dentro do nosso programa em C.
Tópicos
Os tópicos abordados no curso podem serão divididos em 3 aulas:
- aula 1
- soma e media de vetores
- outer e produto matricial
- aula 2
- geracao de numeros aleatorios e calculo de probabilidades
- analise de regressao linear simples
- modelo de regressao de poisson
- numeros aleatorios da distribuicao normal multivariada
- aula 3
- determinante e inversao de matrizes
- densidade da distribuicao normal multivariada
- exemplo de MCMC
- chamando funcao R a partir do C++
Instruções aos interessados
- trazer notebook (se possuir)
- se usuário de Linux: instalar os pacotes necessários. Para Debian/Ubuntu & outros que usam APT:
apt-get install r-base r-base-core r-base-dev r-mathlib r-recommended lapack3-dev gcc gfortranOBS: Se não houver habilitação para pacotes dev no seu computador, substitua lapack3-dev por lapack3
- se usuário de Windows:
ter instalado o R e o Rtools (ver instruções para instalar
o Rtools na Página do Rtools).
- OBS1: O Rtools contém:
- Perl (in Rtools.exe)
- The command line tools (in Rtools.exe), necessário devido a pobreza de funcionalidades via comandos do Windows
- The MinGW compilers (in Rtools.exe)
- OBS2: É trabalhoso configurar o ambiente em Windows: Instalar Rtools e configurar a variável de ambiente.
Portanto, procure fazer isso antes. Veja instruções em Windows toolset
Material
AULA 1
- Introdução Vejam como é simples chamar uma função em C no R.
- Arquivo 1 soma de vetores, outer e produto de matrizes
- Arquivo 2 exemplos usando arquivo anterior
- Arquivo 3 função naive(não eficiente) para produto matricial em R
AULA 2
- Arquivo 1 exemplos com geradores de números aleatórios, cálulo de densidades, quantis e probabilidades
- Arquivo 2 exemplos usando anterior
- Arquivo 3 gerador de amostras da Normal Multivariada
- Arquivo 4 exemplos usando anterior
- Arquivo 5 Regressão linear simples em C
- Arquivo 6 exemplo usando anterior
- Arquivo 7 Regressão Poisson em C
- Exericicio Para casa
AULA 3
- Arquivo 1 e Arquivo 1 B Arquivo de código fonte de pacote exemplo e compilado
- Arquivo 2 teste do pacote
- Arquivo 3 implementação em R do MCMC implementado em C
- Arquivo 4 chamada de função R em C
- Arquivo 5 exemplos usando anterior
Adicional:
Usando r-mathlib em programas C standalone
Basta ter os dois arquivos abaixo num diretorio
(verificar se os locais do Rmath.h e libRmath.so estão referenciados corretamente)
compilar com make
- Makefile que utilizei (estat .txt pq o wiki n aceitou sem extensão)
Participantes
Outras informações
- Incrições:
- email to
paulojus AT leg.ufpr.br
- Promoção: LEG
- Agradecimento especial: Paulo Justiniano Ribeiro Junior