Idioma r wiki. A linguagem de programação R e seu lugar entre os programas estatísticos

Programação em R. Nível 1. Noções básicas

A linguagem R é a ferramenta de análise estatística de dados mais popular do mundo. Ele contém uma ampla gama de recursos para analisar dados, visualizá-los e criar documentos e aplicativos da web. Quer dominar esta linguagem poderosa com a orientação de um mentor experiente? Nós convidamos você para o curso "Programação na linguagem R. Nível 1. Conhecimento básico".

Este curso destina-se a uma ampla gama de especialistas que precisam procurar padrões em grandes quantidades de dados, visualizá-los e construir conclusões estatisticamente corretas: sociólogos, gestores de ensaios clínicos/farmacologistas, pesquisadores (astronomia, física, biologia, genética, medicina, etc.), analistas de TI, analistas de negócios, analistas financeiros, profissionais de marketing. O curso também atrairá especialistas que não se sentem confortáveis ​​com a funcionalidade (ou taxas) / .

Durante as aulas você ganhará habilidades básicas em análise e visualização de dados no ambiente R. A maior parte do tempo é dedicada a tarefas práticas e ao trabalho com conjuntos de dados reais. Você aprenderá todas as novas ferramentas para trabalhar com dados e como aplicá-las em seu trabalho.

Após o curso, é emitido um certificado de formação avançada do centro.

Muitos exemplos e artigos neste site usam ativamente a linguagem de programação “R”.

R para Linux geralmente pode ser instalado usando os repositórios da sua distribuição. Eu uso distribuições baseadas em Debian, nas quais o comando padrão para instalar o R ​​é assim:

Sudo apt instalar r-base

Você precisa digitar isso no terminal.

A beleza de R é esta:

  1. Este programa é gratuito (distribuído sob licença GPL),
  2. Muitos pacotes foram escritos para este programa para resolver uma ampla gama de problemas. Todos eles também são gratuitos.
  3. O programa é muito flexível: os tamanhos de quaisquer vetores e matrizes podem ser alterados a pedido do usuário, os dados não possuem uma estrutura rígida. Esta propriedade acaba sendo extremamente útil no caso de previsão, quando o pesquisador precisa dar uma previsão para um período arbitrário.

A última propriedade é especialmente relevante porque outros pacotes estatísticos (como SPSS, Eviews, Stata) assumem que só podemos estar interessados ​​em analisar dados que tenham uma estrutura fixa (por exemplo, todos os dados num ficheiro de trabalho devem ter a mesma periodicidade com as mesmas datas de início e término).

No entanto, R não é o programa mais amigável. Ao trabalhar com ele, esqueça o mouse - quase todas as ações mais importantes nele são executadas usando a linha de comando. Porém, para tornar a vida um pouco mais fácil e o programa em si um pouco mais acolhedor, existe um programa frontend chamado RStudio. Você pode baixá-lo aqui. Ele é instalado após a instalação do próprio R. O RStudio possui muitas ferramentas convenientes e uma interface agradável, porém, análises e previsões nele ainda são realizadas por meio da linha de comando.

Vamos tentar dar uma olhada neste programa maravilhoso.

Conhecendo o RStudio

A interface do RStudio é semelhante a esta:

No canto superior direito do RStudio está indicado o nome do projeto (que por enquanto temos “Nenhum” - ou seja, está faltando). Se clicarmos nesta inscrição e selecionarmos “Novo Projeto” (novo projeto), seremos solicitados a criar um projeto. Para fins básicos de previsão, basta selecionar “Novo Diretório” (uma nova pasta para o projeto), “Projeto Vazio” (um projeto vazio) e, em seguida, inserir o nome do projeto e selecionar o diretório no qual deseja salvá-lo. Use sua imaginação e tente inventar um nome :).

Ao trabalhar com um projeto, você sempre pode acessar os dados, comandos e scripts armazenados nele.

No lado esquerdo da janela do RStudio está o console. É aqui que inseriremos vários comandos. Por exemplo, vamos escrever o seguinte:

Este comando irá gerar 100 variáveis ​​​​aleatórias de uma distribuição normal com expectativa zero e variância unitária, então criará um vetor chamado "x" e escreverá nele os 100 valores resultantes. Símbolo "<-» эквивалентен символу «=» и показывает какое значение присвоить нашей переменной, стоящей слева. Иногда вместо него удобней использовать символ «->”, embora nossa variável neste caso deva estar à direita. Por exemplo, o código a seguir criará um objeto “y” que é absolutamente idêntico ao objeto “x”:

Esses vetores agora aparecem na parte superior direita da tela, na aba que intitulei “Meio Ambiente”:

