Buscar

Curso de R para iniciantes

Prévia do material em texto

Introdução à Análise de Dados 
Utilizando o Ambiente R 
Marcelo de Souza Lauretto 
Sistemas de Informação – EACH 
marcelolauretto@usp.br 
 
Curso de Verão EACH/USP 
Fevereiro / 2015 
Referências 
• R Core Team. R: A Language and Environment for 
Statistical Computing. R Foundation for Statistical 
Computing, Vienna, Austria, 2014. 
http://www.R-project.org 
• R. Ihaka. R: Past and Future History. Statistics 
Department, The University of Auckland, Auckland, New 
Zealand. 
http://cran.r-project.org/doc/html/interface98-paper/paper.html 
• J.Fox, M. Bouchet-Valat. Getting Started With the R 
Commander. Version 2.1-0. 
http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/Getting-Started-with-
the-Rcmdr.pdf 
 
Referências 
• P. J. Ribeiro Junior, Introdução ao Ambiente 
Estatístico R. 2011. 
http://www.leg.ufpr.br/~paulojus/embrapa/Rembrapa/ 
• W. N. Venables, D.M.Smith and the R Core Team. An 
Introduction to R. Version 3.1.2, 2014. 
http://www.cran.r-project.org/doc/manuals/R-intro.pdf 
 
Preâmbulo 
Fonte: 
M. J. Fontelles, Bioestatística Aplicada à Pesquisa Experimental. São Paulo, 
Ed. Livraria da Física, 2012. (Vol. 1, p. 188). 
Tipos de variáveis em uma análise típica 
Pré-processamento de dados 
• Etapas básicas* (Han & Kamber, 2006): 
– Limpeza: eliminação de caracteres espúrios, padronização 
de formatos, redução de inconsistências, imputação de 
dados faltantes; 
– Integração: Compilação das informações a partir de bases 
de dados heterogêneas; 
– Transformação: Conversão de tipo (numérico  categórico 
ou vice-versa), suavização (remoção de ruídos), 
agrupamentos de valores em faixas, normalização de 
variáveis, criação de novos atributos, etc. 
– Redução de dimensionalidade, discretização. 
*A real necessidade de algumas atividades depende do problema e da 
modelagem de interesse. 
J. Han, M. Kamber. Data Mining: Concepts and Techinques, 2nd Edition, 
Illinois USA: Elsevier, 2006 
R: definição e história 
• R é uma linguagem e um ambiente de desenvolvimento 
voltado principalmente para computação estatística 
(inferência, simulações, data mining, etc) e gráficos. 
• Desenvolvido originalmente por Ross Ihaka e Robert 
Gentleman (Depto Estatística da Universidade de 
Auckland, Nova Zelândia). 
• Inspirado em duas linguagens: 
– S (John Chambers e colegas – Bell Labs): sintaxe 
– Scheme (Hal Abelson and Gerald Sussman): implementação e 
semântica 
• R está disponível como um software livre, nos termos da 
GNU GPL (General Public License). 
– Windows, Linux, OS X (Mac) 
O Projeto R 
• Software e documentação disponível em 
www.r-project.org 
• Conteúdo geral do site: 
– Sobre o R 
– Download, packages: 
• CRAN (Comprehensive R Archive Network) 
– Documentação 
• Manuals 
• FAQs (Frequently Asked Questions) 
– Ex: como citar o R. 
– Informações suplementares: 
• CRAN Task views: guias para pacotes e funções úteis para certas 
áreas/disciplinas 
• Ferramenta de busca no site (opção Search), muito útil 
R Commander 
R Commander 
• Interface gráfica para análises estatísticas básicas 
– Comandos R são gerados e executados via menus 
 
• Pacote Rcmdr 
– Instalação: dentro do ambiente R: 
• install.packages('Rcmdr') 
– Chamada: 
• library(Rcmdr) 
 
 
• 1a chamada do Rcmdr: 
– Instalar pacotes adicionais 
 
• Janela do R Commander: 
Comandos R gerados 
pela interface 
Resultados impressos 
Mensagens de erro, 
avisos e outras notas 
Configuração dos quadros 
• Entrada de dados no R Commander 
– Digitação manual 
– Leitura de arquivos-texto 
– Leitura de dados de pacotes 
• Arquivo-texto: 
– Exemplo: Nations.txt 
(subdiretório etc do pacote Rcmdr) 
Cabeçalho (nomes das 
variáveis) 
Registros (um por linha) Separadores de campos (espaços) 
NA = missing values 
• Leitura do arquivo Nations.txt: 
 
 
 
 
 
 
 
