Introdução à Análise de Dados Utilizando o Ambiente...

Post on 13-Jul-2018

213 views 0 download

Transcript of Introdução à Análise de Dados Utilizando o Ambiente...

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

fre

qu

en

cy

0 50 100 150

02

04

06

08

0

• Histogramas por grupos

region = Africa

infant.mortality

frequency

0 50 100 150

015

30

region = Americas

infant.mortality

frequency

0 50 100 150

015

30

region = Asia

infant.mortality

frequency

0 50 100 150

015

30

region = Europe

infant.mortalityfr

equency

0 50 100 150

015

30

region = Oceania

infant.mortality

frequency

0 50 100 150

015

30

• 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

25

10

20

50

100

200

GDP

infa

nt.

mort

alit

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

020

40

60

80

020000

40000

GDP

infant.mortality

050

100

150

0 20 40 60 80

13

57

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

020

40

60

80

050

100

150

infant.mortality

logGDP

1.5

2.5

3.5

4.5

0 20 40 60 80

12

34

56

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

20

40

60

20

40

60

80

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

2000

8000

610

14 education

income

010000

25000

20

60

prestige

2000 6000 0 10000 25000 0 40 80

040

80women

• 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ção parcial 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