Mudanças na aba “Meio Ambiente”

Esta parte da tela exibirá todos os objetos que salvamos durante a sessão. Por exemplo, se criarmos uma matriz como esta:

\(A = \begin(pmatriz) 1 & 1 \\ 0 & 1 \end(pmatriz) \)

com este comando:

então aparecerá na aba “Ambiente”:

Qualquer função que usamos exige que atribuamos alguns valores a determinados parâmetros. A função array() possui os seguintes parâmetros:

  • dados – vetor com dados que devem ser gravados na matriz,
  • nrow – número de linhas na matriz,
  • ncol – número de colunas na matriz,
  • byrow - parâmetro lógico. Se “TRUE” (verdadeiro), então a matriz será preenchida em linhas (da esquerda para a direita, linha por linha). Por padrão, esse parâmetro é definido como FALSE.
  • dimnames - uma planilha com nomes de linhas e colunas.

Alguns desses parâmetros possuem valores padrão (por exemplo, byrow=FALSE ), enquanto outros podem ser omitidos (por exemplo, dimnames ).

Um dos truques do “R” é que qualquer função (por exemplo, nossa matriz() ) pode ser acessada especificando valores diretamente:

Ou você pode fazer como fizemos anteriormente - observando a sequência e omitindo os nomes dos parâmetros.

Para ver o conteúdo de qualquer objeto localizado na aba “Ambiente”, basta imprimir seu nome no console:

Outra opção é clicar no nome do objeto na aba “Ambiente”.

onde matriz é o nome da função que nos interessa. Neste caso, o RStudio abrirá o painel “Ajuda” especialmente para você com uma descrição:

Você também pode encontrar ajuda sobre uma função digitando o nome da função na janela “pesquisar” (ícone com uma lente) na aba “Ajuda”.

Se você não lembra exatamente como escrever o nome de uma função ou quais parâmetros são usados ​​nela, basta começar a escrever seu nome no console e pressionar o botão “Tab”:

Além de tudo isso, você pode escrever scripts no RStudio. Você pode precisar deles se precisar escrever um programa ou chamar uma sequência de funções. Os scripts são criados usando o botão com um sinal de mais no canto superior esquerdo (você precisa selecionar “R Script” no menu suspenso). Na janela que se abre depois disso, você pode escrever quaisquer funções e comentários. Por exemplo, se quisermos traçar um gráfico de linha sobre a série x, podemos fazer assim:

Plotar (x) linhas (x)

A primeira função constrói um gráfico de dispersão simples e a segunda função adiciona linhas no topo dos pontos conectando os pontos em série. Se você selecionar esses dois comandos e pressionar “Ctrl+Enter”, eles serão executados, fazendo com que o RStudio abra a aba “Plot” no canto inferior direito e exiba nela o gráfico plotado.

Se ainda precisarmos de todos os comandos digitados no futuro, esse script poderá ser salvo (disquete no canto superior esquerdo).

Caso você precise consultar um comando que já digitou em algum momento, existe uma aba “Histórico” no canto superior direito da tela. Nele você pode encontrar e selecionar qualquer comando de seu interesse e clicar duas vezes para colá-lo no console. No próprio console, você pode acessar comandos anteriores usando os botões Para cima e Para baixo do teclado. A combinação de teclas “Ctrl+Up” permite mostrar uma lista de todos os comandos recentes no console.

Em geral, o RStudio possui muitos atalhos de teclado úteis que tornam o trabalho com o programa muito mais fácil. Você pode ler mais sobre eles.

Como mencionei anteriormente, existem muitos pacotes para R. Todos eles estão localizados no servidor CRAN e para instalar qualquer um deles é necessário saber seu nome. A instalação e atualização dos pacotes são realizadas através da aba “Pacotes”. Acessando-o e clicando no botão “Instalar”, veremos algo como o seguinte menu:

Vamos digitar na janela que se abre: previsão é um pacote escrito por Rob J. Hyndman, contendo um monte de funções úteis para nós. Clique no botão “Instalar”, após o qual o pacote “previsão” será instalado.

Alternativamente, podemos instalar qualquer pacote, sabendo seu nome, usando o comando no console:

Install.packages("suave")

desde que esteja, é claro, no repositório CRAN. smooth é um pacote cujas funções eu desenvolvo e mantenho.

Alguns pacotes estão disponíveis apenas em código-fonte em sites como github.com e exigem que sejam compilados primeiro. Para construir pacotes no Windows, você pode precisar do programa Rtools.

