R para estatísticos: uma introdução. › ~ra109078 › Research ›...

114
R para estatísticos: uma introdução. Carlos Trucios Maza Universidade Estadual de Campinas Semana da Estatística - IMECC 13 de outubro de 2015 Carlos Trucios Maza R para estatísticos: uma introdução.

Transcript of R para estatísticos: uma introdução. › ~ra109078 › Research ›...

Page 1: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

R para estatísticos: uma introdução.

Carlos Trucios Maza

Universidade Estadual de CampinasSemana da Estatística - IMECC

13 de outubro de 2015

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 2: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Falemos mais desse tal de “R”

Porquê devo utilizar R?

free,intuitivo,grande quantidade de colaboradores,é amplamente utilizado no meio acadêmico e na industria.Is there any good reason to use SAS or SPSS these days? Youhave a whole bunch of money you want to get rid of?. (HadleyWickham)

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 3: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Falemos mais desse tal de “R”

Qual o melhor caminho para aprender R? Sem dúvida, omelhor caminho de aprender R é usando-o.Porquê R é devagar em algumas coisas? R is not a fastlanguage. This is not an accident. R was purposely designed tomake data analysis and statistics easier for you to do. It wasnot designed to make life easier for your computer. (HadleyWickham)R ou Python? Ambos.

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 4: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Cálculo do dia a dia.Probabilidade

−4 −2 0 2 4

0.0

0.1

0.2

0.3

0.4

Distribuição Normal(0,1)

x

Den

sida

de

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 5: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Cálculo do dia a dia: Probabilidade

R tem implementado várias distribuições, entre elas: beta,binomial, Cauchy, chi-squared, exponential, F, gamma,geometric, log-normal, multinomial, normal, Student’s, Weibull,etc. Ver ?Distributions para mais distribuições.Em R podemos gerar número aleatorios, calcular quantis,probabilidades e densidades: rdistribution, qdistribution,qdistribution, ddistribution.

rnorm(5)

## [1] -0.168094 -0.063025 -1.404442 0.736903 0.005817

dnorm(0)

## [1] 0.3989

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 6: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Cálculo do dia a dia: Probabilidade

Z0.95 Z ∼ N(0, 1)

qnorm(0.95)

## [1] 1.645

P(X < 20) X ∼ N(18, 22)

pnorm(20,18,2)

## [1] 0.8413

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 7: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Cálculo do dia a dia: Probabilidade

P(X > 1) X ∼ t6

pt(1,6,lower.tail=FALSE)

## [1] 0.178

P(X < 3) X ∼ Bin(6, 0.3)

sum(dbinom(0:2, 6, 0.3))

## [1] 0.7443

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 8: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Calculo do dia a dia: Calculos básicos

x = c(2,3,4,5)sqrt(x)

## [1] 1.414 1.732 2.000 2.236

x^4

## [1] 16 81 256 625

x*x

## [1] 4 9 16 25

x/x

## [1] 1 1 1 1

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 9: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Calculo do dia a dia: Calculos básicos

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 10: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Objetos

vetoresmatrizesarrayslistasdata frame

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 11: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Objetos

matrix(c(1,2,3,4,5,6,7,8,9),ncol=3,nrow=3)

## [,1] [,2] [,3]## [1,] 1 4 7## [2,] 2 5 8## [3,] 3 6 9

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 12: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Objetos

array(1:8,c(2,2,2))

## , , 1#### [,1] [,2]## [1,] 1 3## [2,] 2 4#### , , 2#### [,1] [,2]## [1,] 5 7## [2,] 6 8

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 13: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Objetos

library(microbenchmark)library(MASS)head(mtcars)

## mpg cyl disp hp drat wt qsec vs am gear carb## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 14: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Objetos

microbenchmark("[30,11]" = mtcars[30,11],"$carb[30]" = mtcars$carb[30],"[[c(11,30)]]" = mtcars[[c(11,30)]],"[[11]][30]" = mtcars[[11]][30],".subset2" = .subset2(mtcars,11)[30])

