Você está na página 1de 52

Introduo Anlise de Dados

Utilizando o Ambiente R

Marcelo de Souza Lauretto


Sistemas de Informao EACH
marcelolauretto@usp.br

Curso de Vero EACH/USP


Fevereiro / 2015
Referncias
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
Referncias
P. J. Ribeiro Junior, Introduo ao Ambiente
Estatstico 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
Prembulo
Tipos de variveis em uma anlise tpica

Fonte:
M. J. Fontelles, Bioestatstica Aplicada Pesquisa Experimental. So Paulo,
Ed. Livraria da Fsica, 2012. (Vol. 1, p. 188).
Pr-processamento de dados
Etapas bsicas* (Han & Kamber, 2006):
Limpeza: eliminao de caracteres esprios, padronizao
de formatos, reduo de inconsistncias, imputao de
dados faltantes;
Integrao: Compilao das informaes a partir de bases
de dados heterogneas;
Transformao: Converso de tipo (numrico categrico
ou vice-versa), suavizao (remoo de rudos),
agrupamentos de valores em faixas, normalizao de
variveis, criao de novos atributos, etc.
Reduo de dimensionalidade, discretizao.
*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: definio e histria
R uma linguagem e um ambiente de desenvolvimento
voltado principalmente para computao estatstica
(inferncia, simulaes, data mining, etc) e grficos.
Desenvolvido originalmente por Ross Ihaka e Robert
Gentleman (Depto Estatstica da Universidade de
Auckland, Nova Zelndia).
Inspirado em duas linguagens:
S (John Chambers e colegas Bell Labs): sintaxe
Scheme (Hal Abelson and Gerald Sussman): implementao e
semntica
R est disponvel como um software livre, nos termos da
GNU GPL (General Public License).
Windows, Linux, OS X (Mac)
O Projeto R
Software e documentao disponvel em
www.r-project.org
Contedo geral do site:
Sobre o R
Download, packages:
CRAN (Comprehensive R Archive Network)
Documentao
Manuals
FAQs (Frequently Asked Questions)
Ex: como citar o R.
Informaes suplementares:
CRAN Task views: guias para pacotes e funes teis para certas
reas/disciplinas
Ferramenta de busca no site (opo Search), muito til
R Commander
R Commander
Interface grfica para anlises estatsticas bsicas
Comandos R so gerados e executados via menus

Pacote Rcmdr
Instalao: 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

Configurao dos quadros


Entrada de dados no R Commander
Digitao manual
Leitura de arquivos-texto
Leitura de dados de pacotes
Arquivo-texto:
Exemplo: Nations.txt Cabealho (nomes das
(subdiretrio etc do pacote Rcmdr) variveis)

NA = missing values
Registros (um por linha) Separadores de campos (espaos)
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$)
Edio e visualizao dos dados
Sumrios gerais
Sumrios numricos
Sumrios numricos agrupados
Histograma

80
60
frequency

40
20
0

0 50 100 150

infant.mortality
Histogramas por grupos
Histogramas por grupos
region = Africa region = Americas

30

30
frequency

frequency
15

15
0

0
0 50 100 150 0 50 100 150

infant.mortality infant.mortality

region = Asia region = Europe


30

30
frequency

frequency
15

15
0

0
0 50 100 150 0 50 100 150

infant.mortality infant.mortality

region = Oceania
30
frequency

15
0

0 50 100 150

infant.mortality
Diagrama em caixa (Box-plot)
Diagrama em caixa (Box-plot): interpretao

Md: Mediana
Qi: quartil inferior
Qs: quartil superior
(Qs Qi): intervalo inter-quartil

Informaes de interesse:
- Simetria
- Disperso
- Dados discrepantes
- Comparao entre grupos

Fonte: M. M. Reis, Estatstica Diagramas em Caixas. http://www.inf.ufsc.br/~marcelo/AED06.pdf


Grfico de disperso (scatterplot)
Grfico de disperso (scatterplot)

200
100
Iraq
50
infant.mortality

20
10
5

Tonga
2

50 100 200 500 1000 2000 5000 20000 50000

GDP
Matriz de grficos de disperso (Scatterplot matrix)
Matriz de grficos de disperso (Scatterplot matrix)
0 20000 40000 1 3 5 7

20 40 60 80
contraception

0
20000 40000
GDP
GDP muito assimtrico
0

100 150
Alternativa: nova varivel infant.mortality
com escala logartmica

50
0
7

TFR
5
3
1

0 20 40 60 80 0 50 100 150
Criao de nova varivel
Criao de nova varivel
Matriz de grficos de disperso com nova varivel
0 50 100 150 1 2 3 4 5 6 7

20 40 60 80
contraception

0
150

infant.mortality
100
50
0

4.5
logGDP

3.5
2.5
1.5
1 2 3 4 5 6 7

TFR

0 20 40 60 80 1.5 2.5 3.5 4.5


Matriz de grficos de disperso com filtro
20 40 60 80 1.5 2.5 3.5 4.5

contraception

60
40
20
20 40 60 80

infant.mortality

logGDP

3.0 3.5 4.0


1.5 2.5 3.5 4.5

TFR

20 40 60 3.0 3.5 4.0


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.
Seleo do dataset ativo
Visualizao de dependncias (scatterplots)
6 8 12 16 20 40 60 80

8000
census

2000
education
14
10
6

0 10000 25000
income

prestige
60
20

women

80
40
0
2000 6000 0 10000 25000 0 40 80
Ajuste de modelo linear (1 verso)
Ajuste de modelo linear (1 verso)
Ajuste de modelo linear (2 verso)
Ajuste de modelo linear (2 verso)
Anlise de Varincia (ANOVA)
R Studio
R Studio
IDE (integrated development environment) para R
Algumas vantagens:
Facilidade de execuo parcial ou total de scripts R
Insero de pontos de parada no cdigo (depurao)
Integra editor, console do R, ajuda, grficos, instalador de
pacotes, histrico de comandos, inspeo de variveis, etc.
Disponvel em http://www.rstudio.com/
Windows, Linux, OS X (Mac)
Algumas caractersticas de uso sero apresentadas
durante a aula.
Console do R

Editor

Histrico, variveis de ambiente Diretrio, grfico,


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/
Carto de referncia 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: generalizaes multi-dimensionais de vetores
factor: forma compacta para manipulao de dados categricos
list: forma geral de vetores, nos quais os elementos no
precisam ser do mesmo tipo bsico. til p.ex. para retorno de
funes, quando diversos objetos necessitam ser devolvidas
data frames: so estruturas na forma de matrizes, em que as
colunas podem ser de diferentes tipos bsicos
funes: maneira simples e conveniente de estender as
funcionalidades do R.

Todo objeto tem dois atributos intrnsecos:


mode: tipo bsico dos elementos do objeto
numeric (inclui double, integer, factor), character, logical e complex
length: nmero de elementos do objeto
Vetores
Atribuio:
x <- c(10.4, 5.6, 3.1, 6.4, 21.7)
Operador de atribuio: <- = ou ->
x
mode (x)
length(x)
y <- c(x, 0, x)
c(x, 0, x) -> y

Aritmtica:
v <- 2*x + y + 1
Funes estatsticas e sumrios:
sum(x)
length(x)
mean(x) # equivalente a sum(x) / length(x)
var(x) # equivalente a sum((x-mean(x))^2) / (length(x)-1)

Sequncias regulares
s1 = 1:30
n=10
s2 = 1:n-1
s3 = 1:(n-1)
s4 = seq(-5, 5, by=.2)
Vetores lgicos
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='')
Operaes e funes matemticas:
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
Operaes e funes matemticas:

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