Para usar qualquer um dos pacotes instalados, você precisa habilitá-lo. Para fazer isso, você precisa localizá-lo na lista e marcá-lo ou usar o comando no console:

Biblioteca(previsão)

Um problema desagradável pode aparecer no Windows: alguns pacotes são facilmente baixados e montados, mas não são instalados de forma alguma. R neste caso escreve algo como: "Aviso: não é possível mover a instalação temporária...". Tudo o que você precisa fazer neste caso é adicionar a pasta com R às exceções do seu antivírus (ou desligá-lo durante a instalação dos pacotes).

Após baixar o pacote, todas as funções nele incluídas estarão à nossa disposição. Por exemplo, a função tsdisplay(), que pode ser usada assim:

Tsexibição(x)

Ela construirá três gráficos para nós, que discutiremos no capítulo “Forecaster Toolkit”.

Além do pacote de previsão, costumo usar o pacote Mcomp para vários exemplos. Contém séries de dados da base de dados M-Competition. Portanto, recomendo que você instale também.

Muitas vezes precisaremos não apenas de conjuntos de dados, mas de dados da classe “ts” (séries temporais). Para fazer uma série temporal a partir de qualquer variável, você precisa executar o seguinte comando:

Aqui, o parâmetro start nos permite especificar a data a partir da qual nossa série temporal começa e a frequência especifica a frequência dos dados. O número 12 em nosso exemplo indica que estamos lidando com dados mensais. Como resultado da execução deste comando, transformamos nosso vetor “x” em uma série temporal de dados mensais a partir de janeiro de 1984.

Estes são os elementos básicos do R e RStudio que precisaremos.

PPS Um guia bastante bom para R foi publicado no site QSAR4U por Pavel Polishchuk.

P.P.P.S. Muitas informações sobre R são apresentadas no site oficial.

Trabalho independente

Aqui estão algumas tarefas para você fazer sozinho no R. Execute os comandos a seguir, veja o que acontece e tente entender por que isso aconteceu:

(41/3 + 78/4)*2 2^3+4 1/0 0/0 max(1,min(-2,5),max(2,pi)) sqrt(3^2+4^2 ) exp (2)+3i log(1024) log(1024, base=2) c(1:3) c(1:5)*2 + 4 x

]. "Proletário do trabalho mental." Físico por formação. Trabalho na área de processamento de informações médicas e biológicas há mais de 30 anos.
Trabalho em R há exatos 10 anos, tendo migrado para ele após 15 anos de estreita colaboração com Matlab. A principal razão para migrar para outra plataforma de trabalho foi minha própria migração física para o extremo oposto da Terra, em Auckland, Nova Zelândia. Aqui a vida desde os primeiros dias me empurrou para os braços de R, do qual ainda não tive que me arrepender.

Cada vez mais vejo surtos de interesse por R na rede profissional. Bem, artigos sobre ele aparecem neste respeitado recurso. Mais abaixo do corte está minha primeira tentativa de introdução ao R em língua russa - a primeira parte (verbal) da apresentação que fiz para colegas da Faculdade de Ciência Animal da Universidade Estadual de Iova, três anos atrás.
(para o lado: mas acontece que é difícil traduzir você mesmo...)


Nesta postagem

  • O que é R
  • De onde ele veio
  • Por que eu o amo
  • Mitos e verdade

O que aconteceu R

Em primeiro lugar Ré um sistema para cálculos estatísticos e outros cálculos científicos usando uma linguagem de programação S .

S- linguagem escrita por estatísticos para estatísticos. conforme definido pelo autor John Chambers. A linguagem foi muito bem recebida desde a sua introdução e foi testada por gerações de usuários estatísticos muito exigentes. Pode-se considerar que é amplamente conhecido e aceito na comunidade estatística global. Na língua S Vários modelos epidemiológicos, ambientais e financeiros críticos foram implementados e ainda estão em funcionamento em todo o mundo e em muitas indústrias. Como é a linguagem do meu ponto de vista, como “usuário escritor”, Sé uma alternativa muito agradável ao idioma SAS .

Da minha própria experiência - Introdução e primeiras lições S Eu próprio o recebi, no início dos anos 90, de especialistas em estatística da OMS com quem me cruzei em investigação científica nessa altura.

De acordo com muitas estimativas, R (para mim e não muito exagerado) é um dos projetos de código aberto de maior sucesso, distribuído gratuitamente a partir de dezenas de espelhos ao redor do mundo de acordo com os padrões de licença GNU.
Os autores recusam categoricamente todas as propostas de comercialização do projeto, embora hoje haja motivos para supor que o número de cópias instaladas de R no mundo supere o número total de cópias todos outros sistemas de análise estatística.

