Você está na página 1de 87

Sum

ario
1 Leitura de dados usando copiar colar.

2 Recursos gr
aficos

3 Filtro de banco de dados.

12

4 Editor LaTeX + R + Sweave no linux


4.1 Sweave linux . . . . . . . . . . . . . . . . .
4.2 knitr no linux . . . . . . . . . . . . . . . . .
4.3 Salvar imagens linux . . . . . . . . . . . . .
4.4 Sites importantes de apoio ao R na internet
4.5 A mudanca de diret
orio . . . . . . . . . . .
4.6 Configurac
oes b
asicas para Linux . . . . . .
4.7 Ajuda e demostrac
oes . . . . . . . . . . . .
4.8 Interface amig
avel para R . . . . . . . . . .
4.9 Adicionando reposit
orios . . . . . . . . . .
4.10 Gerador de tabela em LaTeX e HTML . . .
4.11 Manipulac
ao de diret
orios . . . . . . . . . .
4.12 Box plot com media destacadas . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

13
14
14
14
14
14
15
15
15
15
15
16
18

5 Fun
c
ao densidade probabilidade fdp

18

6 Matem
atica

19

7 Tabela da ANOVA
19
7.1 Distribuic
ao Binomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.2 BoxPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
8 Multivariada

22

9 Modelos lineares generalizados - GLM


9.1 Redefinic
ao de nveis de referencia . . . . . . .
9.2 Contrates em GLM . . . . . . . . . . . . . . . .
9.3 Func
ao de m
axima verossimilhanca penalizada
9.4 Teste estatsticos . . . . . . . . . . . . . . . . .
9.5 Estatstica Descritivas . . . . . . . . . . . . . .
9.6 Biblioteca ExpDes . . . . . . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

23
25
25
25
25
27
39

10 Ler fun
c
ao externa
10.1 Dados Multinacional . . . .
10.2 Gr
afico Lattice . . . . . . .
10.3 ScottKnott, o TukeyC . . .
10.4 TukeyC . . . . . . . . . . .
10.5 UsingR . . . . . . . . . . .
10.6 Regress
ao linear . . . . . .
10.7 Experimentac
ao . . . . . . .
10.8 Estatstica n
ao parametrica
10.9 Regress
ao logistica . . . . .
10.10Sturges . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

41
42
47
60
64
66
75
79
83
84
85

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

Notas sobre o R Linux


Andre Oliveira Souza
27 de dezembro de 2013

Leitura de dados usando copiar colar.

Neste t
opico ilustrei tres formas de um arquivo para dentro do R apenas com copiar e colar. Depois de
selecionar seus dados Ctrl+C em seu editor use read.table dentro do R.
1. dados<-read.table(clipboard,header=TRUE)
dados
2 1 2 39.85
2 1 3 40.15
2 2 1 40.13
2 2 2 40.13
2 2 3 39.56
2 3 1 39.63
2. dados2<-scan()
1 2 1 40.81
1 2 2 40.74
1 2 3 40.69
1 3 1 40.43
1 3 2 40.86
dados2
1 2 1 40.81
1 2 2 40.74
1 2 3 40.69
1 3 1 40.43
1 3 2 40.86
3. dados <-scan()
1 1 1 40.03
1 1 2 40.33
1 1 3 40.53
1 2 1 40.81
1 2 2 40.74
1 2 3 40.69
1 3 1 40.43
1 3 2 40.86
1 3 3 40.77
2 1 1 40.96
2 1 2 39.85
2 1 3 40.15
2 2 1 40.13
2 2 2 40.13
2 2 3 39.56
2 3 1 39.63
2 3 2 39.52
A

Language and Environment for Statistical Computing


em matem
atica, mestre em estatstica aplicada

Gradua
ca
o

2 3 3 39.45
dados2<-matrix(dados,nc=4,nr=18,byrow=T)
colnames(dados2)<-c(dia, amostra,replicata,resposta)
dados2
dia amostra replicata resposta
1 1 1 40.03
1 1 2 40.33
1 1 3 40.53
1 2 1 40.81
1 2 2 40.74
1 2 3 40.69
1 3 1 40.43
1 3 2 40.86
1 3 3 40.77
2 1 1 40.96
2 1 2 39.85
2 1 3 40.15
2 2 1 40.13
2 2 2 40.13
2 2 3 39.56
2 3 1 39.63
2 3 2 39.52
2 3 3 39.45
4. sexo=scan(what= as.character)
feminino
masculino
feminino
feminino
feminino
feminino
feminino
feminino
feminino
feminino
feminino
masculino
masculino
feminino
masculino
masculino
feminino
feminino
feminino
masculino
masculino
masculino
feminino
masculino
feminino

Recursos gr
aficos

Muitas vezes e de interesse que em um histograma ter os proporcoes em %. Isto pode ser obtido desta forma.