## Unit: nanoseconds## expr min lq mean median uq max neval## [30,11] 16418 16974 18633.9 17336 17725.5 90501 100## $carb[30] 8768 9370 10699.1 9783 10649.5 59249 100## [[c(11,30)]] 7030 7642 8383.2 8003 8710.0 18328 100## [[11]][30] 6500 7266 8064.0 7668 8460.0 18234 100## .subset2 207 368 505.8 418 480.5 7852 100

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 15: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Exercicios 1

Calcule:

P (−1.3 ≤ X ≤ 2) X ∼ N(1, 22)P (X ≤ 9) X ∼ Binom(10, 0.3)P (X ≤ 2) X ∼ t8Z0.975 Z ∼ N(0, 1)

Crie um vetor de tamanho 5 onde os elementos do vetor seguemuma distribuiçao N(0, 1). Após criar o vetor aplique a raiz quadradado módulo a cada elemento, finalmente calcule P (X < elemento)X ∼ N(0, 1) para cada elemento do vetor.

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 16: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados

hist(mtcars$wt)

Histogram of mtcars$wt

mtcars$wt

Fre

quen

cy

2 3 4 5

02

46

8

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 17: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados

plot(mtcars$mpg,mtcars$qsec)

10 15 20 25 30

1618

2022

mtcars$mpg

mtc

ars$

qsec

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 18: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados

pie(table(mtcars$cyl))

4

6

8Carlos Trucios Maza R para estatísticos: uma introdução.

Page 19: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados

barplot(table(mtcars$carb))

1 2 3 4 6 8

02

46

810

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 21: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 22: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice

Adaptado da presentação do Omar Abbara e do David H. Mattarealizada no 16/09/2015 no R Campinas Users Group

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 23: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - Carregando Dados

library("lattice")

## Warning: package 'lattice' was built under R version 3.1.3

data(Chem97,package ="mlmRev")

head(Chem97)

## lea school student score gender age gcsescore gcsecnt## 1 1 1 1 4 F 3 6.625 0.3393## 2 1 1 2 10 F -3 7.625 1.3393## 3 1 1 3 10 F -4 7.250 0.9643## 4 1 1 4 10 F -2 7.500 1.2143## 5 1 1 5 8 F -1 6.444 0.1583## 6 1 1 6 10 F 4 7.750 1.4643

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 24: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - histogram

histogram(~gcsescore|factor(score),data=Chem97,aspect =0.7)

gcsescore

Per

cent

of T

otal

0

10

20

30

0 2 4 6 8

0 2

4

0

10

20

30

60

10

20

30

8

0 2 4 6 8

10

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 25: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - densityplot

densityplot(~gcsescore|factor(score),data=Chem97,plot.points=FALSE,layout=c(3,2),aspect =0.7)

gcsescore

Den

sity

0.0

0.2

0.4

0.6

0 2 4 6 8

0 2

0 2 4 6 8

4

6

0 2 4 6 8

8

0.0

0.2

0.4

0.6

10

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 26: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - densityplot

densityplot(~gcsescore,data=Chem97,groups=score,aspect=0.3,plot.points=FALSE,auto.key=list(columns=3))

gcsescore

Den

sity

0.0

0.2

0.4

0.6

0 2 4 6 8

02

46

810

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 27: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - bwplot

bwplot(~gcsescore|factor(score),data=Chem97)

gcsescore

0 2 4 6 8

0 2

0 2 4 6 8

4

6

0 2 4 6 8

8 10

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 28: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - bwplot

bwplot(~gcsescore|factor(score,c("10","8","6","4","2","0")),data=Chem97)

gcsescore

0 2 4 6 8

10 8

0 2 4 6 8

6

4

0 2 4 6 8

2 0

#Visualização de dados: lattice - bwplot

bwplot(gcsescore~factor(score)|factor(gender),data=Chem97,aspect=0.7)

gcse

scor

e

0

2

4

6

8

0 2 4 6 8 10

M

0 2 4 6 8 10

F

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 29: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - bwplot

bwplot(gcsescore~factor(score)|factor(gender),data=Chem97,aspect=0.4)