Desde o início até hoje, o projeto evoca em mim o mais profundo respeito (à beira da admiração) pela estabilidade, suporte ao usuário, compatibilidade de código, etc., que eu combinaria no conceito cultura.
No entanto, a última frase é antes para as subseções subsequentes.

De onde veio? S e o que isso tem a ver com R

Sem dúvida, a Wikipedia lhe dará muito mais cartas.
Observarei apenas o que considero importante para a compreensão do lugar de S e R nesta vida neste mundo.

Os Laboratórios Bell (também conhecidos como Bell Labs, AT&T Bell Labaratories) são bastante famosos na história da ciência e da tecnologia, e da TI em particular. A pesquisa estatística sempre foi realizada com muita seriedade e também foi seriamente apoiada por todas as ferramentas de computador disponíveis (leia-se toneladas de código Fortran e Lisp).

O que mais tarde se tornou a linguagem S surgiu na década de 1970, por iniciativa e direção de John Chambers, como um conjunto de scripts que facilitava a “alimentação” de dados no código Fortran. Aqueles. O foco principal estava na tarefa de manipulação interativa de dados, compactação, facilidade de escrita e legibilidade do código e obtenção de resultados decentes em uma variedade de dispositivos, tabelas e gráficos.

A sintaxe da linguagem permite a construção de estruturas de dados quase arbitrariamente complexas, ferramentas para descrever tarefas e objetos estatísticos específicos - estatísticas. testes, modelos, etc.

Desde 1984, a língua adquiriu um nome, sua própria “Bíblia” (foi publicado um livro de Chambers e Beckers: S: Um ambiente interativo para análise de dados e gráficos), passou a conter por padrão um “conjunto de cavalheiros” quase completo de estatísticas e “cientistas probabilísticos” - distribuições, geradores de números aleatórios, testes estatísticos, muitas análises estatísticas padrão, trabalho com matrizes, etc., sem mencionar um sistema desenvolvido de gráficos científicos. O mais importante é que ele está disponível para usuários de todo o mundo a um preço bastante razoável.

Em 1988 (outro livro publicado A nova linguagem S) - modificado usando OOP, tudo virou objetos com valores padrão bem razoáveis, acessibilidade para modificação, elementos de autodocumentação, etc., etc.

Ao mesmo tempo, os laboratórios publicaram o código-fonte e o “Bell Lab” S tornou-se gratuito para estudantes e para uso científico. Tudo isso estava de alguma forma ligado à “deskulakização” da AT&T, mas eu não estava mais muito interessado nesses detalhes.

Existiram, e provavelmente ainda existem, implementações comerciais da linguagem S. eu me deparei S Plus E S2000. Foram apoiados por diferentes empresas em diferentes momentos, principalmente vivendo (vivendo?) devido ao apoio de empresas previamente criadas S formulários. Nestas versões pós-Bell S uma nova versão do mecanismo OOP apareceu, mas para o usuário puro era quase incruenta em termos de compatibilidade do código histórico.

R- a única implementação não comercial e completamente independente (do Bell original) da linguagem S.

E num acordo raro hoje em dia, de certa forma inimaginável para mim, os desenvolvedores das versões atuais do comercial S e sem fins lucrativos R apoiar a sua quase completa compatibilidade e continuidade.

E agora R

Por trás de qualquer fenômeno significativo nesta vida existe algum tipo de personalidade carismática. Porém, isso pode acontecer e esta é a definição do significado do fenômeno.

No caso de R, existem três dessas pessoas.
Já mencionei John Chambers.

Ross Ihaka, estudante e depois investigador do Departamento de Estatística da Universidade de Auckland, escolheu o tema da sua dissertação (que foi realizada no MIT, EUA) para estudar a possibilidade de construir uma máquina virtual (VM) para estatística. linguagens de programação. A linguagem intermediária escolhida foi Lisp (Lisp comum, CL) e implementa um protótipo de VM que “entende” pequenos subconjuntos de SAS E S.
Ross retornou a Oakland para concluir sua dissertação, onde logo conheceu Robert Gentleman e se interessou pelo projeto R.
Ross nunca defendeu sua dissertação, mas já possui diploma acadêmico de diversas universidades “com base no mérito combinado”. No ano passado recebeu o título e recebeu o cargo de Professor Associado (Professor Assistente) em sua universidade de origem.

Robert Gentleman, outro estatístico apaixonado por programação, originário do Canadá, durante um estágio na Universidade de Auckland (ele estava então trabalhando na Austrália), sugeriu que Ross “escrevesse alguma linguagem”.
Segundo a lenda que eu mesmo ouvi desses “pais fundadores”, em apenas quase um mês eles, num acesso de entusiasmo insano, reescreveram CL. quase todas as equipes S, incluindo uma poderosa biblioteca de modelagem linear.

