UFFS Universidade Federal da Fronteira Sul Campus Cerro Largo PROJETO DE EXTENSÃO Software R: capacitação em análise estatística de dados utilizando um software livre Fonte: https://www.r-project.org/ Blog do projeto: https://softwarelivrer.wordpress.com/equipe/ Equipe: Coordenadora: Profe. Iara Endruweit Battisti (iara.battisti@uffs.edu.br) Colaboradores: Profa. Denize Reis Prof. Erikson Kaszubowski Prof. Reneo Prediger Profa. Tatiane Chassot Bolsista: Jéssica Aguiar aluna de Engenharia Ambiental (jetimeaguiar@hotmail.com) Objetivo Geral: O objetivo principal do projeto é atender alunos, bolsistas, comunidade interna e externa através de cursos de capacitação na análise de dados primários ou secundários utilizando um software livre de análise estatística, especificamente o software R. Ainda, objetiva-se a troca de experiências vinculando dados provindos de diferentes pesquisas dos participantes. Curso Básico Página 1
Material didático: - formato digital Avaliação: Se dará de três formas: - participação de forma quantitativa: presença nos encontros; - participação de forma qualitativa: participação efetiva nas atividades dos encontros; - avaliação do curso, do projeto e auto-avaliação. Certificação: Certificação para participantes dos cursos executados no projeto, contabilizando 40h para aqueles que participarem de no mínimo 75% das atividades de cada curso. Público: Com conhecimento de Estatística Básica. Encontros: 12/08/15 19/08/15 16/09/15 23/09/15 07/10/15 Curso Básico Página 2
Tópicos - Curso Básico: MÓDULO 1 INTRODUÇÃO AO RSTUDIO 1.1 Download e instalação do R e RStudio 1.2 Interface do RStudio: comando de linha, edição de scripts, variáveis e histórico, gráfico e ajuda 1.3 Importando dados pelo comando de linha e pela interface gráfica 1.4 Instalação de pacotes da CRAN pelo comando de linha e interface gráfica 1.5 Uso básico do comando de linha: criação e inspeção de objetos no R 1.6 Comandos para visualização de dados brutos; uso da interface para visualização dos dados brutos 1.7 Operações simples no comando de linha 1.8 Acesso a vetores e elementos em matrizes de dados 1.9 Operações com vetores e matrizes 1.10 Reformatar dados 1.11 Filtrar casos e variáveis 1.12 Combinar variáveis 1.13 Agrupar variáveis 1.14 Combinar conjuntos de dados diferentes MÓDULO 2 ESTATÍSTICA DESCRITIVA 2.1 Tabelas univariadas e bivariadas 2.2 Gráficos univariados e bivariados 2.3 Medidas de posição 2.4 Medidas de dispersão 2.5 Medidas separatrizes MÓDULO 3 INFERÊNCIA ESTATÍSTICA 3.1 Intervalo de confiança 3.2 Teste t para comparação entre duas médias 3.2 Teste Z para comparação entre duas proporções MÓDULO 4 TESTE QUI-QUADRADO 4.1 Para uma variável (aderência) 4.2 Para duas variáveis (associação) 4.3 Medidas de magnitude Curso Básico Página 3
MÓDULO 5 MODELOS DE REGRESSÃO 5.1 Correlação entre duas variáveis 5.2 Regressão simples e relação com coeficiente de correlação 5.3 Noções de regressão multivariada: covariáveis categoriais, covariáveis contínuas e interações 5.4 Noções de ANOVA e ANCOVA 5.5 Noções de análises diagnósticas: resíduos, pontos influentes Paralelamente, objetiva-se a troca de experiências vinculando dados provindos de diferentes pesquisas dos participantes. Link para download do software R e RStudio: www.r-project.org versão 3.2.1 www.rstudio.com/products/rstudio/download versão 0.99.467 Link para o laboratório OpenIntro www.openintro.org Exercícios: Link para o banco de dados disponibilizado pela profa Monize Visentini Link para o questionário referente ao banco de dados disponibilizado pela profa Monize Visentini Curso Básico Página 4
MÓDULO 1 INTRODUÇÃO AO RSTUDIO Instalação do R e RStudio através dos arquivos executáveis R-3.2.1-win.exe RStudio-0.99.467.exe R é o software Rstudio é uma interface amigável para o R Acessar OpenIntro através do link Curso Básico Página 5
Clicar em O menu abaixo será apresentado Clicar em Então um arquivo PDF será apresentado. Seguiremos esse arquivo PDF para fazermos a introdução ao R e RStudio os2_lab_00a_port.pdf Curso Básico Página 6
Conhecendo cada painel (janela) do RStudio: PAINEIS DO RSTUDIO Digitando um comando na linha de comando (painel console) Na linha de comando tem > aguardando um comando. Digitando um comando, logo abre uma janela com opções para esse comando, por exemplo: - para o comando summary: Curso Básico Página 7
E logo depois aparece uma outra janela (amarela) com informações sobre a função, como o que ela faz, quais seus argumentos, etc. Se a janela de sugestões não aparecer, basta aperta CTRL+Espaço. Para limpar o console: CTRL+L ou menu Edit e clicar em clear console. Criando um Script (painel de script) Clicar no ícone com um + no canto esquerdo da barra de ferramentas ou ir em 'File -> New File -> R Script' Uma nova janela acima da janela do console será aberta. Podemos executar diretamente pela interface gráfica, sem precisar carregá-lo no comando de linha. Por exemplo, se dermos dois comandos simples no script: amostra = rnorm(10, 5, 3) mediaamostral = mean(amostra) Após clicar no botão 'Source' no canto superior direito da janela do script, então todos os comandos serão executados. OBS1: Podemos ver no painel direito superior: as variáveis 'amostra' e 'mediaamostral' com seus valores. Painel direito superior No painel direito superior, a aba 'Environment' tem alguns elementos interessantes. Por exemplo: - o ícone do disquete permite salvar as variáveis do espaço de trabalho; - e a pastinha permite carregá-la. O ícone 'Import dataset' permite importar dados em fomato texto (csv, por exemplo). A vassoura limpa o espaço de trabalho. Na aba History' aparece uma lista dos comandos já digitados. Curso Básico Página 8
Também, podemos fazer uma busca no histórico. Digitando o comando (palavra) de interesse na caixinha de texto com uma lupa. Se digitarem algo ali, o RStudio vai automaticamente encontrar comandos que tenham as letras digitadas. É uma boa maneira de recuperar um comando utilizado no comando de linha para passar para um script (utilizando o ícone to source ) para lembrar qual comando foi utilizado para gerar um gráfico. Painel direito inferior A aba 'Files' serve para navegar os dados do computador. Se clicar num arquivo compatível com o RStudio, ele abre imediatamente. Na aba Plots são mostrados os gráficos. Por exemplo, se digitarmos um comando para gerar um histograma no comando de linha: hist(rnorm(50, 10, 5), border='white', col='skyblue', main='histograma'). Então, o RStudio irá gerar o gráfico. OBS: É possível salvar o gráfico na aba Export. Na janela 'Plots' tem duas flechas que servem para navegar o histórico de gráficos. Por exemplo: Digitar os seguintes comandos no arquivo de script e depois cliquem em 'Source': X <- rnorm(50, 10, 5) Y <- 10 + 5*X + rnorm(50, 0, 10) plot(x, Y, pch=19, col='skyblue') Então é gerado um gráfico de dispersão simplinho. Assim, não é necessário salvar um gráfico imediatamente. É possível ir e voltar entre os gráficos criados durante uma sessão. O botão 'Zoom' abre o gráfico numa nova janela, um pouco maior. O botão com um 'X' serve para apagar o gráfico atual e a vassoura limpa todo o histórico de gráficos. A aba 'Packages', facilita carregar e instalar novos pacotes para o R. Curso Básico Página 9
Help O help é acessado clicando no nome de um pacote ou usando o comando 'help()' ou buscando direto dentro da aba 'Help'. Por exemplo, se digitarmos: help(plot) O RStudio abrirá a aba help com o arquivo de ajuda do comando 'plot'. ABRIR ARQUIVO DE DADOS Vamos utilizar como exemplo o banco de dados do link: http://www.stat.columbia.edu/~gelman/bda.course/nycdata.csv Ler os dados pela linha de comando: dados <- read.csv('http://www.stat.columbia.edu/~gelman/bda.course/nycdata.csv', sep=',', header = T) Ou Ler os dados no Environment pelo 'Import Dataset... From URL', conforme abaixo: Para entender o comando: - read.csv é porque o tipo de arquivo é csv (arquivo texto separado por vírgula); Curso Básico Página 10
- sep=',' é para identificar o caracter separator; - 'header' é para identificar a primeira linha como nome de variável. OBS: O 'Open file' abre o arquivo para edição, mas não carrega os dados na memória como banco de dados. SALVAR ARQUIVO DE DADOS O banco de dados que o R armazena na memória pode ser salvo, junto com todo o ambiente, usando o ícone de disquete na aba 'Environment' (salva como arquivo.rdata), e depois carregado pelo ícone de pasta (Abrir dados...) na mesma aba. Ou Outra opção com mesmo efeito é utilizar o comando save('nomedoobjeto', file='nomedoarquivo.rdata') (o nome do objeto pode ser uma lista de objetos para salvar mais de um objeto do ambiente, 'list=('objeto1', 'objeto2')'. Para carregar um arquivo RData no ambiente, o comando é load('arquivo.rdata'), desde que o arquivo esteja no diretório de trabalho do R. Ou Outra opção é salvar só o objeto que contém o banco de dados como arquivo.csv, com o write.csv('nomedoobjeto', file='nomedoarquivo.rdata'). O objeto, porém, precisa ser uma matriz ou data frame, ou pelo menos ser convertível para esse tipo de objeto. OBJETOS Atribuição: 'x = y' é equivalente a 'x <- y'. Assim, uma variável com nome 'x' é criada e dada a ela o valor da variável 'y''. Por exemplo, podemos criar uma variável 'dados' usando o comando 'read.csv': dados <- read.csv('http://www.stat.columbia.edu/~gelman/bda.course/nycdata.csv', sep=',', header = T) Curso Básico Página 11
MATRIZ Para acessar a coluna cujo nome é 'borough' podemos usar o comando dados$borough. Caso não sabemos o nome das variáveis, podemos usar o comando: names(dados) ou colnames(dados). Para alterar o nome de uma variável podemos usar comando 'colnames' e a notação para seleção de elemento de vetor: colnames(dados)[8] = 'distrito' Então, com o nomes das variáveis, podemos acessá-las diretamente usando o $, como por exemplo: dados$distrito. Ou então podemos usar a notação de matriz do R: dados[8] ou dados[,8] O interessante da matriz é que podemos selecionar várias variáveis ao mesmo tempo. Por exemplo: dados[,7:8] Para entender o comando: - o nome da variável que armazena o banco de dados - abre colchetes para indicar que queremos 'recortar' a matriz de dados - depois do colchete, um número indicando que linha queremos recortar. Se não colocamos nenhum número, o R entende que é para todas as linhas - depois, vírgula - depois da vírgula, a coluna que desejamos recortar. Novamente, se deixamos em branco, o R entende que são todas as colunas Se pedimos uma sequência, usando dois-pontos, o R vai pegar todas as colunas naquele intervalo (7-8, nesse caso) Também, podemos excluir observações ou variáveis, usando números negativos. Por exemplo, se queremos todas as variáveis, menos as duas últimas, basta acrescentar um '-': dados[,-(7:8)] Curso Básico Página 12
LINHA DE COMANDO Capacitação em R e RStudio - 2015 Porém não precisamos acessar as variáveis usando $ ou [,]. Podemos usar o comando attach(dados) para acessar os dados e variáveis. Depois, na aba Environmet (canto superior direito do RStudio) clica no botão 'Global environment' e seleciona o nome 'dados' que é o espaço dessa variável. Assim, aparecerá a lista de variáveis que foram anexadas ao espaço de trabalho a partir do banco 'dados'. Resultado: O comando summary resume os dados da variável aleatória, se for qualitativa mostra a frequência absoluta das categorias e se for quantitativa apresenta medidas descritivas. Por exemplo: - para borough, que é uma variável aleatória qualitativa: bronx brooklyn manhattan queens staten 25 36 39 64 12 - para pop.total, que é uma variável aleatória quantitativa: Min. 1st Qu. Median Mean 3rd Qu. Max. 513 25780 40730 45810 64100 106200 Curso Básico Página 13
O comando 'tapply' agrega os dados por nível da variável qualitativa. Por exemplo, para saber a população total de cada distrito: - tapply(pop.total, borough, sum) bronx brooklyn manhattan queens staten 1327690 2416416 1523160 2350769 443728 Se queremos saber a população média de cada distrito: - tapply(median.household.income, distrito, mean) Mas como um regsitro possui NA: - tapply(median.household.income, distrito, mean, na.rm=t) OBS: Quando usamos o parâmetro na.rm=t, indicamos para o comando ignorar os NAs nos dados e calcular a média assim mesmo. bronx brooklyn manhattan queens staten 29851.44 33296.39 51452.92 46913.32 53403.58 O comando subset() é usado para trabalhar com um subconjunto de dados. Por exemplo: só com dados do Bronx: - dadosbronx <- subset(dados, borough=='bronx') Assim, foi criado um novo objeto que contém só os dados do Bronx. É possível combinar vários critérios para criar os subgrupos. Por exemplo, para criar um subgrupo com os dados de todos os distritos MENOS o Bronx e com população branca acima de 50%: - novosub <- subset(nycdata, distrito!= 'bronx' & (pop.white/pop.total)>0.5) Operadores booleanos: ==,!=, >, etc Curso Básico Página 14
Gráficos: Vamos elaborar um histograma do número de habitantes por região de CEP em NY: - hist(nycdata$pop.total) Resultado: Podemos definir o número de intervalos (colunas) do histograma: - hist(nycdata$pop.total, breaks = 5) Por padrão, o R coloca os nomes dos eixos em inglês. Para alterar os nomes dos eixos: hist(nycdata$pop.total, breaks = 5, ylab='frequência', xlab='população', main='histograma da População por CEP') Curso Básico Página 15
Entendendo o comando: -'breaks' controla o número de colunas do histograma; - 'ylab' define o nome do eixo y; - 'xlab', define o nome do eixo x; - 'main' define o título do histograma. OBS: Esses parâmetros servem para os outros comandos gráficos. O parâmetro 'col' controla a cor e 'border' controla a cor da borda das colunas do histograma, sendo definido por número ou por nome, em inglês. Por exemplo: - hist(nycdata$pop.total, breaks = 5, ylab='frequência', xlab='população', main='histograma da População por CEP', col='skyblue', border='white') Curso Básico Página 16
Podemos ter interesse em sobrepor uma curva sobre o histograma. Por exemplo, para comparar com uma distribuição teórica esperada: hist(nycdata$pop.total, breaks = 5, ylab='prob.', xlab='população', main='histograma da População por CEP', col='#aabbcc', border='white', prob=t) Inserir a curva normal no histograma: curve(dnorm(x, mean(nycdata$pop.total, na.rm=t), sd(nycdata$pop.total, na.rm=t)), add=t) Entendendo o comando: - 'dnorm' especifica a densidade de probabilidade da curva teórica que queremos plotar; - dentro do 'dnorm': 'x' é uma referência ao valores do eixo x; mean(...) computa a média amostral para usar como parâmetro do dnorm e sd(...) computa o desvio padrão amostral, também para servir de parâmetro para dnorm; - a opção 'na.rm' nesses comando serve para não dar erro caso tenha missings; - 'add=t' força a curva a ser adicionada no gráfico ativo. Curso Básico Página 17
Curso Básico Página 18