gcse

scor

e

0

2

4

6

8

0 2 4 6 8 10

M0

2

4

6

8

F

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 30: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - bwplot

bwplot(gcsescore~factor(gender)|factor(score),data=Chem97)gc

sesc

ore

0

2

4

6

8

M F

0

M F

2

M F

4

6 8

0

2

4

6

8

10

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 31: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - dotplot

dotplot(variety~yield|site,barley,layout=c(3,2),aspect=0.7,groups=year,type=c("p","h"),auto.key=list(space="right"))

yield

SvansotaNo. 462

ManchuriaNo. 475

VelvetPeatlandGlabronNo. 457

Wisconsin No. 38Trebi

20 30 40 50 60

Grand Rapids Duluth

20 30 40 50 60

University FarmSvansota

No. 462Manchuria

No. 475Velvet

PeatlandGlabronNo. 457

Wisconsin No. 38Trebi

Morris

20 30 40 50 60

Crookston Waseca

19321931

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 32: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - dotplot

VADeaths

## Rural Male Rural Female Urban Male Urban Female## 50-54 11.7 8.7 15.4 8.4## 55-59 18.1 11.7 24.3 13.6## 60-64 26.9 20.3 37.0 19.3## 65-69 41.0 30.9 54.6 35.1## 70-74 66.0 54.3 71.1 50.0

class(VADeaths)

## [1] "matrix"

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 33: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - dotplot

dotplot(VADeaths, groups = FALSE)

Freq

50−54

55−59

60−64

65−69

70−74

20 40 60

Rural Male Rural Female

50−54

55−59

60−64

65−69

70−74

Urban Male

20 40 60

Urban Female

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 34: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - dotplot

dotplot(VADeaths,groups=FALSE,layout=c(4,1),aspect=0.7,origin=0,type=c("h","h"),main="Death Rates",xlab="Rate")

Death Rates

Rate

50−5455−5960−6465−6970−74

0 20 40 60

Rural Male

0 20 40 60

Rural Female

0 20 40 60

Urban Male

0 20 40 60

Urban Female

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 35: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - dotplot

dotplot(VADeaths,type ="o",auto.key=list(lines=TRUE,aspect=0.5,space="right"),main ="Death Rates",xlab="Rate")

Death Rates

Rate

50−54

55−59

60−64

65−69

70−74

20 40 60

Rural MaleRural FemaleUrban MaleUrban Female

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 36: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - stripplot

stripplot(depth~factor(mag),quakes,jitter.data=TRUE, aspect=0.5,alpha=0.9,xlab="Magnitude(Richter)",ylab="Depth (km)")

Magnitude(Richter)

Dep

th (

km)

200

400

600

4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.9 6 6.1 6.4

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 37: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - stripplot

Stripplot<-stripplot(sqrt(abs(residuals(lm(yield~variety+year+site))))~site,data=barley,groups=year,jitter.data=TRUE,auto.key=list(points=TRUE,lines=TRUE,columns=2),type=c("p", "a"), fun=mean,ylab = expression(abs("Residual Barley Yield")^{1 / 2}))

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 38: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - tripplot

StripplotR

esid

ual B

arle

y Y

ield

12

1

2

3

Grand Rapids Duluth University Farm Morris Crookston Waseca

1932 1931

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 39: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - qqmath

Qqplot<-qqmath(~ gcsescore | gender, Chem97, groups = score, aspect = "xy",distribution = qnorm, f.value = ppoints(100),auto.key = list(space = "right"),

xlab = "Standard Normal Quantiles",ylab = "Average GCSE Score")

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 40: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - qqmath

Qqplot

Standard Normal Quantiles

Ave

rage

GC

SE

Sco

re

3

4

5

6

7

8

−2 −1 0 1 2

M

−2 −1 0 1 2

F

0246810

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 41: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - barchart

barchart(Class ~ Freq | Sex + Age,data = as.data.frame(Titanic),groups = Survived, stack = TRUE,layout = c(4, 1),auto.key = list(title = "Survived",columns = 2),scales = list(x = "free"))

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 42: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - barchart