Motor de computação R, seguindo as tradições do protótipo, foi escolhida a conhecida, geralmente aceita e gratuita biblioteca BLAS (com capacidade de usar ATLAS, etc. com a mesma interface).
Paul Murrel, um dos amigos mais próximos de Ross e também funcionário da Universidade de Oakland, saiu do seu caminho e escreveu (em C, ao que parece) um motor gráfico do zero que reproduz completamente a funcionalidade daquele em S.

O resultado foi um pacote gratuito e totalmente funcional que instantaneamente ganhou um lugar no processo educacional da Universidade de Oakland, totalmente consistente com as descrições dos livros muito detalhados e de alta qualidade de Chambers, que eram tradicionalmente publicados em brochuras e de qualidade de impressão média, mas eram baratos e acessíveis.
Vários grupos ativistas do movimento GNU (por exemplo, GIS) adotaram R como plataforma para computação científica.

Mas verdadeiramente a maior fama R adquirido em bioinformática quando um dos “pais” Robert Gentleman, então envolvido no trabalho da empresa Affimmetrix, duplicou todas as funcionalidades do software comercial da empresa e lançou (bem, mais de um, claro) o aberto projeto fonte Biocondutor. Atualmente Biocondutoré o líder indiscutível em bioinformática de código aberto para todas as “ômicas” (genômica, proteômica, metabolômica, etc.).

Naturalmente, a linguagem de interface única para esta profusão de fantasias bioinformáticas tornou-se R.

O círculo se completou quando o aposentado Chambers, o criador da linguagem S, tornou-se membro pleno do grupo de desenvolvedores ativos R.

Por que eu o amo (lista)

  1. Interatividade, “Programação com dados” – meu estilo de trabalho favorito
  2. Linguagem elegante (para amadores) - adoro listas, data frames, programação funcional e funções lambda (a-la) Liberdade de expressão: o mesmo problema pode ser resolvido de dez maneiras (mitiga a sensação de rotina)
  3. “Olha para este mundo sobriamente” - raramente “trava” ou “suspende” alguém, operações lógicas com dados faltantes, tratamento de erros em tempo de execução (try-error), fácil troca com o sistema no nível de E/S padrão, etc.
  4. Um conjunto completo de procedimentos estatísticos prontos para uso
  5. Bem documentado e bem mantido - compatibilidade, continuidade, etc.
  6. Reuniu ao meu redor uma comunidade profissional humanamente agradável (fóruns, conferências de usuários, etc.)
  7. Interface bem documentada para bibliotecas externas e funções em qualquer coisa - Fortran, C, Java. Daí um mar de bibliotecas bem documentadas sobre todos os aspectos da estatística e ciência de dados em quase todos os campos da ciência, mas com foco principal em bioinformática/bioestatística; tudo é atualizado regular e corretamente, se houver vontade do autor para isso
  8. Falta de uma GUI obrigatória na “configuração básica” - Bem, eu não sou uma pessoa que gosta de “mouse”!
Fora da lista: estou satisfeito porque minha principal ferramenta de trabalho tem... alma.
Isso é o que estou tentando mostrar em meu artigo.

Por que e como eu uso (exemplos)

Comecei a escrever nesta seção, mas parei.
Caso contrário, eu nunca teria terminado.
Ah, provavelmente algum tempo depois.

Mitos e verdade

R lento
R é “fino”, usa bibliotecas blas/lapack/atlas para cálculos, tente escrever algo mais rápido do que esses bons e velhos “burros de carga” do Fortran (muitas vezes). Todas as funções críticas, via de regra, usam operações vetoriais e são implementadas em COM.
R usa recursos de computação de forma irracional, em particular memória
Sim, os desenvolvedores admitem esse pecado. Mas o tempo de trabalho de um especialista é agora muito mais caro que o hardware. Descarregue os brinquedos de um computador de trabalho moderno e você não terá problemas com R com a maioria dos conjuntos de dados reais.
Software livre pode não ser confiável
Talvez: Fortran, Linux, C, Lisp, Java etc.
Em vez de um epílogo
Conforme dito acima, a postagem abaixo é na verdade uma tradução da minha apresentação para um público-alvo bastante específico, e descreverei brevemente esse público.

Muitas empresas de TI “limpas” terão de conhecer essas pessoas, uma vez que a produção alimentar há muito que compete com o petróleo e outros recursos energéticos para atrair capital e gerar lucros. E a capacidade do mercado de bioinformática em medicina e farmacologia é limitada, não importa como se olhe para ela.