• TFR: total fertility rate (children/woman) 
• contraception: rate of contraceptive among 
married women (%) 
• infant.mortality: infant mortality rate 
(per 1000 live births) 
• GDP: gross domestic product per capita 
(US$) 
• Edição e visualização dos dados 
• Sumários gerais 
• Sumários numéricos 
• Sumários numéricos agrupados 
• Histograma 
infant.mortality
fr
e
q
u
e
n
cy
0 50 100 150
0
2
0
4
0
6
0
8
0
• Histogramas por grupos 
region = Africa
infant.mortality
fr
e
q
u
e
n
c
y
0 50 100 150
0
1
5
3
0
region = Americas
infant.mortality
fr
e
q
u
e
n
c
y
0 50 100 150
0
1
5
3
0
region = Asia
infant.mortality
fr
e
q
u
e
n
c
y
0 50 100 150
0
1
5
3
0
region = Europe
infant.mortality
fr
e
q
u
e
n
c
y
0 50 100 150
0
1
5
3
0
region = Oceania
infant.mortality
fr
e
q
u
e
n
c
y
0 50 100 150
0
1
5
3
0
• Histogramas por grupos 
• Diagrama em caixa (Box-plot) 
• Diagrama em caixa (Box-plot): interpretação 
Fonte: M. M. Reis, Estatística – Diagramas em Caixas. http://www.inf.ufsc.br/~marcelo/AED06.pdf 
Md: Mediana 
Qi: quartil inferior 
Qs: quartil superior 
(Qs – Qi): intervalo inter-quartil 
Informações de interesse: 
- Simetria 
- Dispersão 
- Dados discrepantes 
- Comparação entre grupos 
• Gráfico de dispersão (scatterplot) 
• Gráfico de dispersão (scatterplot) 
50 100 200 500 1000 2000 5000 20000 50000
2
5
10
20
50
10
0
20
0
GDP
in
fa
nt
.m
or
ta
lit
y
Tonga
Iraq
• Matriz de gráficos de dispersão (Scatterplot matrix) 
• Matriz de gráficos de dispersão (Scatterplot matrix) 
contraception
0 20000 40000 1 3 5 7
0
2
0
4
0
6
0
8
0
0
2
0
0
0
0
4
0
0
0
0
GDP
infant.mortality
0
5
0
1
0
0
1
5
0
0 20 40 60 80
1
3
5
7
0 50 100 150
TFR
GDP muito assimétrico 
Alternativa: nova variável 
com escala logarítmica 
• Criação de nova variável 
• Criação de nova variável 
• Matriz de gráficos de dispersão com nova variável 
contraception
0 50 100 150 1 2 3 4 5 6 7
0
2
0
4
0
6
0
8
0
0
5
0
1
0
0
1
5
0
infant.mortality
logGDP
1
.5
2
.5
3
.5
4
.5
0 20 40 60 80
1
2
3
4
5
6
7
1.5 2.5 3.5 4.5
TFR
• Matriz de gráficos de dispersão com filtro 
contraception
20 40 60 80 1.5 2.5 3.5 4.5
2
0
4
0
6
0
2
0
4
0
6
0
8
0
infant.mortality
logGDP
3
.0
3
.5
4
.0
20 40 60
1
.5
2
.5
3
.5
4
.5
3.0 3.5 4.0
TFR
• Leitura de datasets de pacotes: Prestige 
- education: average education (years) 
- income: average income (CAD$) 
- women: percentage of incumbents who 
 are women. 
- prestige: Pineo-Porter prestige score for 
 occupation 