Freq

1st

2nd

3rd

Crew

0 10 20 30 40 50

MaleChild

0 10 20 30

FemaleChild

0 200 400 600 800

MaleAdult

0 50 100 150

FemaleAdult

SurvivedNo Yes

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 43: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - parallel

parallel(~mtcars[c(1, 3, 4, 5, 6, 7)] | factor(cyl),mtcars, groups = carb, layout = c(3, 1),auto.key = list(space = "top", columns = 3))

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 44: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - parallel

mpg

disp

hp

drat

wt

qsec

Min Max

4

Min Max

6

Min Max

8

12

34

68

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 45: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - Gráficos em 3D

O lattice também possui funções que permitem plotar gráficos em3D:

cloud: plota scatterplot em 3Dwireflame: plota superficies em 3Dlevelplot: plota gr?fico falsa-corcontourplot: plota curvas de n?vel

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 46: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - scatterplot em 3D

quakes$Magnitude <- equal.count(quakes$mag, 4)cloud(depth ~ lat * long | Magnitude, data = quakes,

zlim = rev(range(quakes$depth)),screen = list(z = 105, x = -70), panel.aspect = 0.75,xlab = "Longitude", ylab = "Latitude", zlab = "Depth")

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 47: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - scatterplot em 3D

Longitude

Latitude

Depth

Magnitude

Longitude

Latitude

Depth

Magnitude

Longitude

Latitude

Depth

Magnitude

Longitude

Latitude

Depth

Magnitude

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 48: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - levelplot

levelplot(volcano)

row

colu

mn

10

20

30

40

50

60

20 40 60 80

100

120

140

160

180

200

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 49: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - contourplot

contourplot(volcano, cuts = 10, label = TRUE)

row

colu

mn

10

20

30

40

50

60

20 40 60 80

100

100

100

110

110

110

110

120130140

150150

160

160

170

170

180

180

190

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 50: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: lattice - wireframe

wireframe(volcano, panel.aspect = 0.5,zoom = 1,scales=list(arrows = FALSE),drape = TRUE, colorkey = TRUE)

2040

6080

1020

3040

5060

100

120

140

160

180

rowcolumn

volcano

100

120

140

160

180

200

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 51: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Exericios 2

Faça um boxplot da variavel gcsescore dividos por sexo.Gere 1500 dados de uma distribuição uniforme e faça umgráfico qq para verificar se os dados são: (a) normais, (b)uniformes.Faça um histograma da variavel gcsescore dividos por sexo.No gráfico

histogram(~gcsescore|factor(score),data=Chem97,aspect =0.7)

organizar a saida para ser na ordem c(“10”,“8”,“6”,“4”,“2”,“0”).

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 52: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 53: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

Existem 2 funções básicas no pacote ggplot2

qplot()ggplot()

A funçao qplot() (Quick Plot) faz com que gráficos mais complexose elaborados sejam mais fáceis. Foi desenvolvida para ser mais fácile intuitiva que a função padrão plot().

plot( ) qplot( )

col colourpch shapecex size

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 54: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - Datasets

library(ggplot2)library(gridExtra)

## Loading required package: grid

head(diamonds)

## carat cut color clarity depth table price x y z## 1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43## 2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31## 3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31## 4 0.29 Premium I VS2 62.4 58 334 4.20 4.23 2.63## 5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75## 6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 55: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - qplot()

qplot(x, y = NULL, ..., data, facets = NULL,margins = FALSE, geom = "auto", stat = list(NULL),position = list(NULL), xlim = c(NA, NA),ylim = c(NA, NA), log = "", main = NULL,xlab = deparse(substitute(x)),ylab = deparse(substitute(y)), asp = NA)

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 56: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - qplot()

qplot(x = carat, y = price, data = dsmall)

0

5000

10000

15000

0.5 1.0 1.5 2.0 2.5carat

pric

e

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 57: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - qplot()

qplot(carat, log(price), data = dsmall, xlab = "CARAT")

6

7

8

9

10

0.5 1.0 1.5 2.0 2.5CARAT