Então, meu público são pessoas com formação básica em genética e melhoramento, medicina veterinária e, menos frequentemente, biologia (principalmente molecular). Caras e tias (mais destas últimas), de 20 a 30 anos... programando (!) no FORTRANe ou VB, notoriamente gerenciando tabelas do Excel com 100 mil linhas/colunas e periodicamente “descartando” suas tarefas (e sua programação) em seu cluster de computação Linux com mais de 500 núcleos com 12 TB de memória compartilhada e de tempos em tempos exigindo a expansão da memória do disco por outro dez terabytes.

A base metodológica é uma mistura explosiva de análises de variância tão antigas quanto o mundo, com modelos mistos resolvidos apenas pelo método de máxima verossimilhança, redes Bayesianas de “fusão de cérebros”, etc.

Dados - tabelas de dados de unidades a dezenas de milhares de linhas, às vezes incluindo de 1 a 5 colunas com fenótipos, mas cada vez mais frequentemente - dezenas ou centenas de colunas “Ka” de variáveis ​​​​que são fracamente correlacionadas entre si e com fenótipos.

Pois é, eles também têm uma “boa tradição” de olhar tudo em termos de laços familiares (afinal, genética). Os laços de parentesco são tradicionalmente apresentados na forma de uma matriz de “laços de parentesco” (pedigree) com dimensões de, por exemplo, 40.000 x 40.000 (isto se houver 40.000 animais). Bem, ou (por enquanto, felizmente, apenas no projeto) 20.000.000 x 20.000.000 - isso é para “cobrir” com um único modelo todos os 20 milhões de animais históricos disponíveis no banco de dados ( DB2, se alguém estiver interessado, e mesmo o Cobol ainda não foi “cortado” de todos os lugares...)

Em mesas repletas de literatura sobre (ao mesmo tempo) Fortran, Java, C#, Scala, Octavia, Linux para Leigos você pode reconhecer recém-formados em bioinformática. Mas, de alguma forma, rapidamente muitos deles deixam a ciência para se tornarem “codificadores”.

Porém, também conheço um caso de movimento reverso. Então R será útil para muitos mais.

Gostaria de falar sobre a utilização do ambiente gratuito de análise estatística R. Considero-o uma alternativa aos pacotes estatísticos como o SPSS Statistics. Para meu profundo pesar, é completamente desconhecido na imensidão da nossa Pátria, mas em vão. Acredito que a capacidade de escrever procedimentos adicionais de análise estatística em S torna o R uma ferramenta útil de análise de dados.

No semestre da primavera de 2010, tive a oportunidade de ministrar palestras e aulas práticas no curso “Análise de Dados Estatísticos” para alunos do Departamento de Sistemas Inteligentes da Universidade Estatal Russa de Humanidades.

Anteriormente, meus alunos fizeram um curso semestral em teoria das probabilidades, cobrindo os conceitos básicos de espaços de probabilidade discretos, probabilidades condicionais, teorema de Bayes, lei dos grandes números, algumas informações básicas sobre a lei normal e o Teorema do Limite Central.

Cerca de cinco anos atrás, eu já estava dando aulas no curso semestral (então combinado) “Fundamentos da Teoria das Probabilidades e Estatística Matemática”, então ampliei minhas anotações (dadas aos alunos antes de cada aula) sobre estatística. Agora que a Universidade Estatal Russa de Humanidades tem um servidor estudantil isdwiki.rsuh.ru do departamento, eu os carrego simultaneamente para FTP.

Surgiu a dúvida: qual programa devo utilizar para ministrar aulas práticas em uma aula de informática? O Microsoft Excel, frequentemente utilizado, foi rejeitado tanto por ser proprietário quanto por implementar incorretamente alguns procedimentos estatísticos. Você pode ler sobre isso, por exemplo, no livro de A. A. Makarov e Yu. N. Tyurin “Análise estatística de dados em um computador”. As planilhas Calc do pacote de escritório gratuito Openoffice.org foram russificadas de modo que dificilmente consigo encontrar a função necessária (seus nomes também foram abreviados de forma repugnante).

O pacote mais comumente usado é o SPSS Statistics. O SPSS foi agora adquirido pela IBM. Dentre as vantagens do IBM SPSS Statistics gostaria de destacar:

  • Carregamento conveniente de dados em diversos formatos (Excel, SAS, via OLE DB, via ODBC Direct Driver);
  • Disponibilidade de uma linguagem de comando e de um extenso sistema de menus para acesso direto a diversos procedimentos de análise estatística;
  • Meios gráficos de exibição de resultados;
  • Módulo integrado de Statistics Coach que sugere interativamente um método de análise adequado.