- census: Canadian Census occupational code. 
- type: type of occupation. 
• Seleção do dataset ativo 
• Visualização de dependências (scatterplots) 
census
6 8 12 16 20 40 60 80
2
0
0
0
8
0
0
0
6
1
0
1
4 education
income
0
1
0
0
0
0
2
5
0
0
0
2
0
6
0
prestige
2000 6000 0 10000 25000 0 40 80
0
4
0
8
0women
• Ajuste de modelo linear (1ª versão) 
• Ajuste de modelo linear (1ª versão) 
• Ajuste de modelo linear (2ª versão) 
• Ajuste de modelo linear (2ª versão) 
• Análise de Variância (ANOVA) 
R Studio 
R Studio 
• IDE (integrated development environment) para R 
• Algumas vantagens: 
– Facilidade de execuçãoparcial ou total de scripts R 
– Inserção de pontos de parada no código (depuração) 
– Integra editor, console do R, ajuda, gráficos, instalador de 
pacotes, histórico de comandos, inspeção de variáveis, etc. 
• Disponível em http://www.rstudio.com/ 
– Windows, Linux, OS X (Mac) 
• Algumas características de uso serão apresentadas 
durante a aula. 
Editor 
Histórico, variáveis de ambiente 
Console do R 
Diretório, gráfico, 
pacotes, ajuda 
Linguagem R 
R: Ajuda 
• Ajuda no ambiente R: 
help.start() 
help('while'), help('print'), ?print 
help.search('regression') 
• R site search: 
– http://finzi.psych.upenn.edu/search.html 
• CRAN Task Views: 
– http://cran.r-project.org/web/views/ 
• Cartão de referência preparado por Jonathan Baron: 
– http://www.leg.ufpr.br/~paulojus/misc/refcard.pdf 
Tipos de objetos no R 
• Tipos de objetos em R: 
– vector: o mais elementar e um dos mais importantes 
– matrix e array: generalizações multi-dimensionais de vetores 
– factor: forma compacta para manipulação de dados categóricos 
– list: forma geral de vetores, nos quais os elementos não 
precisam ser do mesmo tipo básico. Útil p.ex. para retorno de 
funções, quando diversos objetos necessitam ser devolvidas 
– data frames: são estruturas na forma de matrizes, em que as 
colunas podem ser de diferentes tipos básicos 
– funções: maneira simples e conveniente de estender as 
funcionalidades do R. 
 
• Todo objeto tem dois atributos intrínsecos: 
– mode: tipo básico dos elementos do objeto 
• numeric (inclui double, integer, factor), character, logical e complex 
– length: número de elementos do objeto 
Vetores 
• Atribuição: 
x <- c(10.4, 5.6, 3.1, 6.4, 21.7) 
Operador de atribuição: <- = ou -> 
x 
mode (x) 
length(x) 
y <- c(x, 0, x) 
c(x, 0, x) -> y 
 
• Aritmética: 
v <- 2*x + y + 1 
• Funções estatísticas e sumários: 
sum(x) 
length(x) 
mean(x) # equivalente a sum(x) / length(x) 
var(x) # equivalente a sum((x-mean(x))^2) / (length(x)-1) 
 
• Sequências regulares 
s1 = 1:30 
n=10 
s2 = 1:n-1 
s3 = 1:(n-1) 
s4 = seq(-5, 5, by=.2) 
 
• Vetores lógicos 
temp = x>13 
 
• Filtros 
idxval = which(x>13) 
xsel = x[idxval] 
 
• Vetores de caracteres 
letras = c('a', 'b', 'c') 
repeticao_a 
labs <- paste(c("X","Y"), 1:10, sep='') 
 
 
Operações e funções matemáticas: 
2 + 4 * 5 # Order of operations 
log (10) # Natural logarithm with base e=2.7182 
log10(5) # Common logarithm with base 10 
5^2 # 5 raised to the second power 
5/8 # Division 
sqrt (16) # Square root 
abs (3-7) # Absolute value 
pi # 3.14 
exp(2) # Exponential function 
round(pi,0) # Round pi to a whole number 
round(pi,1) # Round pi to 1 decimal place 
round(pi,4) # Round pi to 4 decimal places 
Operações e funções matemáticas: 
floor(15.9) # Rounds down 
ceiling(15.1) # Rounds up 
cos(.5) # Cosine Function 
sin(.5) # Sine Function 
tan(.5) # Tangent Function 
acos(0.8775826) # Inverse Cosine 
asin(0.4794255) # Inverse Sine 
atan(0.5463025) # Inverse Tangent 
Outros tipos de objetos 
• Matrizes: 
M = matrix(1:20, nrow=5, ncol=4) 
N = matrix(1:20, nrow=5, ncol=4, byrow=TRUE) 
colnames(N) = c('a', 'b', 'c', 'd') 
N[, 1:2] 
N[c(2,4),] 
N[c(2,4), 1:2] # acesso a porcoes especificas 
N[,c('a', 'b')] 
 
• Data frames 
Test = data.frame(a = rep(1,10), b=runif(10,1), c=letters[1:10]) 
 
• Listas 
Ltest = list(a=1:10, b=3, t=Test) 
 
Ltest2 = list() 
Ltest2[[1]] = 1:10 
Ltest2[[2]] = 1

Continue navegando