log(

pric

e)

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 58: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - qplot()

qplot(carat, log(price), data = dsmall, log = "x")

6

7

8

9

10

1carat

log(

pric

e)

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 59: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - qplot()

qplot(carat, price, data = dsmall, colour = color)

0

5000

10000

15000

0.5 1.0 1.5 2.0 2.5carat

pric

e

color

D

E

F

G

H

I

J

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 60: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - qplot()

qplot(carat, price, data = dsmall,shape = cut, main = "Titulo")

0

5000

10000

15000

0.5 1.0 1.5 2.0 2.5carat

pric

e

cut

Fair

Good

Very Good

Premium

Ideal

Titulo

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 61: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - qplot()

qplot(carat, price, data = dsmall,shape = cut, facets = .~color)

D E F G H I J

0

5000

10000

15000

0.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.5carat

pric

e

cut

Fair

Good

Very Good

Premium

Ideal

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 62: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - qplot()

qplot(carat, price, data = dsmall, facets =cut~color)

D E F G H I J

05000

1000015000

05000

1000015000

05000

1000015000

05000

1000015000

05000

1000015000

FairG

oodVery G

oodPremium

Ideal

0.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.5carat

pric

e

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 63: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - qplot()

qplot(carat, price, data = dsmall, facets =.~color,shape=cut,margins = TRUE)

D E F G H I J (all)

0

5000

10000

15000

0.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.50.51.01.52.02.5carat

pric

e

cut

Fair

Good

Very Good

Premium

Ideal

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 64: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - qplot()

p1 = qplot(carat, price, data = diamonds)p2 = qplot(carat, price, data = diamonds, alpha = I(1/10))p3 = qplot(carat, price, data = diamonds, alpha = I(1/100))grid.arrange(p1, p2, p3, ncol=3)

0

5000

10000

15000

0 1 2 3 4 5carat

pric

e

0

5000

10000

15000

0 1 2 3 4 5carat

pric

e

0

5000

10000

15000

0 1 2 3 4 5carat

pric

eCarlos Trucios Maza R para estatísticos: uma introdução.

Page 65: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

geom define o tipo de gráfico que desejamos, por defaultgeom=“point” mas temos muitas outras opçoes:

geom = “smooth”geom = “boxplot”geom = “path”geom = “line”geom = “histogram”geom = “freqpoly”etc

Uma lista completa das opçoões que geom oferece pode ser obtidano seguinte linkhttp://sape.inf.usi.ch/quick-reference/ggplot2/geom

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 66: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

qplot(carat,price,data = dsmall,geom=c("point","smooth"),span = 0.2)

## geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to change the smoothing method.

0

5000

10000

15000

0.5 1.0 1.5 2.0 2.5carat

pric

e

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 67: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

qplot(carat,price,data = dsmall,geom="boxplot")

0

5000

10000

15000

0.5 1.0 1.5 2.0carat

pric

e

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 68: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

qplot(color,price ,data = dsmall,geom="boxplot",colour = color, fill = color)

0

5000

10000

15000

D E F G H I Jcolor

pric

e

color

D

E

F

G

H

I

J

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 69: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

qplot(carat,data = diamonds,geom="histogram",binwidth = 0.3, facets=.~color)

D E F G H I J

0

1000

2000

3000

4000

5000

0 2 4 0 2 4 0 2 4 0 2 4 0 2 4 0 2 4 0 2 4carat

coun

t

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 70: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

qplot(carat, data = diamonds,geom="density", colour = color)

0.0

0.5

1.0

1.5

2.0

0 1 2 3 4 5carat

dens

ity

color

D

E

F

G

H

I

J

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 71: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

qplot(color, data = diamonds,geom="bar", weight = carat)

0

2500

5000

7500

D E F G H I Jcolor

coun

t

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 72: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

head(economics)

## date pce pop psavert uempmed unemploy## 1 1967-06-30 507.8 198712 9.8 4.5 2944## 2 1967-07-31 510.9 198911 9.8 4.7 2945## 3 1967-08-31 516.7 199113 9.0 4.6 2958## 4 1967-09-30 513.3 199311 9.8 4.9 3143## 5 1967-10-31 518.5 199498 9.7 4.7 3066## 6 1967-11-30 526.2 199657 9.4 4.8 3018