As desvantagens do IBM SPSS Statistics, na minha opinião, são:
  • Pagamento inclusive para estudantes;
  • A necessidade de obtenção de módulos (pagos adicionalmente) contendo procedimentos especiais;
  • Suporta apenas sistemas operacionais Linux de 32 bits, embora o Windows suporte 32 e 64 bits.
Como alternativa, escolhi o . Este sistema começou a ser desenvolvido através dos esforços de Robert Gentleman e Ross Ihak no Departamento de Estatística da Universidade de Melbourne em 1995. As primeiras letras dos nomes dos autores determinaram o título. Posteriormente, importantes estatísticos envolveram-se no desenvolvimento e expansão deste sistema.

Considero as vantagens do sistema em discussão:

  • Distribuição do programa sob a Licença Pública GNU;
  • Disponibilidade de código-fonte e módulos binários na extensa rede de repositórios CRAN (The Comprehensive R Archive Network). Para a Rússia, este é o servidor cran.gis-lab.info;
  • Disponibilidade de pacote de instalação para Windows (funciona no Vista de 32 e 64 bits). Aconteceu por acaso que a instalação não requer direitos de administrador no Windows XP;
  • Capacidade de instalar a partir de um repositório no Linux (funciona para mim na versão de 64 bits do Ubuntu 9.10);
  • Disponibilidade de linguagem de programação própria para procedimentos estatísticos R, que já se tornou um padrão. É, por exemplo, totalmente suportado pelo novo IBM SPSS Statistics Developer;
  • Esta linguagem é uma extensão da linguagem S desenvolvida no Bell Labs, que atualmente forma a base do sistema comercial S-PLUS. A maioria dos programas escritos para S-PLUS podem ser facilmente executados no ambiente R;
  • Capacidade de trocar dados com planilhas;
  • Possibilidade de salvar todo o histórico de cálculos para fins de documentação.
Para a primeira aula foram preparados CDs, nos quais foram gravados arquivos de instalação, documentação e manuais. Vou contar mais sobre este último. CRAN fornece guias de usuário detalhados sobre instalação, linguagem R (e seu subconjunto S), gravação de procedimentos estatísticos adicionais e exportação e importação de dados. A seção Documentação Contribuída contém um grande número de publicações de professores de estatística que utilizam este pacote no processo educacional. Infelizmente, não há nada em russo, embora, por exemplo, haja até um em polonês. Entre os livros em inglês, gostaria de mencionar “Using R for introdutory Statistics” do Professor John Verzani da City University of New York e “Introduction to the R project for Statistical Computing” do Professor Rossiter (Holanda) do International Instituto de Geoinformática e Observações da Terra.

A primeira aula foi dedicada à instalação e aprendizado do uso do pacote, familiarização com a sintaxe da linguagem R. O cálculo de integrais pelo método Monte Carlo foi utilizado como tarefa de teste. Aqui está um exemplo de cálculo da probabilidade de r.v. com distribuição exponencial com parâmetro 3, considere um valor menor que 0,5 (10.000 é o número de tentativas).
> x=runif(10000,0,0,5)
> y=runif(10000,0,3)
>t=s<3*exp(-3*x)
> você=x[t]
>v=s[t]
> plotar(você,v)
> i=0,5*3*comprimento(u)/10000

As duas primeiras linhas especificam uma distribuição uniforme de pontos no retângulo x, então os pontos que se enquadram no gráfico de densidade exponencial 3*exp(-3*x) são selecionados, a função de plotagem exibe os pontos na janela de saída gráfica e finalmente a integral necessária é calculada.
A segunda aula foi dedicada ao cálculo de estatística descritiva (quantis, mediana, média, variância, correlação e covariância) e à produção de gráficos (histogramas, box-and-whiskers).
Nas aulas subsequentes foi utilizada a biblioteca Rcmdr. Esta é uma interface gráfica de usuário (GUI) para o ambiente R. A biblioteca foi criada pelos esforços do professor John Fox da Universidade McMaster, no Canadá.

A instalação desta biblioteca é realizada executando o comando install.packages("Rcmdr", dependencies=TRUE) dentro do ambiente R. Se o ambiente em si for um intérprete da linguagem R, então o complemento "Rcmdr" é uma janela adicional equipado com um sistema de menu contendo um grande número de comandos correspondentes a procedimentos estatísticos padrão. Isto é especialmente conveniente para cursos onde o principal é ensinar o aluno a apertar botões (para minha tristeza, estes estão se tornando cada vez mais comuns).