> rf<-c(540,510,200,0,0,150,356,400,357,510,600,400,600,950,800,1000,600)
> h <- hist(rf, plot = FALSE)
> hist(rf, prob = TRUE, main="",xlab="Classes",ylab="Propor
c~
ao",col="limegreen",labels = sprintf("%s%%",

0.0015

40%

26.67%

0.0010

Proporo

13.33%

0.0005

13.33%

0.0000

6.67%

200

400

600

800

1000

Classes

Figura 1: Porcentagem no histograma

100

f=function(x){ 17.37011+ 40.11928*(1-exp(-0.02134*x))}


f1=function(x){ 23.06253+ 38.21512*(1-exp(-0.01981*x))}
curve(f, 0,96, xlab='Tempo (horas)', ylab='Degradabilidade', xlim=c(0,120), ylim=c(0,100), bty='n', co
curve(f1, 0,96, add=T, lty=2, col=2)
legend(20,90, c('Tratamento 1', 'Tratamento 2'), col=c(1,2), lty=c(1,2), bty='n')

60
40
20

Degradabilidade

80

Tratamento 1
Tratamento 2

>
>
>
>
>

20

40

60

80

100

Tempo (horas)

Figura 2: Adicionar curvas

120

0.0010
0.0000

0.0005

Densidade

0.0015

> plot(density(rf),xlab="x",ylab="Densidade",main="",col=2,lty=2)

500

1000

Figura 3: Plotar densidade

> hist(rnorm(500,mean=2,sd=sqrt(4)),freq=FALSE,main="X~N(2,4)",xlab="",ylab="Densidade")
> curve(dnorm(x,mean=2,sd=sqrt(4)),col=2,lty=2,lwd=2,add=TRUE)

0.10
0.05
0.00

Densidade

0.15

0.20

X~N(2,4)

Figura 4: Curva normal

0.10
0.00

0.05

Frequncia

0.15

0.20

par(mfrow=c(2,1))
x <- rchisq(100, df = 4)
hist(x,prob=T, ylim = c(0, 0.2),main="",ylab="Frequ^
encia",xlab="Classes",col="lightgreen")
curve(dchisq(x, df = 4), col = 2, lty = 2, lwd = 2, add = TRUE)
BMI<-rnorm(n=1000, m=24.2, sd=2.2)
hist(BMI,prob=T, xlab="Classes", main="", col="lightgreen", xlim=c(15,35), ylim=c(0, .20),ylab="Frequ
curve(dnorm(x, mean=mean(BMI), sd=sd(BMI)), add=TRUE, lty=2, col = 2)

10

12

14

0.10
0.05

Frequencia

0.15

0.20

Classes

0.00

>
>
>
>
>
>
>

15

20

25
Classes

Figura 5: Curvas

30

35

par(mfrow=c(2,3))
BMI<-rnorm(n=1000, m=24.2, sd=2.2)
histinfo<-hist(BMI)
hist(BMI, breaks=20, main="Breaks=20")
hist(BMI, breaks=5, main="Breaks=5")
hist(BMI,breaks = "Sturges", main="Sturges")
hist(BMI, freq=FALSE, main="Density plot")
hist(BMI, freq=FALSE, xlab="Body Mass Index", main="Distribution of Body Mass Index", col="lightgreen"
curve(dnorm(x, mean=mean(BMI), sd=sd(BMI)), add=TRUE, col="darkblue", lwd=2)
Breaks=20

Breaks=5

20

25

30

300
0

100

50

50

200

Frequency

100

Frequency

100

Frequency

400

500

150

150

600

Histogram of BMI

20

25

30

15

20

25

30

BMI

BMI

Sturges

Density plot

Distribution of Body Mass Index

35

25
BMI

30

0.05
0.00

0.00
20

0.10

Density

0.10
0.05

Density

100
50

Frequency

0.15

150

0.15

0.20

BMI

>
>
>
>
>
>
>
>
>

20

25
BMI

Figura 6: curvas

30

15

20

25
Body Mass Index

30

35

150000
100000
50000

Frequency

200000

250000

300000

x=rnorm(999900,70,6)
y=rnorm(999900,12,2)
z=rnorm(999900,30,1)
hist(x,xlim=range(x,y,z),main="")
hist(y,add=TRUE, border='blue')
hist(z,add=TRUE, border='red')

>
>
>
>
>
>

20

40

60

80

Figura 7: Adicionar novo histograma num ja existente

100

par(mfrow=c(1,2))
curve(dnorm(x,mean=1,sd=sqrt(2)),lwd=2,from=-6,to=17,ylab="Densidade")
curve(dnorm(x,mean=10,sd=sqrt(2)),col=2,lwd=2,add=T)
legend('topright',legend=c(expression(mu==1),expression(mu==10)),text.col=c(1,2),cex=1.5,bty="n")
title("Comparando a distribui
c~
ao normal com m
edias diferentes")
curve(dnorm(x,mean=4,sd=sqrt(3)),lwd=2,from=-15,to=25,ylab="Densidade")
curve(dnorm(x,mean=4,sd=sqrt(20)),col=2,lwd=2,add=T)
legend('topright',legend=c(expression(sigma^2==3),expression(sigma^2==20)),text.col=c(1,2),cex=1.5,bty
title("Comparando a distribui
c~
ao normal com vari^
ancias diferentes")
Comparando a distribuio normal com mdias diferentes

Comparando a distribuio normal com varincias diferentes

=1
= 10

0.10

Densidade

0.15

0.05

0.10

0.00

0.05

Densidade

0.15

0.20

0.20

0.25

2 = 3
2 = 20

0.00

>
>
>
>
>
>
>
>
>

10

15

10

10
x

Figura 8: Curva normal

20

Frequncia

require(agricolae)
data(growth)
attach(growth)
h1<-hist(height,col="green",xlim=c(6,16),main="",ylab="Frequ^
encia",xlab="Classes")
normal.freq(h1,col="blue")

>
>
>
>
>

10

12
Classes

Figura 9: Curva ao histograma

10

14

16

>
>
>
>
>

TCF=seq(68,80)
RG=seq(32,37)
f1=function(x,y)3696.046+62.183*x-33.414*y
PCS=outer(TCF,RG,f1)
persp(TCF,RG,PCS,theta=-50,phi=-0,shade=2,ticktype = "simple",box=T,border=T,r = sqrt(20), d = 1,col="

PCS

TCF

RG

Figura 10: 3D

11

>
>
>
>
>
>
>
+
+
+
+
>

require(lattice)
b0 <- 10; b1 <- .5; b2 <- .3; int12 <- .2
g <- expand.grid(x = 1:20, y = 1:20)
g$z <- b0 + b1*g$x + b2*g$y + int12*g$x*g$y
i <- 45
rgb.palette <- colorRampPalette(c("yellow", "green4", "blue"), space = "rgb")
wireframe(z~x*y, data=g,
main="Em breve aqui estar
a o logotipo da [R-br]",
sub="Voc^
e tem sugest~
oes? Em breve uma enquete.",
screen=list(z=i, x=-60),
drape=TRUE, col.regions=rgb.palette(90))
Em breve aqui estar o logotipo da [Rbr]

100

80

z
60

40

x
20

Voc tem sugestes? Em breve uma enquete.

Figura 11: 3d

Filtro de banco de dados.

Algumas vezes necessitamos filtrar um banco de dados o que pode ser feito assim.
> test<-cbind(c(rep(c("a","b"),5),rep(c("c"),3)),rnorm(13,5))
> test
[,1] [,2]
[1,] "a" "6.73639601703966"
[2,] "b" "4.08931250781133"
[3,] "a" "4.6219843334702"
[4,] "b" "5.10199927530805"
[5,] "a" "4.28784778823526"
[6,] "b" "5.3458819717746"
[7,] "a" "3.55664508814877"
[8,] "b" "5.90286217355144"
[9,] "a" "6.71059636804312"
[10,] "b" "6.37526460075227"

12

[11,] "c" "5.09184556095365"


[12,] "c" "5.00340549838538"
[13,] "c" "4.73680938607341"
> colnames(test)<-c("trat","resposta")# Renomear colunas
> Trat<-test[,1] # Selecionado a primeira coluna da matriz
> Trat
[1] "a" "b" "a" "b" "a" "b" "a" "b" "a" "b" "c" "c" "c"
> Resposta<-test[,2]
> Resposta
[1] "6.73639601703966" "4.08931250781133" "4.6219843334702" "5.10199927530805"
[5] "4.28784778823526" "5.3458819717746" "3.55664508814877" "5.90286217355144"
[9] "6.71059636804312" "6.37526460075227" "5.09184556095365" "5.00340549838538"
[13] "4.73680938607341"
> dad=subset(test,Trat %in% c("a","c")) # Selecionar apenas trat a e c
> dad
trat resposta
[1,] "a" "6.73639601703966"
[2,] "a" "4.6219843334702"
[3,] "a" "4.28784778823526"
[4,] "a" "3.55664508814877"
[5,] "a" "6.71059636804312"
[6,] "c" "5.09184556095365"
[7,] "c" "5.00340549838538"
[8,] "c" "4.73680938607341"
> dad2=subset(test,Trat=="a") # Selecionar apenas trat a
> dad2
trat resposta
[1,] "a" "6.73639601703966"
[2,] "a" "4.6219843334702"
[3,] "a" "4.28784778823526"
[4,] "a" "3.55664508814877"
[5,] "a" "6.71059636804312"

Editor LaTeX + R + Sweave no linux

Ao usar R ambiente Linux para sair do manual R basta teclar Q e para terminar a execucao de determinado
processo Ctrl+C alem de quando precisar do caminho de algum arquivo no linux basta um Ctrl+L e a
compilac
ao de arquivos no Linux e feita por R CMD Sweave meu arquivo.rnw e para extrair apenas
o c
odigo R R CMD Stangle meu arquivo.rnw . Dois plugins especiais para o gedit com finalidade de
integrac
ao entre com R.s
ao:
1. Gedit-latex-plugin que pode ser instalado com;
sudo aptitude purge gedit-latex-plugin via terminal do Linux.
2. Rgedit que integra R com Gedit.
http://www.stattler.com/article/using-gedit-or-rgedit-r
http://sourceforge.net/projects/rgedit/
A melhor altenativa de IDE/livre e o Rstudio interface multiplataforma que tem perfeita integracao com R e
em 4 janelas pre definidas, perimite atuliazar pacotes e instalar pacotes de forma interativa. Pode ser baixada
em http://www.rstudio.org/
1. R+LATEX+ SWEAVE
2. R+LATEX+Knitr
3. R+HTML+Markdown

13

4.1

Sweave linux

Para compilar o arquivo .rnw basta usar dentro do R:


1. setwd(/home/andre/pasta)
2. Sweave(nomedoarquivo.rnw)
3. system(pdflatex nomedoarquivo.tex)
No RStudio a compilac
ao e feita direta no menu compilacao
compilePdf(/media/KINGSTON/apostilaR2/apostilaR.rnw)

4.2

knitr no linux

Gerac
ao de relat
orios din
amicos elegante, flexvel e rapida com R. O pacote foi projetado para ser um mecanismo de transparencia para a gerac
ao de relatorios dinamicos com R, resolver alguns problemas de longa
data em Sweave. knitr tem mesmo prop
osito do sweave. Instale o pacote knitr e crie seu arquivo .rnw install.packages(knitr, dep=T) n
ao e necesario carregar nenhum pacote no .rnw nem mesmo a biblioteca
knitr precisa ser carregada. A complilac
ao no RStudio e feita direta no menu compilacao desde que modifique
o tipo de arquivo .rnw na configurac
ao do RStudio.

4.3

Salvar imagens linux

Salvar uma imagem deve-se proceder da seguinte forma.


> pdf("arquivo.pdf",wid=640, hei=480) # Salvar em pdf
> plot(1:10, 1:10)
> dev.off()
null device
1
> png("arquivo.png",wid=640, hei=480) # Salvar em png
> plot(1:10, 1:10)
> dev.off()
null device
1

4.4

Sites importantes de apoio ao R na internet

http://ridiculas.wordpress.com
http://www.leg.ufpr.br/~paulojus/embrapa/Rembrapa
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
www.leg.ufpr.br/ce223
http://cran.r-project.org/web/views/
http://www.leg.ufpr.br/doku.php/pessoais:walmes

4.5

A mudanca de diret
orio

A mudanca de diret
orio pode ser feita da seguinte forma.
> getwd() # Area de trabalho atual
[1] "/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2"
> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2") # Mudan
ca de diret
orio

14

4.6

Configuraco
es b
asicas para Linux

Para ler diretamente um banco de dados direto no formato .xls uma alternativa no Linux e o pacote gdata. Que
deve ser instalado inicialmente com o comando direto no terminal R install.packages(gdata, dep=T) ou
R CMD INSTALL nome do pacote .tar.gz para instalar um pacote ja baixado assim como a atualizac
ao de
um pacote especfico pode ser feita por update.packages(ask=gdata) e update.packages(ask= ) ou
update.packages(ask=F) para atualizar as bibliotecas ja instaladas. Para ver os banco de dados instalados
e disponveis no R data(). A edic
ao de um banco de dados pode ser feita com o comando fix(dados) ou
edit(dados) sendo que o ideal e configurar o editor de dados primeiramente options(editor=gedit).
Instalar um arquivo tar.gz basta install.packages(caminho/PACOTE.tar.gz,repos=NULL) a vers
ao de
cada pacote pode ser feita require(pacote) e depois veja as informacoes dessa sessao com sessionInfo(). Para
saber se est
a instalado e onde est
a find.package(NomeDoPacote) a descricao completa do pacote packageDescription(NomeDoPacote) para ver apenas a versao packageDescription(NomeDoPacote)$Version.
Para carregar um pacote de oculto (silencioso) require(xtable, quietly = TRUE) e instalar mais de um
pacote ao mesmo tempo install.packages(c(knitr, xtable), dependencies = TRUE). Os pacotes
carregados em uma sec
ao do R podem ser vistos com search()

4.7

Ajuda e demostrac
oes

Para obter ajuda em HTML no Linux basta usar a rotina.


> require(xtable)
> help(print.xtable, help_type="html")
Para obter a demonstrac
ao pode se usar a funcaodemo
> demo(plotmath)

4.8

Interface amig
avel para R

O pacote Rcmdr foi desenvolvido por John Fox visando atender a esta demanda. Para utilizar este pacote basta
instal
a-lo e carregar com o comando require(Rcmdr) e o menu se abrira automaticamente. Atencao: Note que
o Rcmdr n
ao prove acesso a toda funcionalidade do R mas simplesmente a alguns procedimentos estatsticos
mais usuais.
> install.packages("Rcmdr",dep=T)
> requre(Rcmdr)

4.9

Adicionando reposit
orios

1. Ver Codename no terminal Linux lsb_release -a


2. sudo gedit /etc/apt/sources.list
3. deb http://cran-r.c3sl.ufpr.br/bin/linux/ubuntu Codename/
4. sudo apt-get update&&sudo apt-get upgrade
5. gpg keyserver subkeys.pgp.net recv-key E2A11821
6. gpg -a export E2A11821 | sudo apt-key add Ou coloca esta chave abaixo se a de acima nao for aceita.
7. gpg keyserver keyserver.ubuntu.com recv-key E084DAB9
8. gpg -a export E084DAB9 | sudo apt-key add 9. Pode adicionar chave via arquivo sudo apt-key add arquivo.txt
A verificac
ao do Codename tambem pode ser consultada aqui http://cran-r.c3sl.ufpr.br/bin/linux

4.10

Gerador de tabela em LaTeX e HTML

http://www.tablesgenerator.com/
15

4.11

Manipulac
ao de diret
orios

> getwd()
[1] "/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2"
> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")
> require(xtable)
> require(gdata)
> dad<-read.xls("fungo.xls", encoding = "latin1") # Lendo banco de dados .xls
> str(dad)
# Imprimindo caracter
sticas de banco de dados dad
'data.frame':
198 obs. of 6 variables:
$ fruta : Factor w/ 3 levels "Abric
c","Batata",..: 3 3 3 3 3 3 3 3 3 3 ...
$ situa : Factor w/ 2 levels "Agitac","estac": 2 2 2 2 2 2 2 2 2 2 ...
$ cond : Factor w/ 2 levels "ci","si": 2 2 2 2 2 2 2 2 2 2 ...
$ tempo : Factor w/ 11 levels "10D","12D","14D",..: 8 9 10 11 1 2 3 4 5 6 ...
$ qtde : Factor w/ 3 levels "e0","e100","e200": 1 1 1 1 1 1 1 1 1 1 ...
$ medida: num 1.99 0.9 0.89 1.92 1.93 1.93 1.93 1.93 2.04 2.04 ...
> attach(dad) # Reconhecendo as vari
aveis do banco de dados dad
> detach(dad) # Deixando de reconhecer as vari
aveis do banco de dados dad
> summary(dad) # Estat
sticas descritivas do banco de dados dad
fruta
situa
cond
tempo
qtde
medida
Abric
c :66
Agitac:99
ci:132
10D
:18
e0 :66
Min.
:0.530
Batata :66
estac :99
si: 66
12D
:18
e100:66
1st Qu.:1.440
Cupua
cu:66
14D
:18
e200:66
Median :1.950
16D
:18
Mean
:1.838
18D
:18
3rd Qu.:2.098
20D
:18
Max.
:3.160
(Other):90
> head(dad) # seis primeiras linhas do banco de dados
fruta situa cond tempo qtde medida
1 Cupua
cu estac
si
2D
e0
1.99
2 Cupua
cu estac
si
4D
e0
0.90
3 Cupua
cu estac
si
6D
e0
0.89
4 Cupua
cu estac
si
8D
e0
1.92
5 Cupua
cu estac
si
10D
e0
1.93
6 Cupua
cu estac
si
12D
e0
1.93
> dad2<-read.xls("fungo.xls", encoding = "latin1") # Ou encoding="utf-8" para ler acentos
> head(dad2)
fruta situa cond tempo qtde medida
1 Cupua
cu estac
si
2D
e0
1.99
2 Cupua
cu estac
si
4D
e0
0.90
3 Cupua
cu estac
si
6D
e0
0.89
4 Cupua
cu estac
si
8D
e0
1.92
5 Cupua
cu estac
si
10D
e0
1.93
6 Cupua
cu estac
si
12D
e0
1.93
> dados4<-read.xls("teste.xlsx") #
Lendo banco de dados .xlsx
> dados4
x y z
1 2 3 3
2 3 6 4
3 4 7 5
4 5 8 6
5 6 9 8
6 5 0 9
> library(XLConnect)
> teste1<- readWorksheet(loadWorkbook("teste.xlsx"),sheet=1)
> teste1
x y z
1 2 3 3
2 3 6 4
16

3
4
5
6
>
>

4 7 5
5 8 6
6 9 8
5 0 9
teste2<- readWorksheet(loadWorkbook("fungo.xls"),sheet=1)
head(teste2)
fruta situa cond tempo qtde medida
1 Cupua
cu estac
si
2D
e0
1.99
2 Cupua
cu estac
si
4D
e0
0.90
3 Cupua
cu estac
si
6D
e0
0.89
4 Cupua
cu estac
si
8D
e0
1.92
5 Cupua
cu estac
si
10D
e0
1.93
6 Cupua
cu estac
si
12D
e0
1.93
> require(xlsx)
> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")
> dados=read.xlsx("teste.xlsx",sheetIndex=1)
> str(dados)
'data.frame':
6 obs. of 3 variables:
$ x: num 2 3 4 5 6 5
$ y: num 3 6 7 8 9 0
$ z: num 3 4 5 6 8 9
> summary(dados)
x
y
z
Min.
:2.000
Min.
:0.00
Min.
:3.000
1st Qu.:3.250
1st Qu.:3.75
1st Qu.:4.250
Median :4.500
Median :6.50
Median :5.500
Mean
:4.167
Mean
:5.50
Mean
:5.833
3rd Qu.:5.000
3rd Qu.:7.75
3rd Qu.:7.500
Max.
:6.000
Max.
:9.00
Max.
:9.000
> dados3<-read.csv2("dbc.csv", h = T)
> dados3
Tra.Bloco.Y
1
a,A,83
2
a,B,63
3
a,C,55
4
b,A,86
5
b,B,69
6
b,C,61
7
c,A,103
8
c,B,79
9
c,C,79
10
d,A,116
11
d,B,81
12
d,C,79
13
e,A,132
14
e,B,98
15
e,C,91
> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2") # Nova
area de trabalho
An
alise descritiva de algumas vari
aveis do banco de dados dad.
> attach(dad)
> summary(medida) # Resumo descritivo da vari
avel medida
Min. 1st Qu. Median
Mean 3rd Qu.
Max.
0.530
1.440
1.950
1.838
2.098
3.160

> dados<-read.table("http://www.leg.ufpr.br/~walmes/data/pimentel_bib3.txt",header=TRUE)# ler dados dire

17

4.12

par(mfrow=c(1,2))
hist(medida,xlab="Medidas",ylab="Densidade",main="",col="limegreen")
boxplot(medida~fruta,col="blue",main="")
points(1:nlevels(fruta), tapply(medida,fruta, mean),pch=19,col="red")

2.5
2.0

40

1.5

30
0

0.5

10

1.0

20

Densidade

50

3.0

60

>
>
>
>

Box plot com m


edia destacadas

0.5

1.0

1.5

2.0

2.5

3.0

3.5

Abric

Batata

Cupuau

Medidas

Figura 12: Estatsticas descritivas

Fun
c
ao densidade probabilidade fdp

Plotando uma fdp definida por mais de uma sentenca.


> x <- seq(-1,5,by=.1)
> y<-x/2*(x>=0 & x<1) + 1/2*(x>=1 & x<2)+((3-x)/2)*(x>=2 &x<3)+0

0.0

0.1

0.2

f(x)

0.3

0.4

0.5

> plot(x,y,type="l",ylab="f(x)")

Figura 13: Funcao densidade probabilidade fdp

> f1<-function(x) {
+ ret<-x/2*(x>=0 & x<1) + 1/2*(x>=1 & x<2)+ ((3-x)/2)*(x>=2
+ &x<3)+0
18

+
+
>
1

ret
}
integrate(f1,-1,5) # Integra
c~
ao da fun
c~
ao f(x) entre -1 e 5
with absolute error < 7.4e-05

Para arredondar o valor da integral integrate(f1,-1,5)$value

Matem
atica

Determinac
ao dos divisores de um n
umero natural
> require(divisors)
> divisors(131)
$num
[1] 2
$divs
[1]
1 131
A resoluc
ao de uma equac
ao pode ser feita assim. Considere f (x) = 3 4.x + x2
> polyroot(c(3, -4, 1))
[1] 1+0i 3+0i
O Resto da divis
ao de a por b e dado por
> 150 %% 13
[1] 7
C49,6 =

49!
6!(496)!

> factorial(49)/(factorial(6)*factorial(49-6))
[1] 13983816
> y=c(1,2,3,4,4,5,6,7,8,0,9)
> y
[1] 1 2 3 4 4 5 6 7 8 0 9
> as.integer(y >= 3) # Maiores iguais a 3 coloque 1 menores que tr^
es coloque 0
[1] 0 0 1 1 1 1 1 1 1 0 1

Tabela da ANOVA

As func
oes lm, aov e Anova (pacote car) s
ao as mais comuns para imprimir a tabela da ANOVA. Apenas para
fins de ilustrac
ao ser
a construido 3 modelos, cada um com uma das funcoes para fins de comparacao.
> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")
> require(gdata)
> dad2<-read.xls("dbc.xls")
> attach(dad2)
> require(car)
> fit1=lm(Y~Tra+Bloco)
> options(scipen=5)
> summary(fit1)
Call:
lm(formula = Y ~ Tra + Bloco)
Residuals:
Min
1Q Median
-5.0
-3.0
-1.0

3Q
3.5

Max
6.0
19

Coefficients:
Estimate Std. Error t value
(Intercept)
86.000
3.276 26.250
Trab
5.000
3.916
1.277
Trac
20.000
3.916
5.108
Trad
25.000
3.916
6.384
Trae
40.000
3.916 10.215
BlocoB
-26.000
3.033 -8.572
BlocoC
-31.000
3.033 -10.220
--Signif. codes: 0 *** 0.001 ** 0.01

Pr(>|t|)
0.00000000477
0.237456
0.000921
0.000213
0.00000723969
0.00002647667
0.00000721153

***
***
***
***
***
***

* 0.05 . 0.1 1

Residual standard error: 4.796 on 8 degrees of freedom


Multiple R-squared: 0.9696,
Adjusted R-squared:
F-statistic: 42.46 on 6 and 8 DF, p-value: 0.00001226

0.9467

> options(show.signif.stars=FALSE) # Retira a indica


c~
ao de fatores significativos
>
>
>
>

require(xtable)
a=anova(fit1)
x=xtable(a,caption ="Tabela ANOVA",align="llllll")
print(x,caption.placement='top',table.placement="H")

Tra
Bloco
Residuals

Df
4
2
8

Tabela 1: Tabela ANOVA


Sum Sq Mean Sq F value
3090.00 772.50
33.59
2770.00 1385.00
60.22
184.00
23.00

Pr(>F)
0.0000
0.0000

> u=Anova(fit1)
> xtable(u)

Tra
Bloco
Residuals

Sum Sq
3090.00
2770.00
184.00

(Intercept)
Tra
Bloco
Residuals

Sum Sq
15848.57
3090.00
2770.00
184.00

Df
4
2
8

F value
33.59
60.22

Pr(>F)
0.0000
0.0000

> p=Anova(fit1,type="III")
> xtable(p)
Df
1
4
2
8

20

F value
689.07
33.59
60.22

Pr(>F)
0.0000
0.0000
0.0000

7.1

par(mfrow=c(2,2))
p<-0.4
n<-10
x<-0:n
px<-choose(n,x)*p^x*(1-p)^(n-x)
barplot(px,names=as.character(x))
plot(0:8,choose(8,0:8),type="h",main="Coeficiente binomial")
barplot(dbinom(0:4,4,0.1),names=as.character(0:4),xlab="x",ylab="f(x)")
plot(dbinom(0:16, 16, 0.3), type = "h", xlab = "Numeros de f^
emeas",ylab = "Probabilidade")

50
20
0

0.00

0.15

choose(8, 0:8)

Coeficiente binomial

10

0.20
0.10
0.00

0.0

0.3

Probabilidade

0.6

0:8

f(x)

>
>
>
>
>
>
>
>
>
>

Distribuic
ao Binomial

10
Numeros de fmeas

Figura 14: Distribuicao de probabilidade binomial

21

15

7.2

0
1
2

par(mfrow=c(1,2))
x=rnorm(33)
boxplot(x)
boxplot(x,notch=T)

>
>
>
>

BoxPlot

Figura 15: Boxplot

Multivariada

Uma func
ao que pode ajudar nas an
alises e manova
> tear <- c(6.5, 6.2, 5.8, 6.5, 6.5, 6.9, 7.2, 6.9, 6.1, 6.3,
+
6.7, 6.6, 7.2, 7.1, 6.8, 7.1, 7.0, 7.2, 7.5, 7.6)
> gloss <- c(9.5, 9.9, 9.6, 9.6, 9.2, 9.1, 10.0, 9.9, 9.5, 9.4,
+
9.1, 9.3, 8.3, 8.4, 8.5, 9.2, 8.8, 9.7, 10.1, 9.2)
> opacity <- c(4.4, 6.4, 3.0, 4.1, 0.8, 5.7, 2.0, 3.9, 1.9, 5.7,
+
2.8, 4.1, 3.8, 1.6, 3.4, 8.4, 5.2, 6.9, 2.7, 1.9)
> Y <- cbind(tear, gloss, opacity)
> rate <- factor(gl(2,10), labels=c("Low", "High"))
> additive <- factor(gl(2, 5, length=20), labels=c("Low", "High"))
> fit <- manova(Y ~ rate*additive)
> summary.aov(fit)
# Tabela de anova univariadas
Response tear :
Df Sum Sq Mean Sq F value
Pr(>F)
rate
1 1.7405 1.74050 15.7868 0.001092 **
additive
1 0.7605 0.76050 6.8980 0.018330 *
rate:additive 1 0.0005 0.00050 0.0045 0.947143
Residuals
16 1.7640 0.11025
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Response gloss :
Df Sum Sq
rate
1 1.3005
additive
1 0.6125
rate:additive 1 0.5445
Residuals
16 2.6280
---

Mean Sq F value Pr(>F)


1.30050 7.9178 0.01248 *
0.61250 3.7291 0.07139 .
0.54450 3.3151 0.08740 .
0.16425

22

Signif. codes:

0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

Response opacity :
Df Sum Sq Mean Sq F value Pr(>F)
rate
1 0.421 0.4205 0.1036 0.7517
additive
1 4.901 4.9005 1.2077 0.2881
rate:additive 1 3.960 3.9605 0.9760 0.3379
Residuals
16 64.924 4.0578
> summary(fit)
# Tabela manova
Df Pillai approx F num Df den Df
Pr(>F)
rate
1 0.61814
7.5543
3
14 0.003034 **
additive
1 0.47697
4.2556
3
14 0.024745 *
rate:additive 1 0.22289
1.3385
3
14 0.301782
Residuals
16
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
A extrac
ao de elementos necess
arios podem ser feito por fit$Eigenvalues ou fit$SS

Modelos lineares generalizados - GLM

Para pesquisar sobre alguma func


ao pode ser feito por RSiteSearch(glm) ou ?glm
>
>
>
>
>

counts <- c(18,17,15,20,10,20,25,13,12)


outcome <- gl(3,1,9)
treatment <- gl(3,3)
dados<- data.frame(treatment, outcome, counts)
dados
treatment outcome counts
1
1
1
18
2
1
2
17
3
1
3
15
4
2
1
20
5
2
2
10
6
2
3
20
7
3
1
25
8
3
2
13
9
3
3
12
> str(dados)
'data.frame':
9 obs. of 3 variables:
$ treatment: Factor w/ 3 levels "1","2","3": 1 1 1 2 2 2 3 3 3
$ outcome : Factor w/ 3 levels "1","2","3": 1 2 3 1 2 3 1 2 3
$ counts
: num 18 17 15 20 10 20 25 13 12
> fit1<-glm(counts~outcome+treatment,family=poisson())
> anova(fit1,test="Chisq")
Analysis of Deviance Table
Model: poisson, link: log
Response: counts
Terms added sequentially (first to last)

Df Deviance Resid. Df Resid. Dev Pr(>Chi)


NULL
8
10.5814
outcome
2
5.4523
6
5.1291 0.06547 .
treatment 2
0.0000
4
5.1291 1.00000
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
23

> summary(fit1)
Call:
glm(formula = counts ~ outcome + treatment, family = poisson())
Deviance Residuals:
1
2
3
-0.67125
0.96272 -0.16965
9
-0.96656

4
-0.21999

5
-0.95552

6
1.04939

7
0.84715

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.045e+00 1.709e-01 17.815
<2e-16 ***
outcome2
-4.543e-01 2.022e-01 -2.247
0.0246 *
outcome3
-2.930e-01 1.927e-01 -1.520
0.1285
treatment2 -1.305e-15 2.000e-01
0.000
1.0000
treatment3 -1.865e-15 2.000e-01
0.000
1.0000
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
(Dispersion parameter for poisson family taken to be 1)
Null deviance: 10.5814
Residual deviance: 5.1291
AIC: 56.761

on 8
on 4

degrees of freedom
degrees of freedom

Number of Fisher Scoring iterations: 4


> summary(step(fit1,direction="backward"),trace=0)
Start: AIC=56.76
counts ~ outcome + treatment

- treatment
<none>
- outcome

Df Deviance
AIC
2
5.1291 52.761
5.1291 56.761
2 10.5814 58.214

Step: AIC=52.76
counts ~ outcome

<none>
- outcome

Df Deviance
AIC
5.1291 52.761
2 10.5814 54.214

Call:
glm(formula = counts ~ outcome, family = poisson())
Deviance Residuals:
Min
1Q
Median
-0.9666 -0.6713 -0.1696

3Q
0.8471

Max
1.0494

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept)
3.0445
0.1260 24.165
<2e-16 ***
outcome2
-0.4543
0.2022 -2.247
0.0246 *
outcome3
-0.2930
0.1927 -1.520
0.1285
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
(Dispersion parameter for poisson family taken to be 1)

24

8
-0.09167

Null deviance: 10.5814


Residual deviance: 5.1291
AIC: 52.761

on 8
on 6

degrees of freedom
degrees of freedom

Number of Fisher Scoring iterations: 4


> summary(step(fit1,direction="forward"),trace=0)
Start: AIC=56.76
counts ~ outcome + treatment

Call:
glm(formula = counts ~ outcome + treatment, family = poisson())
Deviance Residuals:
1
2
3
-0.67125
0.96272 -0.16965
9
-0.96656

4
-0.21999

5
-0.95552

6
1.04939

7
0.84715

8
-0.09167

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.045e+00 1.709e-01 17.815
<2e-16 ***
outcome2
-4.543e-01 2.022e-01 -2.247
0.0246 *
outcome3
-2.930e-01 1.927e-01 -1.520
0.1285
treatment2 -1.305e-15 2.000e-01
0.000
1.0000
treatment3 -1.865e-15 2.000e-01
0.000
1.0000
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
(Dispersion parameter for poisson family taken to be 1)
Null deviance: 10.5814
Residual deviance: 5.1291
AIC: 56.761

on 8
on 4

degrees of freedom
degrees of freedom

Number of Fisher Scoring iterations: 4


Para calculo da qualidade de ajuste de uma regressao logstica pode si utilizar o pacote library(descr) e
LogRegR2(fit1).
drop1(fit1, test=Chisq)
drop1(fit1, test=F)
add1(fit1) solta AIC

9.1

Redefinic
ao de nveis de refer
encia

9.2

Contrates em GLM

9.3

Func
ao de m
axima verossimilhanca penalizada

> require(logistf) # Penaliza


c~
ao Firth 1993
> require(brglm)
# Penaliza
c~
ao Firth 1993

9.4

Teste estatsticos

Uma tabela de dupla entrada pode ser inserida no R assim.


> matriz <- matrix(c(156,9421,1531,14797),nrow=2,byrow=TRUE)
> colnames(matriz)<-c("Disease","Control")

25

> rownames(matriz)<-c("Exposed","Unexposed")
> matriz
Disease Control
Exposed
156
9421
Unexposed
1531
14797
Teste em tabelas de contingencia Teste de quiquadrado e Fisher.

> x<-matrix(c(101,58,113,106,32,165,77,55,98),3,3,dimnames = list(A=c("autistas","deficientes", "t


picos
> x
B
A
0-6 meses 6-12 meses 12-18 meses
autistas
101
106
77
deficientes
58
32
55
t
picos
113
165
98
> chisq.test(x)
Pearson's Chi-squared test
data: x
X-squared = 22.1991, df = 4, p-value = 0.0001829
> fisher.test(x,workspace=10000000)
Fisher's Exact Test for Count Data
data: x
p-value = 0.0001183
alternative hypothesis: two.sided
Uma opc
ao muito legal e chisq.test(x)$expected para calcular a esperanca das caselas. Ou usar o pacote
epicalc para montar uma tabela.
> require(epicalc)
> dados<- as.data.frame(UCBAdmissions)
> dados
Admit Gender Dept Freq
1 Admitted
Male
A 512
2 Rejected
Male
A 313
3 Admitted Female
A
89
4 Rejected Female
A
19
5 Admitted
Male
B 353
6 Rejected
Male
B 207
7 Admitted Female
B
17
8 Rejected Female
B
8
9 Admitted
Male
C 120
10 Rejected
Male
C 205
11 Admitted Female
C 202
12 Rejected Female
C 391
13 Admitted
Male
D 138
14 Rejected
Male
D 279
15 Admitted Female
D 131
16 Rejected Female
D 244
17 Admitted
Male
E
53
18 Rejected
Male
E 138
19 Admitted Female
E
94
20 Rejected Female
E 299
21 Admitted
Male
F
22
22 Rejected
Male
F 351
23 Admitted Female
F
24
24 Rejected Female
F 317
> xtabs(Freq ~ Gender + Admit, dados)

26

Admit
Gender
Admitted Rejected
Male
1198
1493
Female
557
1278

9.5

Estatstica Descritivas

>
>
>
>
>

counts <- c(18,17,15,20,10,20,25,13,12)


outcome <- gl(3,1,9)
treatment <- gl(3,3)
dados<- data.frame(treatment, outcome, counts)
dados
treatment outcome counts
1
1
1
18
2
1
2
17
3
1
3
15
4
2
1
20
5
2
2
10
6
2
3
20
7
3
1
25
8
3
2
13
9
3
3
12
> str(dados)
'data.frame':
9 obs. of 3 variables:
$ treatment: Factor w/ 3 levels "1","2","3": 1 1 1 2 2 2 3 3 3
$ outcome : Factor w/ 3 levels "1","2","3": 1 2 3 1 2 3 1 2 3
$ counts
: num 18 17 15 20 10 20 25 13 12
> tapply(counts,outcome, mean)
1
2
3
21.00000 13.33333 15.66667
> tapply(counts,outcome, sd)
1
2
3
3.605551 3.511885 4.041452
> tapply(counts,outcome, var)
1
2
3
13.00000 12.33333 16.33333
> by(counts,outcome, mean)
outcome: 1
[1] 21
-----------------------------------------------------------outcome: 2
[1] 13.33333
-----------------------------------------------------------outcome: 3
[1] 15.66667
Ou obter as tres estatsticas em uma mesma tabela.
> library(doBy)
> summaryBy(counts~outcome,dados,FUN=c(mean,sd,var))
outcome counts.mean counts.sd counts.var
1
1
21.00000 3.605551
13.00000
2
2
13.33333 3.511885
12.33333
3
3
15.66667 4.041452
16.33333
>
>
>
>
>

require(fdth)
x<-rnorm(n=100,mean=5,sd=1)
fdt(x)
d=fdt(x)
d
27

Class limits
[2.99,3.6)
[3.6,4.21)
[4.21,4.81)
[4.81,5.42)
[5.42,6.03)
[6.03,6.64)
[6.64,7.24)
[7.24,7.85)

f
6
15
18
31
15
11
3
1

rf rf(%) cf cf(%)
0.06
6
6
6
0.15
15 21
21
0.18
18 39
39
0.31
31 70
70
0.15
15 85
85
0.11
11 96
96
0.03
3 99
99
0.01
1 100
100

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dad<-read.xls("dados.xls")
> str(dad)
'data.frame':
36 obs. of 5 variables:
$ sexo : Factor w/ 2 levels "feminino ","masculino ": 2 2 1 2 1 2 1 2 1 2 ...
$ esc
: Factor w/ 3 levels "1 grau","2 grau",..: 1 1 1 2 1 1 1 1 2 2 ...
$ sal
: num 4 4.56 5.25 5.73 6.26 6.66 6.86 7.39 7.59 7.84 ...
$ idad : int 26 32 36 20 40 28 41 43 34 23 ...
$ filhos: int 0 1 2 0 1 1 0 0 1 0 ...
> attach(dad)
> require(xtable)
> s<-xtable(dad, align="llllll",caption ="Tabela de frequ^
encia empresa",label = "Tfreq")
> print(s,table.placement = "H", caption.placement='top',floating=TRUE)

28

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

Tabela 2: Tabela de frequencia


sexo
esc
sal
masculino 1 grau
4.00
masculino 1 grau
4.56
feminino
1 grau
5.25
masculino 2 grau
5.73
feminino
1 grau
6.26
masculino 1 grau
6.66
feminino
1 grau
6.86
masculino 1 grau
7.39
feminino
2 grau
7.59
masculino 2 grau
7.84
feminino
2 grau
8.12
masculino 1 grau
8.46
feminino
2 grau
8.74
masculino 1 grau
8.95
feminino
2 grau
9.13
masculino 2 grau
9.35
feminino
2 grau
9.77
masculino 1 grau
9.80
feminino
superior 10.53
masculino 2 grau
10.76
feminino
2 grau
11.06
masculino 1 grau
11.59
feminino
2 grau
12.00
masculino superior 12.79
feminino
2 grau
13.23
masculino 2 grau
13.60
feminino
1 grau
13.85
masculino 2 grau
14.69
masculino 2 grau
14.71
masculino 2 grau
15.99
feminino
superior 16.22
masculino 2 grau
16.61
feminino
superior 17.26
masculino superior 18.75
feminino
2 grau
19.40
masculino superior 23.30

empresa
idad filhos
26
0
32
1
36
2
20
0
40
1
28
1
41
0
43
0
34
1
23
0
33
2
27
0
37
0
44
3
30
0
38
3
31
1
39
2
25
1
37
0
30
1
34
2
41
4
26
0
32
2
35
2
46
0
29
2
40
5
35
2
31
3
36
1
43
3
33
4
48
2
42
3

> fit=lm(sal~esc+sexo)
> xtable(anova(fit))

esc
sexo
Residuals

Df
2
1
32

Sum Sq
307.82
10.47
415.49

Mean Sq
153.91
10.47
12.98

F value
11.85
0.81

Pr(>F)
0.0001
0.3759

> xtable(summary(fit))

(Intercept)
esc2 grau
escsuperior
sexomasculino

Estimate
7.0698
3.9540
8.8557
1.0990

Std. Error
1.3221
1.3583
1.8132
1.2240

> require(fdth)
> tab1=fdt(idad, start=20,h=6,end=50)
> tab1
29

t value
5.35
2.91
4.88
0.90

Pr(>|t|)
0.0000
0.0065
0.0000
0.3759

Class limits f
rf rf(%) cf cf(%)
[20,26) 3 0.08 8.33 3
8.33
[26,32) 9 0.25 25.00 12 33.33
[32,38) 12 0.33 33.33 24 66.67
[38,44) 9 0.25 25.00 33 91.67
[44,50) 3 0.08 8.33 36 100.00
> tab2=fdt(idad,breaks="Sturges")
> tab2
Class limits f
rf rf(%) cf cf(%)
[19.8,23.9) 2 0.06 5.56 2
5.56
[23.9,28) 4 0.11 11.11 6 16.67
[28,32.1) 8 0.22 22.22 14 38.89
[32.1,36.2) 8 0.22 22.22 22 61.11
[36.2,40.3) 6 0.17 16.67 28 77.78
[40.3,44.4) 6 0.17 16.67 34 94.44
[44.4,48.5) 2 0.06 5.56 36 100.00
> dados=cbind(rnorm(8000),rnorm(8000))
> tab3=fdt(dados,breaks="Sturges")
> tab3
Column:1
Class limits
f
rf rf(%)
cf cf(%)
[-3.5,-2.95)
13 0.00 0.16
13
0.16
[-2.95,-2.4)
56 0.01 0.70
69
0.86
[-2.4,-1.85) 174 0.02 2.17 243
3.04
[-1.85,-1.3) 507 0.06 6.34 750
9.38
[-1.3,-0.753) 1094 0.14 13.68 1844 23.05
[-0.753,-0.205) 1545 0.19 19.31 3389 42.36
[-0.205,0.344) 1800 0.22 22.50 5189 64.86
[0.344,0.892) 1388 0.17 17.35 6577 82.21
[0.892,1.44) 875 0.11 10.94 7452 93.15
[1.44,1.99) 381 0.05 4.76 7833 97.91
[1.99,2.54) 122 0.02 1.52 7955 99.44
[2.54,3.09)
37 0.00 0.46 7992 99.90
[3.09,3.64)
5 0.00 0.06 7997 99.96
[3.64,4.18)
3 0.00 0.04 8000 100.00
Column:2
Class limits
[-4.02,-3.47)
[-3.47,-2.92)
[-2.92,-2.37)
[-2.37,-1.82)
[-1.82,-1.27)
[-1.27,-0.723)
[-0.723,-0.174)
[-0.174,0.375)
[0.375,0.924)
[0.924,1.47)
[1.47,2.02)
[2.02,2.57)
[2.57,3.12)
[3.12,3.67)

f
2
15
66
209
538
1043
1528
1732
1411
884
390
147
30
5

rf
0.00
0.00
0.01
0.03
0.07
0.13
0.19
0.22
0.18
0.11
0.05
0.02
0.00
0.00

rf(%)
0.02
0.19
0.82
2.61
6.73
13.04
19.10
21.65
17.64
11.05
4.88
1.84
0.38
0.06

cf cf(%)
2
0.02
17
0.21
83
1.04
292
3.65
830 10.38
1873 23.41
3401 42.51
5133 64.16
6544 81.80
7428 92.85
7818 97.73
7965 99.56
7995 99.94
8000 100.00

> plot(tab1, ylab="Frequencia",xlab="")

30

14
12
10
8
6
0

Frequencia

20

26

32

38

44

50

> plot(tab3, ylab="Frequencia",xlab="")

1000
0

Frequencia

Column:1

3.50

2.40

1.30

0.20

0.89

1.99

3.09

4.18

1.47

2.57

3.67

1000 2000
0

Frequencia

Column:2

4.02

2.92

1.82

0.72

0.38

> median(sal)
[1] 10.165
> dad2=subset(dad, sexo == "masculino ")
> dad2
sexo
esc
sal idad filhos
1 masculino
1 grau 4.00
26
0
2 masculino
1 grau 4.56
32
1
4 masculino
2 grau 5.73
20
0
6 masculino
1 grau 6.66
28
1
8 masculino
1 grau 7.39
43
0
10 masculino
2 grau 7.84
23
0
12 masculino
1 grau 8.46
27
0
14 masculino
1 grau 8.95
44
3
16 masculino
2 grau 9.35
38
3
18 masculino
1 grau 9.80
39
2
20 masculino
2 grau 10.76
37
0
22 masculino
1 grau 11.59
34
2
24 masculino superior 12.79
26
0
26 masculino
2 grau 13.60
35
2
28 masculino
2 grau 14.69
29
2
29 masculino
2 grau 14.71
40
5
30 masculino
2 grau 15.99
35
2
31

32 masculino
2 grau 16.61
34 masculino superior 18.75
36 masculino superior 23.30
> summary(dad2)
sexo
esc
feminino : 0
1 grau :8
masculino :20
2 grau :9
superior:3

36
33
42

1
4
3

sal
Min.
: 4.000
1st Qu.: 7.728
Median :10.280
Mean
:11.277
3rd Qu.:14.695
Max.
:23.300

idad
Min.
:20.00
1st Qu.:27.75
Median :34.50
Mean
:33.35
3rd Qu.:38.25
Max.
:44.00

filhos
Min.
:0.00
1st Qu.:0.00
Median :1.50
Mean
:1.55
3rd Qu.:2.25
Max.
:5.00

> library(doBy)
> summaryBy(sal~sexo,dad,FUN=c(mean))
sexo sal.mean
1 feminino 10.95438
2 masculino 11.27650
> summaryBy(sal~esc,dad,FUN=c(mean,sd))
esc sal.mean
sal.sd
1
1 grau 7.80250 2.905913
2
2 grau 11.57333 3.691888
3 superior 16.47500 4.502438
> fit=aov(sal~sexo)
> popMeans(fit, effect="sexo")
beta0 Estimate Std.Error
t.value DF Pr(>|t|)
Lower
Upper
sexo
1
0 10.95437 1.160672 9.437963 34
0 8.595607 13.31314 feminino
2
0 11.27650 1.038136 10.862255 34
0 9.166753 13.38625 masculino
> TukeyHSD(fit)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = sal ~ sexo)
$sexo
masculino -feminino

diff
lwr
upr
p adj
0.322125 -2.842495 3.486745 0.8373522

32

> require(epicalc)
> xtabs(sal~sexo, dad) # Soma salario por sexo
sexo
feminino masculino
175.27
225.53
> xtabs(sal~esc, dad) # Soma salario por escolaridade
esc
1 grau
2 grau superior
93.63
208.32
98.85
> addmargins(xtabs(sal~esc, dad)) # Adiciona total marginal na tabela
esc
1 grau
2 grau superior
Sum
93.63
208.32
98.85
400.80
> summ(sal,box=T,main="Distribui
c~
ao da vari
avel resposta",ylab="")
obs. mean
median s.d.
min.
max.
36
11.133 10.165 4.58
4
23.3
> table(sexo)
sexo
feminino masculino
16
20
> prop.table(table(sexo))
sexo
feminino masculino
0.4444444 0.5555556
> addmargins(table(sexo),FUN = mean)
sexo
feminino masculino
mean
16
20
18
Distribuio da varivel resposta

10

15

Figura 16: dist

33

20

> xtabs(~sexo+idad,dad) # fatores cruzados


idad
sexo
20 23 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
feminino
0 0 1 0 0 0 0 2 2 1 1 1 0 1 1 0 0 1 2 0 1 0
masculino
1 1 0 2 1 1 1 0 0 1 1 1 2 1 1 1 1 1 0 1 1 1
idad
sexo
46 48
feminino
1 1
masculino
0 0
> aggregate(sal~sexo,data=dad,mean)
# m
edia salario por sexo.
sexo
sal
1 feminino 10.95438
2 masculino 11.27650
> aggregate(sal~esc, data=dad,sd)
# m
edia salario por ecolaridade.
esc
sal
1
1 grau 2.905913
2
2 grau 3.691888
3 superior 4.502438
> table(sexo)
sexo
feminino masculino
16
20
> table(esc)
esc
1 grau
2 grau superior
12
18
6
> require(gmodels)
> CrossTable(esc,sexo, expected = TRUE)
Conte
udo das c
elulas
|-------------------------|
|
N |
|
N esperado |
| Contribui
c~
ao para Qui2 |
|
N / Total da linha |
|
N / Total da coluna |
|
N / Total da tabela |
|-------------------------|
==========================================
sexo
esc
feminino
masculino
Total
-----------------------------------------1 grau
4
8
12
5.3
6.7
0.333
0.267
0.333
0.667
0.333
0.250
0.400
0.111
0.222
-----------------------------------------2 grau
9
9
18
8.0
10.0
0.125
0.100
0.500
0.500
0.500
0.562
0.450
0.250
0.250
-----------------------------------------superior
3
3
6
2.7
3.3
0.042
0.033
34

0.500
0.500
0.167
0.188
0.150
0.083
0.083
-----------------------------------------Total
16
20
36
0.444
0.556
==========================================
> require(descr)
> CrossTable(sexo)
Conte
udo das c
elulas
|-------------------------|
|
N |
|
N / Total da linha |
|-------------------------|
| feminino | masculino |
|------------|------------|
|
16 |
20 |
|
0.444 |
0.556 |
|------------|------------|
> CrossTable(sal)
Conte
udo das c
elulas
|-------------------------|
|
N |
|
N / Total da linha |
|-------------------------|
|
4 | 4.56 | 5.25 | 5.73 | 6.26 | 6.66 | 6.86 | 7.39 | 7.59 |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
| 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| 7.84 | 8.12 | 8.46 | 8.74 | 8.95 | 9.13 | 9.35 | 9.77 |
9.8 |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
| 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| 10.53 | 10.76 | 11.06 | 11.59 |
12 | 12.79 | 13.23 | 13.6 | 13.85 |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
| 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| 14.69 | 14.71 | 15.99 | 16.22 | 16.61 | 17.26 | 18.75 | 19.4 | 23.3 |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
| 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 | 0.028 |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|
> CrossTable(esc)
Conte
udo das c
elulas
|-------------------------|
|
N |
|
N / Total da linha |
|-------------------------|
|
1 grau |
2 grau | superior |
|----------|----------|----------|
|
12 |
18 |
6 |
35

|
0.333 |
0.500 |
0.167 |
|----------|----------|----------|
> CrossTable(filhos)
Conte
udo das c
elulas
|-------------------------|
|
N |
|
N / Total da linha |
|-------------------------|
|
0 |
1 |
2 |
3 |
4 |
5 |
|--------|--------|--------|--------|--------|--------|
|
11 |
8 |
9 |
5 |
2 |
1 |
| 0.306 | 0.222 | 0.250 | 0.139 | 0.056 | 0.028 |
|--------|--------|--------|--------|--------|--------|
> require(descr)
> descr(sexo)
feminino masculino
16
20
> descr(sal)
Min. 1st Qu. Median
Mean 3rd Qu.
Max.
4.000
7.778 10.160 11.130 14.060 23.300
> compmeans(sal,sexo)
Valor m
edio de "sal" segundo "sexo"
M
edia N Desv. Pd.
feminino
10.95438 16 4.114950
masculino 11.27650 20 5.020285
Total
11.13333 36 4.578760
> crosstab(sexo,esc)
# Otimo para cruzar duas vari
aveis categ
oricas
Conte
udo das c
elulas
|-------------------------|
|
Contagem |
|-------------------------|
================================================
esc
sexo
1 grau
2 grau
superior
Total
-----------------------------------------------feminino
4
9
3
16
-----------------------------------------------masculino
8
9
3
20
-----------------------------------------------Total
12
18
6
36
================================================
> table(sexo,esc)
# Otimo para cruzar duas vari
aveis categ
oricas
esc
sexo
1 grau 2 grau superior
feminino
4
9
3
masculino
8
9
3
> table(sexo,esc,filhos) # Otimo para cruzar duas vari
aveis categ
oricas
, , filhos = 0

sexo
feminino
masculino

esc
1 grau 2 grau superior
2
2
0
3
3
1

, , filhos = 1
esc
36

sexo
feminino
masculino

1 grau 2 grau superior


1
3
1
2
1
0

, , filhos = 2

sexo
feminino
masculino

esc
1 grau 2 grau superior
1
3
0
2
3
0

, , filhos = 3

sexo
feminino
masculino

esc
1 grau 2 grau superior
0
0
2
1
1
1

, , filhos = 4

sexo
feminino
masculino

esc
1 grau 2 grau superior
0
1
0
0
0
1

, , filhos = 5
esc
sexo
1 grau 2 grau superior
feminino
0
0
0
masculino
0
1
0
> require(gregmisc)
> CrossTable(esc, format = "SPSS")
Conte
udo das c
elulas
|-------------------------|
|
Contagem |
|
Percentual por linha |
|-------------------------|
|
1 grau |
2 grau | superior |
|----------|----------|----------|
|
12 |
18 |
6 |
|
33.333 |
50.000 |
16.667 |
|----------|----------|----------|
> CrossTable(esc, format = "SAS")
Conte
udo das c
elulas
|-------------------------|
|
N |
|
N / Total da linha |
|-------------------------|
|
1 grau |
2 grau | superior |
|----------|----------|----------|
|
12 |
18 |
6 |
|
0.333 |
0.500 |
0.167 |
|----------|----------|----------|
> # Estat
sticas descritivas
> library(fBasics)
> basicStats(sal)

37

sal
nobs
36.000000
NAs
0.000000
Minimum
4.000000
Maximum
23.300000
1. Quartile
7.777500
3. Quartile 14.060000
Mean
11.133333
Median
10.165000
Sum
400.800000
SE Mean
0.763127
LCL Mean
9.584104
UCL Mean
12.682563
Variance
20.965046
Stdev
4.578760
Skewness
0.600356
Kurtosis
-0.318921
> require(AdequacyModel)
> hist(sal)
> descriptive(sal)
$mean
[1] 11.13333
$median
[1] 10.165
$mode
[1] 9
$variance
[1] 20.96505
$Skewness
[1] 0.62627
$Kurtosis
[1] -0.16353
$minimum
[1] 4
$maximum
[1] 23.3
$n
[1] 36
> ftable(sexo)
sexo feminino masculino
16
20
> require(psych)
> describe(sal)
var n mean
sd median trimmed mad min max range skew kurtosis
se
1
1 36 11.13 4.58 10.16
10.85 4.72
4 23.3 19.3 0.6
-0.32 0.76
> require(Hmisc)
> describe(sal)
> require(epicalc)
> shapiro.qqnorm(sal)
38

Normal QQ plot of sal

15
10
5

Sample Quantiles

20

ShapiroWilk test P value = 0.2545

Theoretical Quantiles

> require(fBasics)
> qqnormPlot(sal)

Confidence Intervals: 95%

0
1

SS.1 Ordered Data

NORM QQ PLOT

0
Normal Quantiles

9.6

Biblioteca ExpDes

A biblioteca para an
alise numa u
nica rodada pode ser encontrada no site do autor https://sites.google.
com/site/ericbferreira/home neste caso baixei a versao ExpDes.pt para linux e compilei via terminal.
R CMD INSTALL ExpDes.pt_1.1.2.tar.gz
ou instale via install.packages(ExpDes.pt, dep=T) nos repositorios estao mantidas as duas versoes em portugues e ingles.
> require(ExpDes.pt) # vers~
ao portugu^
es
> dic(esc, sal, quali = TRUE, mcomp = "tukey", sigT = 0.05, sigF = 0.05)
-----------------------------------------------------------------------Quadro da analise de variancia
-----------------------------------------------------------------------GL
SQ
QM
Fc
Pr>Fc
Tratamento 2 307.82 153.909 11.924 0.00012669
Residuo
33 425.96 12.908
Total
35 733.78
-----------------------------------------------------------------------CV = 32.27 %

39

-----------------------------------------------------------------------Teste de normalidade dos residuos (Shapiro-Wilk)


p-valor: 0.4820254
De acordo com o teste de Shapiro-Wilk a 5% de significancia, os residuos podem ser considerados normais.
-----------------------------------------------------------------------Teste de Tukey
-----------------------------------------------------------------------Grupos Tratamentos Medias
a
superior
16.475
b
2 grau
11.57333
b
1 grau
7.8025
-----------------------------------------------------------------------> dic(sexo, sal, quali = TRUE, mcomp = "tukey", sigT = 0.05, sigF = 0.05)
-----------------------------------------------------------------------Quadro da analise de variancia
-----------------------------------------------------------------------GL
SQ
QM
Fc
Pr>Fc
Tratamento 1
0.92 0.9224 0.042792 0.83735
Residuo
34 732.85 21.5545
Total
35 733.78
-----------------------------------------------------------------------CV = 41.7 %

-----------------------------------------------------------------------Teste de normalidade dos residuos (Shapiro-Wilk)


p-valor: 0.2993022
De acordo com o teste de Shapiro-Wilk a 5% de significancia, os residuos podem ser considerados normais.
-----------------------------------------------------------------------De acordo com o teste F, as medias nao podem ser consideradas diferentes.
Niveis
Medias
1 feminino 10.95438
2 masculino 11.27650
-----------------------------------------------------------------------> require(ExpDes) # Vers~
ao ingl^
es
> crd(sexo, sal, quali = TRUE, mcomp= "tukey", sigF = 0.05)
-----------------------------------------------------------------------Analysis of Variance Table
-----------------------------------------------------------------------DF
SS
MS
Fc
Pr>Fc
Treatament 1
0.92 0.9224 0.042792 0.83735
Residuals 34 732.85 21.5545
Total
35 733.78
-----------------------------------------------------------------------CV = 41.7 %
-----------------------------------------------------------------------Shapiro-Wilk normality test
p-value: 0.2993022
According to Shapiro-Wilk normality test at 5% of significance, residuals can be considered normal.
-----------------------------------------------------------------------According to the F test, the means can not be considered distinct.
Levels
Means
1 feminino 10.95438
2 masculino 11.27650
------------------------------------------------------------------------

40

As func
oes disponveis no pacote ExpDes (nomes em portugues) podem ser aplicadas aos seguintes tipos de
delineamentos experimentais, sempre considerando fatores de efeito fixo:
fun
c
ao
descri
c
ao
dic() Delineamento Inteiramente Casualizado balanceado com um so fator.
dbc() Delineamento em Blocos Casualizados balanceado com um so fator.
dql() Delineamento em Quadrado Latino balanceado com um so fator.
fat2.dic() Delineamento Inteiramente Casualizado balanceado em fatorial duplo.
fat2.dbc() Delineamento em Blocos Casualizados balanceado em fatorial duplo.
fat2.ad.dic() Delineamento Inteiramente Casualizado balanceado em fatorial duplo com um tratamento adicional.
fat2.ad.dbc() Delineamento em Blocos Casualizados balanceado em fatorial duplo com um tratamento adicional.
fat3.dic() Delineamento Inteiramente Casualizado balanceado em fatorial triplo.
fat3.dbc() Delineamento em Blocos Casualizados balanceado em fatorial triplo.
fat3.ad.dic() Delineamento Inteiramente Casualizado balanceado em fatorial triplo com um tratamento adicional.
fat3.ad.dbc() Delineamento em Blocos Casualizados balanceado em fatorial triplo com um tratamento adicional.
psub2.dic() Delineamento Inteiramente Casualizado balanceado em esquema de parcelas subdivididas.
psub2.dbc() Delineamento em Blocos Casualizados balanceado em esquema de parcelas subdivididas.

10

Ler fun
c
ao externa

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> source("fun.R") # Ler fun
c~
ao que construi
> f
function (n)
{
y <- NULL
for (i in 1:n) y[i] <- sum(rbinom(i, 1, 0.5))/i
plot.ts(y, col = "green")
abline(h = 0.5)
}
> par(mfrow = c(2, 2))
> f(10)
> f(100)
> f(1000)
> f(2000)

41

1.0
0.0

0.2

0.4

0.6

0.8

1.0
0.8
0.6
y
0.4
0.2
0.0

10

20

40

60

80

100

Time

0.6
y
0.0

0.0

0.2

0.2

0.4

0.4

0.6

0.8

1.0

Time

200

400

600

800

1000

500

Time

10.1

1000

1500

2000

Time

Dados Multinacional

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dados<-read.xls("multinacional.xls", encoding = "latin1")
> str(dados)
'data.frame':
50 obs. of 9 variables:
$ gerente
: int 1 2 3 4 5 6 7 8 9 10 ...
$ sexo
: Factor w/ 2 levels " Feminino"," Masculino": 2 1 2 2 1 1 2 2 2 1 ...
$ estadocivil : Factor w/ 6 levels " casado"," casado",..: 1 5 2 2 2 2 4 3 3 2 ...
$ idade
: int 40 25 28 25 33 42 45 55 44 43 ...
$ filhos
: int 2 0 3 2 1 4 2 5 2 2 ...
$ salario
: num 15.3 20.4 8.5 16.8 21.7 22.5 29 27.3 19.3 23.4 ...
$ escolaridade: Factor w/ 3 levels " m
edio"," p
os-gradua
c~
ao",..: 3 2 1 3 3 2 2 2 3 3 ...
$ ingl^
es
: Factor w/ 3 levels " n~
ao"," sim",..: 2 3 1 3 3 3 3 3 3 3 ...
$ origem
: Factor w/ 4 levels " capital SP",..: 1 2 4 1 2 2 3 4 3 1 ...
> attach(dados)
The following object is masked from dad (position 4):
filhos, sexo
> table(sexo)
sexo
Feminino
Masculino
18
32
> pie(table(sexo))
> pie(table(escolaridade))
> pie(table(estadocivil))
> fit=aov(salario~escolaridade+sexo)
> summary(fit)
Df Sum Sq Mean Sq F value
Pr(>F)
escolaridade 2
1749
874.5
25.78 0.000000031 ***
sexo
1
56
56.0
1.65
0.205

42

Residuals
46
1561
33.9
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
> library(doBy)
> summaryBy(salario~sexo,dados,FUN=c(mean,sd))
sexo salario.mean salario.sd
1
Feminino
24.13889
8.248789
2
Masculino
24.61250
8.436356
> summaryBy(salario~escolaridade,dados,FUN=c(mean,sd))
escolaridade salario.mean salario.sd
1
m
edio
11.45000
3.370905
2
p
os-gradua
c~
ao
32.60000
7.354998
3
superior
24.08485
5.642535
> library(fBasics)
> basicStats(salario)
salario
nobs
50.000000
NAs
0.000000
Minimum
6.500000
Maximum
41.000000
1. Quartile
19.300000
3. Quartile
29.750000
Mean
24.442000
Median
23.300000
Sum
1222.100000
SE Mean
1.172063
LCL Mean
22.086652
UCL Mean
26.797348
Variance
68.686567
Stdev
8.287736
Skewness
0.205725
Kurtosis
-0.492068
> require(descr)
> crosstab(sexo,escolaridade) #
otimo cruzar duas vari
aveis
Conte
udo das c
elulas
|-------------------------|
|
Contagem |
|-------------------------|
=============================================================
escolaridade
sexo
m
edio
p
os-gradua
ca
~o
superior
Total
------------------------------------------------------------Feminino
2
6
10
18
------------------------------------------------------------Masculino
4
5
23
32
------------------------------------------------------------Total
6
11
33
50
=============================================================
> require(gmodels)
> CrossTable(sexo,escolaridade, expected = TRUE)
Conte
udo das c
elulas
|-------------------------|
|
N |
|
N esperado |
| Contribui
c~
ao para Qui2 |
|
N / Total da linha |
|
N / Total da coluna |
|
N / Total da tabela |

43

|-------------------------|
=============================================================
escolaridade
sexo
m
edio
p
os-gradua
ca
~o
superior
Total
------------------------------------------------------------Feminino
2
6
10
18
2.2
4.0
11.9
0.012
1.051
0.298
0.111
0.333
0.556
0.360
0.333
0.545
0.303
0.040
0.120
0.200
------------------------------------------------------------Masculino
4
5
23
32
3.8
7.0
21.1
0.007
0.591
0.167
0.125
0.156
0.719
0.640
0.667
0.455
0.697
0.080
0.100
0.460
------------------------------------------------------------Total
6
11
33
50
0.120
0.220
0.660
=============================================================
> boxplot(salario~sexo)
> boxplot(salario~escolaridade)

44

10

15

20

Mdia

25

30

35

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dados<-read.xls("multinacional.xls", encoding = "latin1")
> str(dados)
'data.frame':
50 obs. of 9 variables:
$ gerente
: int 1 2 3 4 5 6 7 8 9 10 ...
$ sexo
: Factor w/ 2 levels " Feminino"," Masculino": 2 1 2 2 1 1 2 2 2 1 ...
$ estadocivil : Factor w/ 6 levels " casado"," casado",..: 1 5 2 2 2 2 4 3 3 2 ...
$ idade
: int 40 25 28 25 33 42 45 55 44 43 ...
$ filhos
: int 2 0 3 2 1 4 2 5 2 2 ...
$ salario
: num 15.3 20.4 8.5 16.8 21.7 22.5 29 27.3 19.3 23.4 ...
$ escolaridade: Factor w/ 3 levels " m
edio"," p
os-gradua
c~
ao",..: 3 2 1 3 3 2 2 2 3 3 ...
$ ingl^
es
: Factor w/ 3 levels " n~
ao"," sim",..: 2 3 1 3 3 3 3 3 3 3 ...
$ origem
: Factor w/ 4 levels " capital SP",..: 1 2 4 1 2 2 3 4 3 1 ...
> require(gplots)
> plotmeans(salario~escolaridade,p=0.95,col="red",connect =F,n.label=F,ci.label=F,mean.labels=F, xlab="E

mdio

psgraduao
Escolaridade

Figura 17: Intervalo de confianca para media I

45

superior

15

20

medias

25

30

35

setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")
require(gdata)
dados<-read.xls("multinacional.xls", encoding = "latin1")
extratifica
c~
ao<-split(salario, escolaridade)
medias<-sapply(extratifica
c~
ao, mean)
desviopadr~
ao<-sqrt(sapply(extratifica
c~
ao,var))
n<-sapply(extratifica
c~
ao,length)
erro<- qt(0.975,n)*desviopadr~
ao/sqrt(n)
require(gplots)
plotCI(x=medias, uiw=erro)

10

>
>
>
>
>
>
>
>
>
>

1.0

1.5

2.0

2.5

Figura 18: Intervalo de confianca para media II

46

3.0

> da <- data.frame(trat=gl(5,8))


> da$y <- as.numeric(da$trat)+rnorm(nrow(da))
> m0 <- lm(y~trat, da)
> new <- data.frame(trat=levels(da$trat))
> new$pred <- predict(m0, newdata=new, interval="confidence")
> str(new)
'data.frame':
5 obs. of 2 variables:
$ trat: Factor w/ 5 levels "1","2","3","4",..: 1 2 3 4 5
$ pred: num [1:5, 1:3] 0.736 2.176 2.724 4.391 4.903 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr "1" "2" "3" "4" ...
.. ..$ : chr "fit" "lwr" "upr"
> ylim <- c(0, max(new$pred)*1.05)
> bp <- barplot(new$pred[,1], ylim=ylim)
> arrows(bp, new$pred[,2], bp, new$pred[,3], code=3, angle=90)

Figura 19: Intervalo de confianca para media III

10.2

Gr
afico Lattice

A latice tem opc


oes de histogram(salario) densityplot(salario) algumas outras funcoes.
barchart bar chart x~A or A~x
bwplot boxplot x~A or A~x
cloud 3D scatterplot z~x*y|A
contourplot 3D contour plot z~x*y
densityplot kernal density plot ~x|A*B
dotplot dotplot ~x|A
histogram histogram ~x
levelplot 3D level plot z~y*x
parallel parallel coordinates plot data frame
splom scatterplot matrix data frame
stripplot strip plots A~x or x~A
xyplot scatterplot y~x|A
47

wireframe 3D wireframe graph z~y*x

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dados<-read.xls("multinacional.xls", encoding = "latin1")
> str(dados)
'data.frame':
50 obs. of 9 variables:
$ gerente
: int 1 2 3 4 5 6 7 8 9 10 ...
$ sexo
: Factor w/ 2 levels " Feminino"," Masculino": 2 1 2 2 1 1 2 2 2 1 ...
$ estadocivil : Factor w/ 6 levels " casado"," casado",..: 1 5 2 2 2 2 4 3 3 2 ...
$ idade
: int 40 25 28 25 33 42 45 55 44 43 ...
$ filhos
: int 2 0 3 2 1 4 2 5 2 2 ...
$ salario
: num 15.3 20.4 8.5 16.8 21.7 22.5 29 27.3 19.3 23.4 ...
$ escolaridade: Factor w/ 3 levels " m
edio"," p
os-gradua
c~
ao",..: 3 2 1 3 3 2 2 2 3 3 ...
$ ingl^
es
: Factor w/ 3 levels " n~
ao"," sim",..: 2 3 1 3 3 3 3 3 3 3 ...
$ origem
: Factor w/ 4 levels " capital SP",..: 1 2 4 1 2 2 3 4 3 1 ...
> require(lattice)
> xyplot(salario~sexo,jitter.x=TRUE)

40

salario

30

20

10

Feminino

Masculino

sexo

Figura 20: Graficos Lattice I

48

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dados<-read.xls("multinacional.xls", encoding = "latin1")
> str(dados)
'data.frame':
50 obs. of 9 variables:
$ gerente
: int 1 2 3 4 5 6 7 8 9 10 ...
$ sexo
: Factor w/ 2 levels " Feminino"," Masculino": 2 1 2 2 1 1 2 2 2 1 ...
$ estadocivil : Factor w/ 6 levels " casado"," casado",..: 1 5 2 2 2 2 4 3 3 2 ...
$ idade
: int 40 25 28 25 33 42 45 55 44 43 ...
$ filhos
: int 2 0 3 2 1 4 2 5 2 2 ...
$ salario
: num 15.3 20.4 8.5 16.8 21.7 22.5 29 27.3 19.3 23.4 ...
$ escolaridade: Factor w/ 3 levels " m
edio"," p
os-gradua
c~
ao",..: 3 2 1 3 3 2 2 2 3 3 ...
$ ingl^
es
: Factor w/ 3 levels " n~
ao"," sim",..: 2 3 1 3 3 3 3 3 3 3 ...
$ origem
: Factor w/ 4 levels " capital SP",..: 1 2 4 1 2 2 3 4 3 1 ...
> require(lattice)
> xyplot(salario~escolaridade,jitter.x=TRUE)

40

salario

30

20

10

mdio

psgraduao

superior

escolaridade

Figura 21: Graficos Lattice II


> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")
> require(gdata)
> dados<-read.xls("multinacional.xls", encoding = "latin1")
> str(dados)
'data.frame':
50 obs. of 9 variables:
$ gerente
: int 1 2 3 4 5 6 7 8 9 10 ...
$ sexo
: Factor w/ 2 levels " Feminino"," Masculino": 2 1 2 2 1 1 2 2 2 1 ...
$ estadocivil : Factor w/ 6 levels " casado"," casado",..: 1 5 2 2 2 2 4 3 3 2 ...
$ idade
: int 40 25 28 25 33 42 45 55 44 43 ...
$ filhos
: int 2 0 3 2 1 4 2 5 2 2 ...
$ salario
: num 15.3 20.4 8.5 16.8 21.7 22.5 29 27.3 19.3 23.4 ...
$ escolaridade: Factor w/ 3 levels " m
edio"," p
os-gradua
c~
ao",..: 3 2 1 3 3 2 2 2 3 3 ...
$ ingl^
es
: Factor w/ 3 levels " n~
ao"," sim",..: 2 3 1 3 3 3 3 3 3 3 ...
$ origem
: Factor w/ 4 levels " capital SP",..: 1 2 4 1 2 2 3 4 3 1 ...
49

> library(doBy)
> require(lattice)
> summaryBy(salario~escolaridade|sexo,dados,FUN=c(mean))
escolaridade
sexo salario.mean
1
m
edio
Feminino
12.80000
2
m
edio
Masculino
10.77500
3
p
os-gradua
c~
ao
Feminino
32.03333
4
p
os-gradua
c~
ao
Masculino
33.28000
5
superior
Feminino
21.67000
6
superior
Masculino
25.13478
> aggregate(salario~sexo+escolaridade, data=dados,mean)
sexo
escolaridade salario
1
Feminino
m
edio 12.80000
2
Masculino
m
edio 10.77500
3
Feminino
p
os-gradua
c~
ao 32.03333
4
Masculino
p
os-gradua
c~
ao 33.28000
5
Feminino
superior 21.67000
6
Masculino
superior 25.13478
> summaryBy(salario~escolaridade,dados,FUN=c(mean))
escolaridade salario.mean
1
m
edio
11.45000
2
p
os-gradua
c~
ao
32.60000
3
superior
24.08485
> fit=aov(salario~escolaridade)
> popMeans(fit, effect="escolaridade")
beta0 Estimate Std.Error
t.value DF Pr(>|t|)
Lower
Upper
1
0 11.45000 2.394288 4.782215 47 0.0000175 6.633314 16.26669
2
0 32.60000 1.768299 18.435798 47 0.0000000 29.042642 36.15736
3
0 24.08485 1.020928 23.591137 47 0.0000000 22.031007 26.13869
escolaridade
1
m
edio
2
p
os-gradua
c~
ao
3
superior
> fit2=aov(salario~sexo+escolaridade)
> popMeans(fit2, c("sexo", "escolaridade"))
beta0 Estimate Std.Error
t.value DF Pr(>|t|)
Lower
Upper
1
0 9.948168 2.649797 3.754314 46 0.0004869 4.614404 15.28193
2
0 12.200916 2.448708 4.982593 46 0.0000093 7.271922 17.12991
3
0 31.576024 1.928657 16.372030 46 0.0000000 27.693840 35.45821
4
0 33.828771 1.999833 16.915802 46 0.0000000 29.803317 37.85423
5
0 22.514752 1.588136 14.176839 46 0.0000000 19.318000 25.71150
6
0 24.767499 1.144777 21.635212 46 0.0000000 22.463182 27.07182
sexo
escolaridade
1
Feminino
m
edio
2
Masculino
m
edio
3
Feminino
p
os-gradua
c~
ao
4
Masculino
p
os-gradua
c~
ao
5
Feminino
superior
6
Masculino
superior
> fit3=lmBy(salario~escolaridade|sexo, data=dados)
> summary(fit3)
Call:
lm(formula = salario ~ escolaridade, data = wd)
Residuals:
Min
1Q Median
-9.835 -4.020 -1.235

3Q
Max
4.905 12.865

Coefficients:
50

Estimate Std. Error t value


Pr(>|t|)
(Intercept)
10.775
3.021
3.567
0.001278 **
escolaridade p
os-gradua
c~
ao
22.505
4.053
5.553 0.00000546 ***
escolaridade superior
14.360
3.273
4.387
0.000139 ***
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Residual standard error: 6.042 on 29 degrees of freedom
Multiple R-squared: 0.5202,
Adjusted R-squared:
F-statistic: 15.72 on 2 and 29 DF, p-value: 0.00002371

0.4871

Call:
lm(formula = salario ~ escolaridade, data = wd)
Residuals:
Min
1Q
-11.6333 -2.2950

Median
-0.0017

3Q
3.2300

Max
8.5667

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)
12.800
3.936
3.252 0.005358 **
escolaridade p
os-gradua
c~
ao
19.233
4.545
4.232 0.000724 ***
escolaridade superior
8.870
4.311
2.057 0.057472 .
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Residual standard error: 5.566 on 15 degrees of freedom
Multiple R-squared: 0.5983,
Adjusted R-squared: 0.5447
F-statistic: 11.17 on 2 and 15 DF, p-value: 0.00107
> require(lsmeans)
> fit4 <- lm(salario~escolaridade)
> lsmeans(fit4, pairwise~escolaridade)
$`escolaridade lsmeans`
escolaridade
lsmean
SE df lower.CL upper.CL
m
edio 11.45000 2.394288 47 6.633314 16.26669
p
os-gradua
c~
ao 32.60000 1.768299 47 29.042642 36.15736
superior 24.08485 1.020928 47 22.031007 26.13869
$`escolaridade pairwise differences`
estimate
SE
m
edio p
os-gradua
c~
ao
-21.150000 2.976491
m
edio superior
-12.634848 2.602865
p
os-gradua
c~
ao superior
8.515152 2.041856
p values are adjusted using the tukey method

51

df t.ratio
47 -7.10568
47 -4.85421
47 4.17030
for 3 means

p.value
0.00000
0.00004
0.00038

> barchart(salario~sexo|escolaridade,col="limegreen",layout = c(3, 1))


mdio

psgraduao

superior

40

salario

30

20

10

Feminino

Masculino

Feminino

Masculino

Figura 22: Graficos Lattice

52

Feminino

Masculino

> densityplot(~salario|sexo, plot.points = FALSE,ylab="Densidade")


0

10

Feminino

Masculino

0.06

Densidade

0.04

0.02

0.00

10

20

20

30

40

50

salario

Figura 23: Graficos Lattice VI

53

30

40

50

> histogram(~salario|sexo)
10

Feminino

Percent of Total

30

20

10

20

30

Masculino

40

10

20

30

40

salario

Figura 24: Graficos Lattice VI

54

40

> histogram(~salario|escolaridade,layout = c(3, 1))


10

mdio

20

30

40

psgraduao

superior

50

40

Percent of Total

30

20

10

10

20

30

40

10

salario

Figura 25: Graficos Lattice VI

55

20

30

40

> cloud(salario~filhos*escolaridade)

salario

escolaridade
filhos

Figura 26: Graficos Lattice VI

56

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dados<-read.xls("multinacional.xls", encoding = "latin1")
> str(dados)
'data.frame':
50 obs. of 9 variables:
$ gerente
: int 1 2 3 4 5 6 7 8 9 10 ...
$ sexo
: Factor w/ 2 levels " Feminino"," Masculino": 2 1 2 2 1 1 2 2 2 1 ...
$ estadocivil : Factor w/ 6 levels " casado"," casado",..: 1 5 2 2 2 2 4 3 3 2 ...
$ idade
: int 40 25 28 25 33 42 45 55 44 43 ...
$ filhos
: int 2 0 3 2 1 4 2 5 2 2 ...
$ salario
: num 15.3 20.4 8.5 16.8 21.7 22.5 29 27.3 19.3 23.4 ...
$ escolaridade: Factor w/ 3 levels " m
edio"," p
os-gradua
c~
ao",..: 3 2 1 3 3 2 2 2 3 3 ...
$ ingl^
es
: Factor w/ 3 levels " n~
ao"," sim",..: 2 3 1 3 3 3 3 3 3 3 ...
$ origem
: Factor w/ 4 levels " capital SP",..: 1 2 4 1 2 2 3 4 3 1 ...
> require(lattice)
> xyplot(salario~sexo|escolaridade,layout = c(3, 1),jitter.x=TRUE)
Feminino

mdio

Masculino

psgraduao

superior

40

salario

30

20

10

Feminino

Masculino

Feminino

sexo

Figura 27: Graficos Lattice III

57

Masculino

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dados<-read.xls("multinacional.xls", encoding = "latin1")
> str(dados)
'data.frame':
50 obs. of 9 variables:
$ gerente
: int 1 2 3 4 5 6 7 8 9 10 ...
$ sexo
: Factor w/ 2 levels " Feminino"," Masculino": 2 1 2 2 1 1 2 2 2 1 ...
$ estadocivil : Factor w/ 6 levels " casado"," casado",..: 1 5 2 2 2 2 4 3 3 2 ...
$ idade
: int 40 25 28 25 33 42 45 55 44 43 ...
$ filhos
: int 2 0 3 2 1 4 2 5 2 2 ...
$ salario
: num 15.3 20.4 8.5 16.8 21.7 22.5 29 27.3 19.3 23.4 ...
$ escolaridade: Factor w/ 3 levels " m
edio"," p
os-gradua
c~
ao",..: 3 2 1 3 3 2 2 2 3 3 ...
$ ingl^
es
: Factor w/ 3 levels " n~
ao"," sim",..: 2 3 1 3 3 3 3 3 3 3 ...
$ origem
: Factor w/ 4 levels " capital SP",..: 1 2 4 1 2 2 3 4 3 1 ...
> require(lattice)
> bwplot(salario~escolaridade|sexo)
Feminino

Masculino

40

salario

30

20

10

mdio

psgraduao

superior

mdio

Figura 28: Graficos Lattice IV

58

psgraduao

superior

> qqmath(~salario|escolaridade,layout = c(3, 1))


2

mdio

psgraduao

superior

40

salario

30

20

10

qnorm

Figura 29: Normalidade por grupo

59

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dados<-read.xls("multinacional.xls", encoding = "latin1")
> str(dados)
'data.frame':
50 obs. of 9 variables:
$ gerente
: int 1 2 3 4 5 6 7 8 9 10 ...
$ sexo
: Factor w/ 2 levels " Feminino"," Masculino": 2 1 2 2 1 1 2 2 2 1 ...
$ estadocivil : Factor w/ 6 levels " casado"," casado",..: 1 5 2 2 2 2 4 3 3 2 ...
$ idade
: int 40 25 28 25 33 42 45 55 44 43 ...
$ filhos
: int 2 0 3 2 1 4 2 5 2 2 ...
$ salario
: num 15.3 20.4 8.5 16.8 21.7 22.5 29 27.3 19.3 23.4 ...
$ escolaridade: Factor w/ 3 levels " m
edio"," p
os-gradua
c~
ao",..: 3 2 1 3 3 2 2 2 3 3 ...
$ ingl^
es
: Factor w/ 3 levels " n~
ao"," sim",..: 2 3 1 3 3 3 3 3 3 3 ...
$ origem
: Factor w/ 4 levels " capital SP",..: 1 2 4 1 2 2 3 4 3 1 ...
> attach(dados)
The following objects are masked from dados (position 5):
escolaridade, estadocivil, filhos, gerente, idade, ingl^
es, origem,
salario, sexo
The following object is masked from dad (position 7):
filhos, sexo
> require(lattice)
> barchart(salario~sexo,col="limegreen")

40

salario

30

20

10

Feminino

Masculino

Figura 30: Graficos Lattice V

10.3

ScottKnott, o TukeyC

O pacote facilita bastante a aplicac


ao do teste de Tukey para os delineamentos simples (DIC, DBC, DQL) e
esquemas experimentais simples e usuais (Fatorias com no maximo 3 fatores, parcela sub-dividida e sub-subdividida). Para os que j
a conhecem o pacote ScottKnott, o TukeyC tem a mesma estrutura basica, porem aplica
o teste de Tukey.
60

> require(laercio)
> result=aov(salario~escolaridade)
> LTukey(result,"escolaridade",conf.level=0.95)
TUKEY TEST TO COMPARE MEANS
Confidence level: 0.95
Dependent variable: salario
Variation Coefficient: 23.9947 %
Independent variable: escolaridade
Factors
Means
p
os-gradua
c~
ao 32.6
a
superior
24.0848484848485 b
m
edio
11.45
c
> LDuncan(result,"escolaridade",conf.level = 0.95)
DUNCAN TEST TO COMPARE MEANS
Confidence Level: 0.95
Dependent Variable: salario
Variation Coefficient: 23.9947 %

Independent Variable: escolaridade


Factors
Means
p
os-gradua
c~
ao 32.6
a
superior
24.0848484848485 b
m
edio
11.45
c
> LScottKnott(result,"escolaridade",conf.level = 0.95)
SCOTT-KNOTT ORIGINAL TEST
Confidence Level: 0.95
Independent variable: escolaridade

1
2
3

FACTORS
MEANS
p
os-gradua
c~
ao 32.60000 A
superior 24.08485 A
m
edio 11.45000 A

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dad<-read.xls("dic.xls")
> str(dad)
'data.frame':
12 obs. of 3 variables:
$ trata: Factor w/ 4 levels "A","B","C","D": 1 1 1 2 2 2 3 3 3 4 ...
$ rep : int 1 2 3 1 2 3 1 2 3 1 ...
$ respo: int 6 14 4 9 10 8 73 22 10 1 ...
> attach(dad)
> dad
trata rep respo
1
A
1
6
2
A
2
14
3
A
3
4
4
B
1
9
5
B
2
10
6
B
3
8
7
C
1
73
8
C
2
22
9
C
3
10
10
D
1
1
61

11
D
2
10
12
D
3
4
> library(doBy)
> summaryBy(respo~trata,dad,FUN=c(mean,sd))
trata respo.mean respo.sd
1
A
8 5.291503
2
B
9 1.000000
3
C
35 33.451457
4
D
5 4.582576
>
>
>
>

require(ScottKnott)
sk1<-SK(dad,y=respo,model="respo~trata",which="trata")
summary(sk1)
plot(sk1, title = "Treatamentos", col = rainbow(3))

62

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dados<-read.xls("multinacional.xls", encoding = "latin1")
> str(dados)
'data.frame':
50 obs. of 9 variables:
$ gerente
: int 1 2 3 4 5 6 7 8 9 10 ...
$ sexo
: Factor w/ 2 levels " Feminino"," Masculino": 2 1 2 2 1 1 2 2 2 1 ...
$ estadocivil : Factor w/ 6 levels " casado"," casado",..: 1 5 2 2 2 2 4 3 3 2 ...
$ idade
: int 40 25 28 25 33 42 45 55 44 43 ...
$ filhos
: int 2 0 3 2 1 4 2 5 2 2 ...
$ salario
: num 15.3 20.4 8.5 16.8 21.7 22.5 29 27.3 19.3 23.4 ...
$ escolaridade: Factor w/ 3 levels " m
edio"," p
os-gradua
c~
ao",..: 3 2 1 3 3 2 2 2 3 3 ...
$ ingl^
es
: Factor w/ 3 levels " n~
ao"," sim",..: 2 3 1 3 3 3 3 3 3 3 ...
$ origem
: Factor w/ 4 levels " capital SP",..: 1 2 4 1 2 2 3 4 3 1 ...
> attach(dados)
The following objects are masked from dados (position 5):
escolaridade, estadocivil, filhos, gerente, idade, ingl^
es, origem,
salario, sexo
The following objects are masked from dados (position 8):
escolaridade, estadocivil, filhos, gerente, idade, ingl^
es, origem,
salario, sexo
The following object is masked from dad (position 10):

>
>
>
>
1
2
3
4
5
6
>
1
2
3
4
5
6

filhos, sexo
library(doBy)
require(lattice)
barchart(table(sexo,escolaridade))
summaryBy(salario~sexo|escolaridade,dados,FUN=c(mean))
sexo
escolaridade salario.mean
Feminino
m
edio
12.80000
Feminino
p
os-gradua
c~
ao
32.03333
Feminino
superior
21.67000
Masculino
m
edio
10.77500
Masculino
p
os-gradua
c~
ao
33.28000
Masculino
superior
25.13478
aggregate(salario~sexo+escolaridade, data=dados,mean)
sexo
escolaridade salario
Feminino
m
edio 12.80000
Masculino
m
edio 10.77500
Feminino
p
os-gradua
c~
ao 32.03333
Masculino
p
os-gradua
c~
ao 33.28000
Feminino
superior 21.67000
Masculino
superior 25.13478

Masculino

63
Feminino

10.4
>
>
>
>
>
>
>
>
>
>

TukeyC

setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")
library(TukeyC)
require(gdata)
dad_b<-read.xls("TukeyC.xls", encoding = "latin1")
str(dad_b)
av <- aov(pro ~ tra,data=dad_b)
summary(av)
tk_b <- TukeyC(av)
summary(tk_b)
plot(tk_b)

64

65

10.5

UsingR

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dados<-read.xls("multinacional.xls", encoding = "latin1")
> str(dados)
'data.frame':
50 obs. of 9 variables:
$ gerente
: int 1 2 3 4 5 6 7 8 9 10 ...
$ sexo
: Factor w/ 2 levels " Feminino"," Masculino": 2 1 2 2 1 1 2 2 2 1 ...
$ estadocivil : Factor w/ 6 levels " casado"," casado",..: 1 5 2 2 2 2 4 3 3 2 ...
$ idade
: int 40 25 28 25 33 42 45 55 44 43 ...
$ filhos
: int 2 0 3 2 1 4 2 5 2 2 ...
$ salario
: num 15.3 20.4 8.5 16.8 21.7 22.5 29 27.3 19.3 23.4 ...
$ escolaridade: Factor w/ 3 levels " m
edio"," p
os-gradua
c~
ao",..: 3 2 1 3 3 2 2 2 3 3 ...
$ ingl^
es
: Factor w/ 3 levels " n~
ao"," sim",..: 2 3 1 3 3 3 3 3 3 3 ...
$ origem
: Factor w/ 4 levels " capital SP",..: 1 2 4 1 2 2 3 4 3 1 ...
> attach(dados)
The following objects are masked from dados (position 3):
escolaridade, estadocivil, filhos, gerente, idade, ingl^
es, origem,
salario, sexo
The following objects are masked from dados (position 6):
escolaridade, estadocivil, filhos, gerente, idade, ingl^
es, origem,
salario, sexo
The following objects are masked from dados (position 9):
escolaridade, estadocivil, filhos, gerente, idade, ingl^
es, origem,
salario, sexo
The following object is masked from dad (position 11):

10

15

10

20

20

25

30

30

40

35

50

40

filhos, sexo
require(UsingR)
par(mfrow=c(2,2))
boxplot(salario~sexo,col = c("palevioletred1","royalblue2"))
simple.violinplot(salario~sexo,col="brown")
simple.densityplot(salario~sexo)
boxplot(salario~sexo,,notch=T)

Masculino

Feminino

Masculino

Feminino

Masculino

0.05

35

0.06

40

0.07

Feminino

66

10

0.01

15

0.02

20

0.03

25

0.04

30

Feminino
Masculino

0.00

>
>
>
>
>
>

10

20

30

40

50

>
>
>
>
>
>

par(mfrow=c(1,2))
require(UsingR)
x=rnorm(200)
y=x+rnorm(200)
simple.scatterplot(x,y,col=3)
simple.hist.and.boxplot(x, main="")

Figura 33: Histograma marginal

67

par(fig=c(0,0.8,0,0.8), new=TRUE)
x=rnorm(330)
y=x+rnorm(330)
plot(x, y, xlab="Teste",ylab="Teste")
par(fig=c(0,0.8,0.55,1), new=TRUE)
boxplot(x, horizontal=TRUE, axes=FALSE)
par(fig=c(0.65,1,0,0.8),new=TRUE)
boxplot(y,axes=FALSE)
mtext("Teste", side=3, outer=TRUE, line=-3)

0
2

Teste

Teste

>
>
>
>
>
>
>
>
>

Teste

Figura 34: Box plot marginal

68

0.2
0.0

0.1

Densidade

0.3

0.4

x=rnorm(3000)
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE))
hist(x,main="",ylab="Densidade",prob=T)
hist(x,main="",ylab="Densidade",prob=T)
hist(x,main="",ylab="Densidade",prob=T)

0.4
0.3
0.2

Densidade

0.0

0.1

0.2
0.1

Densidade

0.3

0.4

0.0

>
>
>
>
>

0
x

Figura 35: Tres graficos em em mesma janela

69

0.2
0.0

0.1

Densidade

0.3

0.4

x=rnorm(3000)
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE),widths=c(3,1), heights=c(1,2))
hist(x,main="",ylab="Densidade",prob=T)
hist(x,main="",ylab="Densidade",prob=T)
hist(x,main="",ylab="Densidade",prob=T)

0.4
0.3
0.2

Densidade

0.0

0.1

0.2
0.1

Densidade

0.3

0.4

0.0

>
>
>
>
>

0
x

Figura 36: Tres graficos em em mesma janela

70

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dados<-read.xls("multinacional.xls", encoding = "latin1")
> str(dados)
'data.frame':
50 obs. of 9 variables:
$ gerente
: int 1 2 3 4 5 6 7 8 9 10 ...
$ sexo
: Factor w/ 2 levels " Feminino"," Masculino": 2 1 2 2 1 1 2 2 2 1 ...
$ estadocivil : Factor w/ 6 levels " casado"," casado",..: 1 5 2 2 2 2 4 3 3 2 ...
$ idade
: int 40 25 28 25 33 42 45 55 44 43 ...
$ filhos
: int 2 0 3 2 1 4 2 5 2 2 ...
$ salario
: num 15.3 20.4 8.5 16.8 21.7 22.5 29 27.3 19.3 23.4 ...
$ escolaridade: Factor w/ 3 levels " m
edio"," p
os-gradua
c~
ao",..: 3 2 1 3 3 2 2 2 3 3 ...
$ ingl^
es
: Factor w/ 3 levels " n~
ao"," sim",..: 2 3 1 3 3 3 3 3 3 3 ...
$ origem
: Factor w/ 4 levels " capital SP",..: 1 2 4 1 2 2 3 4 3 1 ...
> attach(dados)
The following objects are masked from dados (position 4):
escolaridade, estadocivil, filhos, gerente, idade, ingl^
es, origem,
salario, sexo
The following objects are masked from dados (position 5):
escolaridade, estadocivil, filhos, gerente, idade, ingl^
es, origem,
salario, sexo
The following objects are masked from dados (position 8):
escolaridade, estadocivil, filhos, gerente, idade, ingl^
es, origem,
salario, sexo
The following objects are masked from dados (position 11):
escolaridade, estadocivil, filhos, gerente, idade, ingl^
es, origem,
salario, sexo
The following object is masked from dad (position 13):
filhos, sexo
require(UsingR)
par(mfrow=c(1,3))
boxplot(salario,col = "palevioletred1",horizontal=T,xlab="Sal
ario")
hist(salario,main="",ylab="Frequ^
encia",prob=T,col="palevioletred1",
xlab="Sal
ario",xlim=c(0,60))
curve(dnorm(x,mean=mean(salario),sd=sd(salario)),col=4,lty=2,lwd=2,add=TRUE)
qqnorm(salario,col="palevioletred1")

25
10

0.01

15

0.02

20

Sample Quantiles

0.03

Frequncia

30

0.04

35

0.05

40

Normal QQ Plot

0.00

>
>
>
>
+
>
>

10

15

20

25
Salrio

30

35

40

10

20

30

40

50

60

Salrio

71
Figura 37: Histograma Box plot

0
Theoretical Quantiles

par(mfrow=c(2,2))
means<-tapply(salario,escolaridade,mean)
barplot(means,xlab="Escolaridade",ylab="M
edia por escolaridade",col=c("red","blue","pink"))
barplot(tapply(salario,list(sexo,escolaridade),mean),beside=T,ylim=c(0,30),
col=c("forestgreen", "palegreen"),ylab="M
edia por escolaridade sexo")
legend("topleft", ncol=2, legend=c("Feminino", "Masculino"),fill=c("forestgreen", "palegreen"),bty="n"
barplot(table(sexo,escolaridade),beside=TRUE,col=c("forestgreen", "palegreen"))
legend("topleft", ncol=2, legend=c("Feminino", "Masculino"),fill=c("forestgreen", "palegreen"),bty="n"
barplot(table(sexo,escolaridade),col=c("forestgreen", "palegreen"))
legend("topleft", ncol=2, legend=c("Feminino", "Masculino"),fill=c("forestgreen", "palegreen"),bty="n"
30

>
>
>
>
+
>
>
>
>
>

Masculino

20
15
0

10

Mdia por escolaridade sexo

20
15
10

Mdia por escolaridade

25

25

30

Feminino

mdio

psgraduao

superior

mdio

psgraduao

superior

Escolaridade

Masculino

Feminino

Masculino

10

10

15

20

15

25

20

30

Feminino

mdio

psgraduao

superior

mdio

psgraduao

superior

Figura 38: Media por fator

> barplot(table(sexo,escolaridade),col=c("forestgreen", "palegreen"),legend=T)

10

15

20

25

30

Masculino
Feminino

mdio

psgraduao

Figura 39: Media por fator

72

superior

>
>
>
>

par(mfrow=c(1,3))
interaction.plot(sexo,escolaridade, salario)
interaction.plot(escolaridade,sexo, salario)
interaction.plot(escolaridade,sexo, salario,fun = mean, ylab ="M
edias")

sexo

escolaridade

sexo

Feminino

Masculino

25
10

15

20

Mdias

mean of salario
20
15
10

10

15

20

mean of salario

25

30

Masculino
Feminino

30

Masculino
Feminino

25

30

psgraduao
superior
mdio

mdio

sexo

psgraduao

superior

mdio

psgraduao

escolaridade

superior

escolaridade

Figura 40: Interacao

par(mfrow=c(1,3))
plot.design(salario~sexo)
plot.design(salario~escolaridade)
plot.design(salario~escolaridade+sexo)

psgraduao

psgraduao

30
25

25

24.5

30

24.6

Masculino

Masculino
superior

Feminino

mean of salario
20

mean of salario

15

15

24.3

20

mean of salario

24.4

superior

24.2

>
>
>
>

Feminino

mdio

mdio

sexo

escolaridade

Factors

Factors

Figura 41: Design

73

escolaridade

sexo

Factors

> coplot(salario~escolaridade|sexo,panel=panel.smooth)
Given : sexo

Masculino

Feminino

sprr

25
20
15
10

salario

30

35

40

md

md

escolaridade

Figura 42: Coplot

74

sprr

10.6

Regress
ao linear

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> require(gdata)
> dados<-read.xls("reg.xls", encoding = "latin1")
> str(dados)
'data.frame':
10 obs. of 2 variables:
$ x: num 5 5.4 5.7 5.9 6.3 6.8 7.2 7.3 7.6 7.8
$ y: num 10 10.9 11.4 11.5 12 11.6 11.1 10.5 10.1 9.6
> attach(dados)
The following object is masked _by_ .GlobalEnv:
x, y
> fit=lm(y~poly(x,2,raw = TRUE),data=dados) # Ajuste fun
c~
ao segundo grau (modelo quadratico)
> summary(fit)
Call:
lm(formula = y ~ poly(x, 2, raw = TRUE), data = dados)
Residuals:
Min
1Q
-0.30087 -0.01629

Median
0.01407

3Q
0.07451

Max
0.19325

Coefficients:
Estimate Std. Error t value
(Intercept)
-30.04554
2.94812 -10.19
poly(x, 2, raw = TRUE)1 13.24450
0.93021
14.24
poly(x, 2, raw = TRUE)2 -1.04782
0.07211 -14.53
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 .

0.1 1

7 degrees of freedom
Adjusted R-squared: 0.9627
p-value: 0.000004143
Ajuste fun
c~
ao segundo grau (modelo quadratico)
(-1.047822*x^2),add=T) # Curva ajustada

10.0

10.5

11.0

11.5

12.0

Residual standard error: 0.1528 on


Multiple R-squared: 0.971,
F-statistic: 117.3 on 2 and 7 DF,
> fit2=lm(y~x+I(x^2),data=dados) #
> plot(y~x,data=dados)
> curve(-30.045545 + 13.244500*x +

Pr(>|t|)
0.00001888 ***
0.00000200 ***
0.00000174 ***

5.0

5.5

6.0

6.5
x

Figura 43: Regressao

75

7.0

7.5

> fert<-c(10,20,30,40,50,60,70,80,90,100)
> pro<-c(42,61,81,94,98,96,83,79,59,43)
> reg<-lm(pro~fert+I(fert^2)) # Modelo quadratico
> summary(reg)
Call:
lm(formula = pro ~ fert + I(fert^2))
Residuals:
Min
1Q Median
-6.441 -2.100 0.775

3Q
2.194

Max
3.650

Coefficients:
Estimate Std. Error t value
Pr(>|t|)
(Intercept) 15.516667
4.222243
3.675
0.00791
fert
2.957197
0.176339 16.770 0.000000656
I(fert^2)
-0.027159
0.001562 -17.384 0.000000513
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 .

**
***
***
0.1 1

Residual standard error: 3.59 on 7 degrees of freedom


Multiple R-squared: 0.9774,
Adjusted R-squared:
F-statistic: 151.4 on 2 and 7 DF, p-value: 0.000001734
> anova(reg)
Analysis of Variance Table

0.9709

Response: pro
Df Sum Sq Mean Sq F value
Pr(>F)
fert
1
7.6
7.6
0.5878
0.4683
I(fert^2) 1 3894.6 3894.6 302.2072 0.0000005126 ***
Residuals 7
90.2
12.9
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
> confint(reg) # 95% confidence intervals (defaults to 95%)
2.5 %
97.5 %
(Intercept) 5.53264900 25.50068433
fert
2.54022230 3.37417164
I(fert^2)
-0.03085333 -0.02346485
> library(QuantPsyc)
> lm.beta(reg) # standardised coefficients
fert I(fert^2)
4.250991 -4.406664
> library(car)
> durbinWatsonTest(reg)
lag Autocorrelation D-W Statistic p-value
1
-0.08364433
2.041007
0.388
Alternative hypothesis: rho != 0
> library(MASS)
> studres(reg) # studentised_residuals
1
2
3
4
5
6
7
-0.1558789 -0.9055686 0.3489720 1.1614545 0.7742317 0.2425253 -2.8293712
8
9
10
0.2078615 -0.8613471 1.7062744
> shapiro.test(reg$residuals) # teste do Shapiro-Wilk normalidade
Shapiro-Wilk normality test
data: reg$residuals
W = 0.9231, p-value = 0.3833
> ks.test(reg$residuals,"pnorm",mean(reg$residuals),sd(reg$residuals))#teste do Kolmogorov-Smirnov

76

One-sample Kolmogorov-Smirnov test


data: reg$residuals
D = 0.1907, p-value = 0.7962
alternative hypothesis: two-sided
> zresid <- scale(resid(reg))# distribution of standarised residuals
> hist(zresid)
> qqnorm(zresid) # normality of residuals

77

> x<-c(10,15,20,25,30)
> y<-c(1003,1005,1010,1011,1014)
> result<-lm(y~x)
> anova(result)
Analysis of Variance Table
Response: y
Df Sum Sq Mean Sq F value
Pr(>F)
x
1
78.4 78.400
84 0.002746 **
Residuals 3
2.8
0.933
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
> summary(result)
Call:
lm(formula = y ~ x)
Residuals:
1
2
-9.008e-14 -8.000e-01

3
4
5
1.400e+00 -4.000e-01 -2.000e-01

Coefficients:
Estimate Std. Error t value
Pr(>|t|)
(Intercept) 997.4000
1.2961 769.511 0.00000000484 ***
x
0.5600
0.0611
9.165
0.00275 **
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

0.954

1004

1006

1008

1010

1012

1014

Residual standard error: 0.9661 on 3 degrees of freedom


Multiple R-squared: 0.9655,
Adjusted R-squared:
F-statistic:
84 on 1 and 3 DF, p-value: 0.002746
> plot(x,y,col=2,lwd = 3)
> b0<-coefficients(result)[1]
> b1<-coefficients(result)[2]
> curve(b0+b1*x,min(x),max(x),add=T,col=4)

10

15

20

25

Figura 44: Regressao simples

78

30

>
>
>
>
>
+
+

range <- seq(-3, 3, by = 0.1)


rand.1 <- dnorm(range, 0, 1)
rand.2 <- dnorm(range, 0, 0.7)
mesh <- outer(rand.1, rand.2, function(x, y) x * y)
persp(range, range, mesh, phi = 20, theta = 30, expand = 0.8,
xlab = "N(0,1)", ylab = "N(0,0.7)", zlab = "PDF",
main = "Bivariate normal distribution")
Bivariate normal distribution

N(

0,0
.7)

PDF

N(0
,1)

Figura 45: Multivariada

10.7

Experimentac
ao

> setwd("/media/Meus arquivos/Pendrive/KINGSTON/sweave/apostilaR2")


> dados1<-read.table("DIC Macieira.txt",header=TRUE)
> str(dados1)
'data.frame':
20 obs. of 3 variables:
$ Var : Factor w/ 5 levels "A","B","C","D",..: 1 1 1 1 2 2 2 2 3 3 ...
$ r
: int 1 2 3 4 1 2 3 4 1 2 ...
$ peso: num 142 145 145 139 139 ...
> attach(dados1)
> is.numeric(peso)
[1] TRUE
> is.factor(Var)
[1] TRUE
> require(doBy)
> summaryBy(peso~Var,dados1,FUN=c(mean)) # M
edias por tratamento
Var peso.mean
1
A 142.8025
2
B 138.0250
3
C 138.7425
4
D 140.0100
5
E 155.1200
> sort(tapply(peso,Var,mean))
B
C
D
A
E
138.0250 138.7425 140.0100 142.8025 155.1200
> require(ExpDes.pt)
> dic(Var,peso, quali = TRUE, mcomp = "tukey", sigT = 0.05, sigF = 0.05)

79

-----------------------------------------------------------------------Quadro da analise de variancia


-----------------------------------------------------------------------GL
SQ
QM
Fc
Pr>Fc
Tratamento 4 794.93 198.732 6.2231 0.0037014
Residuo
15 479.02 31.935
Total
19 1273.95
-----------------------------------------------------------------------CV = 3.95 %

-----------------------------------------------------------------------Teste de normalidade dos residuos (Shapiro-Wilk)


p-valor: 0.1137255
De acordo com o teste de Shapiro-Wilk a 5% de significancia, os residuos podem ser considerados normais.
-----------------------------------------------------------------------Teste de Tukey
-----------------------------------------------------------------------Grupos Tratamentos Medias
a
E
155.12
ab
A
142.8025
b
D
140.01
b
C
138.7425
b
B
138.025
-----------------------------------------------------------------------> fit=glm(peso~Var,family=gaussian)
> anova(fit,test="Chi")
Analysis of Deviance Table
Model: gaussian, link: identity
Response: peso
Terms added sequentially (first to last)

Df Deviance Resid. Df Resid. Dev


Pr(>Chi)
NULL
19
1273.95
Var
4
794.93
15
479.02 0.00005288 ***
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
> summary(fit)
Call:
glm(formula = peso ~ Var, family = gaussian)
Deviance Residuals:
Min
1Q Median
-7.415 -3.718 -1.036

3Q
2.087

Max
10.870

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 142.802
2.826 50.540 < 2e-16 ***
VarB
-4.777
3.996 -1.196 0.25042
VarC
-4.060
3.996 -1.016 0.32572
VarD
-2.792
3.996 -0.699 0.49535
VarE
12.318
3.996
3.083 0.00758 **
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
(Dispersion parameter for gaussian family taken to be 31.93483)

80

Null deviance: 1273.95


Residual deviance: 479.02
AIC: 132.28

on 19
on 15

degrees of freedom
degrees of freedom

Number of Fisher Scoring iterations: 2


> require(doBy)
> popMeans(fit, effect="Var") # Efeito marginal de Var
beta0 Estimate Std.Error t.value DF Pr(>|t|)
Lower
Upper Var
1
0 142.8025 2.825546 50.53980 15
0 136.7800 148.8250
A
2
0 138.0250 2.825546 48.84897 15
0 132.0025 144.0475
B
3
0 138.7425 2.825546 49.10291 15
0 132.7200 144.7650
C
4
0 140.0100 2.825546 49.55149 15
0 133.9875 146.0325
D
5
0 155.1200 2.825546 54.89913 15
0 149.0975 161.1425
E
> fit2=glht(fit, linfct=mcp(Var="Tukey")) # Comopara
c~
ao m
edias duas a duas s
o funciona sem intera
c~
ao
> summary(fit2)
Simultaneous Tests for General Linear Hypotheses
Multiple Comparisons of Means: Tukey Contrasts

Fit: glm(formula = peso ~ Var, family = gaussian)


Linear Hypotheses:
Estimate Std. Error z value Pr(>|z|)
B - A == 0 -4.7775
3.9959 -1.196 0.75398
C - A == 0 -4.0600
3.9959 -1.016 0.84811
D - A == 0 -2.7925
3.9959 -0.699 0.95680
E - A == 0 12.3175
3.9959
3.083 0.01735 *
C - B == 0
0.7175
3.9959
0.180 0.99977
D - B == 0
1.9850
3.9959
0.497 0.98769
E - B == 0 17.0950
3.9959
4.278 < 0.001 ***
D - C == 0
1.2675
3.9959
0.317 0.99781
E - C == 0 16.3775
3.9959
4.099 < 0.001 ***
E - D == 0 15.1100
3.9959
3.781 0.00138 **
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
(Adjusted p values reported -- single-step method)
> require(gmodels)
> estimable(fit, rbind(AvsB=c(1,-1,0,0,0))) # Contraste comparando A e B
Estimate Std. Error t value DF
Pr(>|t|)
AvsB
147.58
6.318112 23.35824 15 3.292921e-13
> require(MCMCglmm)
> model = MCMCglmm(peso~Var, data=dados1)
MCMC iteration = 0
MCMC iteration = 1000
MCMC iteration = 2000
MCMC iteration = 3000
MCMC iteration = 4000
MCMC iteration = 5000
MCMC iteration = 6000
MCMC iteration = 7000

81

MCMC iteration = 8000


MCMC iteration = 9000
MCMC iteration = 10000
MCMC iteration = 11000
MCMC iteration = 12000
MCMC iteration = 13000
> summary(model)
Iterations = 3001:12991
Thinning interval = 10
Sample size = 1000
DIC: 132.87
R-structure:

units

~units

post.mean l-95% CI u-95% CI eff.samp


36.4
15.25
65.91
947.7

Location effects: peso ~ Var


post.mean l-95% CI u-95% CI eff.samp pMCMC
(Intercept)
142.813 136.298 148.517
1000 <0.001 ***
VarB
-4.667 -13.579
3.117
1000 0.254
VarC
-3.935 -12.477
4.386
1000 0.370
VarD
-2.687 -11.133
5.712
1000 0.488
VarE
12.212
3.947
21.033
1000 0.006 **
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
> HPDinterval(model$Sol, prob=0.95)
lower
upper
(Intercept) 136.297732 148.516688
VarB
-13.578824
3.117049
VarC
-12.476554
4.386387
VarD
-11.132634
5.711623
VarE
3.947112 21.032570
attr(,"Probability")
[1] 0.95
> sexo=rbinom(400, 1, 0.15)
> altura= rnorm(100, 60, 30)
> comprimento=rnorm(400, 50, 20)
> g <- data.frame(sexo,altura,comprimento)
> attach(g)
The following object is masked _by_ .GlobalEnv:
altura, comprimento, sexo
The following object is masked from dados (position 13):
sexo
The following object is masked from dados (position 15):
sexo
The following object is masked from dados (position 16):
sexo
82

The following object is masked from dados (position 19):


sexo
The following object is masked from dados (position 22):
sexo
The following object is masked from dad (position 24):
sexo
> modelo= glm(sexo~ altura+comprimento,family=binomial(logit), data=g)
> summary(modelo)
Call:
glm(formula = sexo ~ altura + comprimento, family = binomial(logit),
data = g)
Deviance Residuals:
Min
1Q
Median
-0.6750 -0.6291 -0.6124

3Q
-0.5970

Max
1.9434

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.3598919 0.4054454 -3.354 0.000796 ***
altura
-0.0006935 0.0040469 -0.171 0.863941
comprimento -0.0030105 0.0064799 -0.465 0.642221
--Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 370.98
Residual deviance: 370.72
AIC: 376.72

on 399
on 397

degrees of freedom
degrees of freedom

Number of Fisher Scoring iterations: 4


> confint(modelo)
2.5 %
97.5 %
(Intercept) -2.177635693 -0.583916363
altura
-0.008605488 0.007297026
comprimento -0.015733898 0.009730725
> library(epicalc)
> logistic.display(modelo, simplified=TRUE)
OR lower95ci upper95ci Pr(>|Z|)
altura
0.9993068 0.9914119 1.007265 0.8639414
comprimento 0.9969940 0.9844119 1.009737 0.6422208
> c<- coef(modelo)
> c # retorna os coeficientes do modelo
(Intercept)
altura comprimento
-1.359891908 -0.000693468 -0.003010523
> odd=exp(c)
> odd # retorna a odd do i
(Intercept)
altura comprimento
0.2566885
0.9993068
0.9969940

10.8

Estatstica n
ao param
etrica

> library(agricolae)
> data(corn)
> attach(corn)
83

> str(corn)
> comparison<-kruskal(observation,method,group=TRUE)

10.9

Regress
ao logistica

C
alculo do R2 semelhante a regress
ao linear para regressao logistica.
> tr <- gl(3,4) # n
veis de tratamento
> ds <- runif(length(tr), 1, 1.2) # densidade do solo
> y <- rbinom(length(tr), prob=0.5, size=50) # germina
c~
ao
> # tr
e categ
orica, ds
e n
umerica
>
> m0 <- glm(cbind(y, 50-y)~tr*ds, family=binomial)
> summary(m0)
Call:
glm(formula = cbind(y, 50 - y) ~ tr * ds, family = binomial)
Deviance Residuals:
Min
1Q
-0.89549 -0.41782

Median
0.07459

3Q
0.35284

Max
0.75704

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept)
-4.443
3.482 -1.276
0.202
tr2
2.246
7.667
0.293
0.770
tr3
4.916
4.208
1.168
0.243
ds
4.000
3.063
1.306
0.192
tr2:ds
-1.674
7.201 -0.232
0.816
tr3:ds
-4.247
3.733 -1.138
0.255
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 5.1929
Residual deviance: 2.8114
AIC: 67.094

on 11
on 6

degrees of freedom
degrees of freedom

Number of Fisher Scoring iterations: 3


> anova(m0,test="Chi")
Analysis of Deviance Table
Model: binomial, link: logit
Response: cbind(y, 50 - y)
Terms added sequentially (first to last)

Df Deviance Resid. Df Resid. Dev Pr(>Chi)


NULL
11
5.1929
tr
2 0.52393
9
4.6690
0.7695
ds
1 0.52796
8
4.1411
0.4675
tr:ds 2 1.32964
6
2.8114
0.5144
> require(descr)
> LogRegR2(m0)
Qui2
2.381531
Gl
5
Sig.
0.7942212

Indice de Cox e Snell 0.1800082

Indice de Nagelkerke 0.5124437


R2 de McFadden
0.4586094
84

> library(epicalc)
> logistic.display(m0, simplified=TRUE)
OR
lower95ci
upper95ci
tr2
9.44810184 0.0000028104006 31762955.25002
tr3
136.50062313 0.0357409509504
521318.53290
ds
54.58825536 0.1349115307182
22087.64223
tr2:ds
0.18758473 0.0000001393244
252561.85561
tr3:ds
0.01431254 0.0000095071002
21.54692

10.10

Sturges

> x=c(3,34,5,6,7,8,9)
> nclass.Sturges(x)
[1] 4

85

Pr(>|Z|)
0.7695979
0.2426888
0.1915729
0.8162162
0.2553121

Indice Remissivo
importar, 2
knitr, 14
Sweave, 13

86

Lista de Figuras
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

Porcentagem no histograma . . . . . . . . .
Adicionar curvas . . . . . . . . . . . . . . .
Plotar densidade . . . . . . . . . . . . . . .
Curva normal . . . . . . . . . . . . . . . .
Curvas . . . . . . . . . . . . . . . . . . . .
curvas . . . . . . . . . . . . . . . . . . . . .
Adicionar novo histograma num j
a existente
Curva normal . . . . . . . . . . . . . . . . .
Curva ao histograma . . . . . . . . . . . . .
3D . . . . . . . . . . . . . . . . . . . . . . .
3d . . . . . . . . . . . . . . . . . . . . . . .
Estatsticas descritivas . . . . . . . . . . . .
Func
ao densidade probabilidade fdp . . . .
Distribuic
ao de probabilidade binomial . . .
Boxplot . . . . . . . . . . . . . . . . . . . .
dist . . . . . . . . . . . . . . . . . . . . . . .
Intervalo de confianca para media I . . . . .
Intervalo de confianca para media II . . . .
Intervalo de confianca para media III . . . .
Gr
aficos Lattice I . . . . . . . . . . . . . .
Gr
aficos Lattice II . . . . . . . . . . . . . .
Gr
aficos Lattice . . . . . . . . . . . . . . .
Gr
aficos Lattice VI . . . . . . . . . . . . . .
Gr
aficos Lattice VI . . . . . . . . . . . . . .
Gr
aficos Lattice VI . . . . . . . . . . . . . .
Gr
aficos Lattice VI . . . . . . . . . . . . . .
Gr
aficos Lattice III . . . . . . . . . . . . .
Gr
aficos Lattice IV . . . . . . . . . . . . .
Normalidade por grupo . . . . . . . . . . .
Gr
aficos Lattice V . . . . . . . . . . . . . .
Plotar cruzamento de vari
aveis . . . . . . .
Func
ao UsingR . . . . . . . . . . . . . . . .
Histograma marginal . . . . . . . . . . . . .
Box plot marginal . . . . . . . . . . . . . .
Tres gr
aficos em em mesma janela . . . . .
Tres gr
aficos em em mesma janela . . . . .
Histograma Box plot . . . . . . . . . . . . .
Media por fator . . . . . . . . . . . . . . . .
Media por fator . . . . . . . . . . . . . . . .
Interac
ao . . . . . . . . . . . . . . . . . . .
Design . . . . . . . . . . . . . . . . . . . . .
Coplot . . . . . . . . . . . . . . . . . . . . .
Regress
ao . . . . . . . . . . . . . . . . . . .
Regress
ao simples . . . . . . . . . . . . . . .
Multivariada . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

4
4
5
5
6
7
8
9
10
11
12
18
18
21
22
33
45
46
47
48
49
52
53
54
55
56
57
58
59
60
63
66
67
68
69
70
71
72
72
73
73
74
75
78
79

Lista de Tabelas
1
2

Tabela ANOVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Tabela de frequencia empresa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

87

Você também pode gostar