dim(economics)

## [1] 478 6

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 73: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

qplot(date,unemploy, data = economics, geom="line")

2500

5000

7500

10000

12500

1970 1980 1990 2000date

unem

ploy

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 74: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

qplot(date,unemploy, data = economics, geom="path")

2500

5000

7500

10000

12500

1970 1980 1990 2000date

unem

ploy

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 75: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

IND = sample(seq(1,478),478)qplot(date[IND],unemploy[IND], data = economics,

geom="path")

2500

5000

7500

10000

12500

1970 1980 1990 2000date[IND]

unem

ploy

[IND

]

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 76: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - geom

IND = sample(seq(1,478),478)qplot(date[IND],unemploy[IND], data = economics,

geom="line")

2500

5000

7500

10000

12500

1970 1980 1990 2000date[IND]

unem

ploy

[IND

]

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 77: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

Nós podemos utilizar a funçao qplot() sem nos preocupar commaiores entendimentos, porém estariamos desperdiçando o potencialdo pacote ggplot2. ggplot2: The layered grammar os graphics ébaseado no trabalho de Wilkinson no livro The Grammar ofGraphics que pode ser descarregado no seguinte link http://link.springer.com/book/10.1007/978-1-4757-3100-2

Outra função fornecida pelo ggplot2 que permite fazer os gráficospor camadas (layered) é ggplot().

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 78: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

Layering é o mecanismo de agregar elementos ao gráfico.

Qual a diferença com qplop()? Quando usamos a funçãoggplop() cada camada pode vir de diferentes conjuntos de dados ediferentes variáveis podem ser utilizadas. Já o qplot() permite sóum unico conjunto de dados e um único conjunto de variáveis.

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 79: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

Os dados,Um conjunto de aesthetic mapping: variaveis a serem plotadas,The geom: Tipo de gráfico,The stat: Pega os dados e transforma eles (Ex: Smooth),The position adjustment: quais elementos ajustar para evitaroverplotting.

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 80: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

p = ggplot(diamonds, aes(carat, price, colour = color))

como não definimos nenhuma camada a função não mostrará nada.As camadas são addicionadas colocando um + e alguns (ou todos)or argumentos podem ser utilizados.

layer(geom, geom_params, stat, stat_params,data, mapping, position)

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 81: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

p + layer(geom="point")

0

5000

10000

15000

0 1 2 3 4 5carat

pric

e

color

D

E

F

G

H

I

J

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 82: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

ggplot(diamonds, aes(x = carat)) +layer(geom="bar", geom_params = list(fill = "steelblue"),

stat = "bin", stat_params = list(binwidth = 0.3))

0

5000

10000

15000

20000

0 2 4carat

coun

t

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 83: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

ggplot(diamonds, aes(x = carat)) +geom_histogram(binwidth = 0.3, fill = "steelblue")

0

5000

10000

15000

20000

0 2 4carat

coun

t

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 84: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

Todas as camadas tem a mesma estrutura:

geom_XYZ(mapping, data, . . . , geom, position)stat_XYZ(mapping, data, . . . , geom, position)

Argumentos:

mapping: usar aes(x,y)data: Usar sómente se formos utilizar um novo conjunto dedados, caso omitir esta informação será utilizado o conjunto dedados definido no ggplot(). . . : Parâmetros para geom ou stat (fill, colour, etc)geom ou stat:position: Escolher o método para ajustar a sobreposiçao dosobjetos.

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 85: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

ggplot(msleep, aes(sleep_rem/sleep_total, awake)) +geom_point()

## Warning: Removed 22 rows containing missing values (geom_point).

5

10

15

20

0.1 0.2 0.3sleep_rem/sleep_total

awak

e

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 86: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

qplot(sleep_rem/sleep_total, awake, data = msleep)

## Warning: Removed 22 rows containing missing values (geom_point).

5

10