As notas do seminário do meu curso anterior foram ampliadas. Eles também estão disponíveis via FTP no site isdwiki.rsuh.ru. Essas notas continham tabelas de valores críticos que eram utilizadas para cálculos no quadro. Este ano, os alunos foram incentivados a resolver estes problemas no computador e também a verificar as tabelas utilizando as aproximações (normais) também fornecidas nas notas.

Houve também alguns erros meus. Por exemplo, percebi tarde demais que o Rcmdr permite importar dados de pacotes baixados, portanto, amostras relativamente grandes foram processadas apenas em aulas de análise de regressão. Ao apresentar testes não paramétricos, os alunos inseriram os dados manualmente usando minhas anotações. Outra desvantagem, pelo que entendo agora, foi o número insuficiente de tarefas de casa para escrever programas bastante complexos na linguagem R.

Deve-se notar que vários alunos do último ano assistiram às minhas aulas, e alguns baixaram materiais de palestras e seminários. Os alunos do Departamento de Sistemas Inteligentes da Universidade Estatal Russa para as Humanidades recebem formação fundamental em matemática e programação, pelo que a utilização do ambiente R (em vez de folhas de cálculo e pacotes estatísticos com procedimentos estatísticos fixos) parece-me muito útil.

Se você se depara com a tarefa de estudar estatística e, especialmente, de escrever procedimentos não padronizados para processamento de dados estatísticos, recomendo voltar sua atenção para o pacote R.

Recentemente me deparei com esse fenômeno - muitas pessoas já ouviram falar da linguagem de programação R. Mas muito poucas pessoas sabem o que é.

Como sou falante nativo desse idioma e tenho interesse em sua popularização, tentarei abordar um pouco o tema neste post. Isso vai ser interessante!

O plano é simples:

1) Qual é a linguagem R

2) Popularidade na Rússia

Qual é a linguagem R

R (wiki) é uma linguagem de programação para processamento de dados estatísticos e gráficos, e um ambiente de computação gratuito e de código aberto sob o Projeto GNU.

Na nossa opinião: A linguagem é ideal para pesquisar padrões de mercado. Grátis, rápido e grátis.

Ele permite que você conduza estudos estatísticos de tudo o que puder. Ao longo dos anos de sua existência, dezenas e centenas de extensões surgiram para resolver quase todos os problemas de aplicativos.

Esta é a linguagem de programação MAIS popular para traders algorítmicos no Ocidente. Isso está na vanguarda do que está disponível atualmente em aprendizado de máquina e estatística.

Para escrever programas em R, basta baixar o R-Studio e pronto



Há algum tempo, como parte da popularização do idioma, gravei um minicurso “R para todos”. Livre. Veja como tudo funciona facilmente e com que rapidez você pode escrever scripts nele. Isso é simplesmente ótimo!

Popularidade na Rússia

Deixa muito a desejar.

Se no Ocidente 90% de todas as pesquisas são realizadas nessa linguagem, na Rússia uma rara semana se passa no SmartLab, na qual você pode encontrar pelo menos uma menção a ele. Aqueles. o número de pessoas que conhecem R é criticamente pequeno.

Entre as razões para esta situação: a falta de manuais em russo até recentemente, a falta de cursos de formação, a baixa alfabetização dos comerciantes e muito mais. Não vamos falar sobre isso.

A única coisa importante é que a popularidade desta língua na Rússia e na CEI está crescendo continuamente.

Os usuários russos estão cansados ​​de APIs quebradas e sistemas de negociação caros. A linguagem R livre, no contexto da negociação, ocupará muito em breve o seu devido lugar no seu kit de ferramentas. Junte-se a nós!

Isso é tudo por hoje. Espero que tenha sido interessante.

Assista ao meu curso gratuito para ver como é fácil escrever código. Escreva robôs!

Materiais mais recentes na seção:

Polímeros de cristal líquido
Polímeros de cristal líquido

Ministério da Educação e Ciência da Federação Russa Kazan (região do Volga) Universidade Federal do Instituto Químico em homenagem. AM Butlerov...

O período inicial da Guerra Fria, onde
O período inicial da Guerra Fria, onde

Os principais acontecimentos da política internacional da segunda metade do século XX foram determinados pela Guerra Fria entre duas superpotências - a URSS e os EUA. Dela...

Fórmulas e unidades de medida Sistemas tradicionais de medidas
Fórmulas e unidades de medida Sistemas tradicionais de medidas

Ao digitar texto no editor Word, é recomendável escrever fórmulas usando o editor de fórmulas integrado, salvando nele as configurações especificadas por...