Não foi possível enviar o arquivo. Será algum problema com as permissões?
Programação de métodos estatísticos integrando as linguagens C e R

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:

  1. aula 1
    1. soma e media de vetores
    2. outer e produto matricial
  2. aula 2
    1. geracao de numeros aleatorios e calculo de probabilidades
    2. analise de regressao linear simples
    3. modelo de regressao de poisson
    4. numeros aleatorios da distribuicao normal multivariada
  3. aula 3
    1. determinante e inversao de matrizes
    2. densidade da distribuicao normal multivariada
    3. exemplo de MCMC
    4. 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 gfortran
OBS: 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

AULA 3

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

  • Fonte Arquivo fonte com exemplo extraido daqui
  • Makefile que utilizei (estat .txt pq o wiki n aceitou sem extensão)

Participantes

Outras informações

  1. Incrições:
    • email to paulojus AT leg.ufpr.br
  2. Promoção: LEG
  3. Agradecimento especial: Paulo Justiniano Ribeiro Junior

QR Code
QR Code seminarios:minicursorc (generated for current page)