15

20

0.1 0.2 0.3sleep_rem/sleep_total

awak

e

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 87: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

ggplot(msleep, aes(sleep_rem/sleep_total, awake)) +geom_point() + geom_smooth()

## geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to change the smoothing method.

## Warning: Removed 22 rows containing missing values (stat_smooth).## Warning: Removed 22 rows containing missing values (geom_point).

10

20

0.1 0.2 0.3sleep_rem/sleep_total

awak

e

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 88: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 - ggplot()

qplot(sleep_rem/sleep_total, awake, data = msleep,geom = c("point", "smooth"))

## geom_smooth: method="auto" and size of largest group is <1000, so using loess. Use 'method = x' to change the smoothing method.

## Warning: Removed 22 rows containing missing values (stat_smooth).## Warning: Removed 22 rows containing missing values (geom_point).

10

20

0.1 0.2 0.3sleep_rem/sleep_total

awak

e

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 89: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

Existe uma restrição nos dados quando trabalhamos com ggplot2, osdados devem ser um data frame. Esta restrição não é aplicada emoutros pacotes para fazer gráficos (no pacote Laticce por exemplo).

Quais são as razões para esta restrição?

É melhor ter o conjunto de dados que seja explicito enquantoque esta sendo feito com ele.Um data frame é mais facil de salvar do que um conjunto devetores, o que significa, ser mais fácil de enviar nossos dados ede reproduzir os resultaos.Esta restrição faz com que seja mais simple fazer o mesmográfico com diferentes dados (somente mudando o data frame)

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 90: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

p = ggplot(mtcars, aes(mpg, wt, colour = cyl)) +geom_point()

p

2

3

4

5

10 15 20 25 30 35mpg

wt

4

5

6

7

8cyl

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 91: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

mtcars <- transform(mtcars, mpg = mpg ^ 2)p %+% mtcars

2

3

4

5

300 600 900 1200mpg

wt

4

5

6

7

8cyl

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 92: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

head(Oxboys)

## Grouped Data: height ~ age | Subject## Subject age height Occasion## 1 1 -1.0000 140.5 1## 2 1 -0.7479 143.4 2## 3 1 -0.4630 144.8 3## 4 1 -0.1643 147.1 4## 5 1 -0.0027 147.7 5## 6 1 0.2466 150.2 6

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 93: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

ggplot(Oxboys, aes(age, height, group = Subject,colour = Subject)) + geom_line()

130

140

150

160

170

−1.0 −0.5 0.0 0.5 1.0age

heig

ht

16

15

8

20

1

18

5

23

11

21

3Carlos Trucios Maza R para estatísticos: uma introdução.

Page 94: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

ggplot(Oxboys, aes(Occasion, height)) + geom_boxplot()

130

140

150

160

170

1 2 3 4 5 6 7 8 9Occasion

heig

ht

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 95: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

ggplot(Oxboys, aes(Occasion, height)) + geom_boxplot() +geom_line(aes(group = Subject), colour = "blue")

130

140

150

160

170

1 2 3 4 5 6 7 8 9Occasion

heig

ht

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 96: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

ggplot(diamonds, aes(clarity)) + geom_bar()

0

5000

10000

I1 SI2 SI1 VS2 VS1 VVS2VVS1 IFclarity

coun

t

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 97: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

ggplot(diamonds, aes(clarity, fill = cut)) + geom_bar()

0

5000

10000

I1 SI2SI1VS2VS1VVS2VVS1IFclarity

coun

t

cut

Fair

Good

Very Good

Premium

Ideal

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 98: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

ggplot(Oxboys, aes(sample = height)) + stat_qq()

130

140

150

160

170

−3 −2 −1 0 1 2 3theoretical

sam

ple

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 99: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

ggplot(diamonds, aes(clarity, fill = cut)) +geom_bar(position="stack")

0

5000

10000

I1 SI2 SI1 VS2VS1VVS2VVS1 IFclarity

coun

t

cut

Fair

Good

Very Good

Premium

Ideal

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 100: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

ggplot(diamonds, aes(clarity, fill = cut)) +geom_bar(position="dodge")

0

1000

2000

3000

4000

5000

I1 SI2 SI1 VS2VS1VVS2VVS1 IFclarity

coun

t

cut

Fair

Good

Very Good

Premium

Ideal

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 101: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2

ggplot(diamonds, aes(clarity, fill = cut)) +geom_bar(position="fill")

0.00

0.25

0.50

0.75

1.00

I1 SI2 SI1 VS2VS1VVS2VVS1 IFclarity

coun

t

cut

Fair

Good

Very Good

Premium

Ideal

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 102: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 in NY Times

http://www.nytimes.com/interactive/sports/football/2013-fantasy-football-tier-charts-QB.html?ref=football&_r=1&

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 103: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Visualização de dados: ggplot2 in Nature

http://www.nature.com/ng/journal/v44/n3/full/ng.1050.html

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 104: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Exercicios 3

Utilizar o conjunto de dados diamonds e fazer: - graficar a curva dadensidade para a variavel price - adicionar o histograma (no mesmográfico) - mudar de cor o histograma - Renomear os eixos comoPreço e Densidade - tirar o fundo cinza do gráfico

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 105: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Exercicios 3: Solução

E3 = ggplot(diamonds,aes(price)) +geom_histogram(aes(y = ..density..),fill=I("green4"),

colour=I("green")) +geom_density(size=0.8,colour=I("red4")) +xlab("Preço") + ylab("Densidade") + theme_bw()

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 106: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Exercicios 3: Solução

## stat_bin: binwidth defaulted to range/30. Use 'binwidth = x' to adjust this.

0e+00

1e−04

2e−04

3e−04

4e−04

0 5000 10000 15000 20000Preço

Den

sida

de

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 107: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

apply, sapply, lapply, . . .

apply: Aplicar a função às linhas ou colunas de uma matriz.

M = matrix(rnorm(25),ncol=5,nrow=5)apply(M, 1, min)

## [1] -1.7196 -1.9187 -1.4467 -0.6963 -1.6391

apply(M, 2, mean)

## [1] -0.1202 -0.1131 -0.2079 -0.7211 0.1495

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 108: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

apply, sapply, lapply e mapply

lapply - Quando você quer aplicar uma função para cadaelemento de uma lista e receber uma lista de volta.sapply - Quando você quer aplicar a funcão para cada elementode uma lista, porém quer retornar um vetor ao invés de umalista.vapply - Para quando você quer utilizar o sapply mas talvezprecise de um código mais rápido.rapply - Para quando você quer aplicar a função para cadaelemento de uma lista aninhada de forma recursiva.tapply - Para quando você quiser aplicar a função à subsetoresde um vetor e estes são definidos por outro vetor.

Fonte: http://pt.stackoverflow.com/questions/8056/apply-sapply-mapply-lapply-vapply-rapply-tapply-replicate-aggregate-by-e

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 109: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Referencias

Curso sobre o programa computacional R. Paulo JustinianoRibeiro Juniorggplot2: Elegant Graphics for Data Analysis. Hadley WickhamLattice: Multivariate Data Visualization with R. Sarkar,Deepayanhttp://stackoverflow.com/tags/rhttp://pt.stackoverflow.com/questions/tagged/r

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 110: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

R Campinas Users Group

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 111: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

R Campinas Users Group

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 112: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

R Campinas Users Group

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 113: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

R Campinas Users Group

http://www.ime.unicamp.br/~ctrucios/RCampinasUsersGroup/

Próxima reunião: 21/10/2015 19:30-20:30. Laboratório EPIFISMA

Carlos Trucios Maza R para estatísticos: uma introdução.

Page 114: R para estatísticos: uma introdução. › ~ra109078 › Research › MiniCurso_SEMEST...type=c("p","a"),fun=mean, ylab = expression(abs("Residual Barley Yield")^{1/2})) Carlos Trucios

Contato

Carlos Trucíos Maza

[email protected]

http://www.ime.unicamp.br/ ctrucios/

Carlos Trucios Maza R para estatísticos: uma introdução.