Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila R - BÁSICO PDF
Apostila R - BÁSICO PDF
=
6
1 i
i
X
X<- c( 90, 95, 97, 98, 100, 60) #cr i ando o vet or X
sum( X) #cal cul ando o somat r i o
[ 1] 540
b)
=
6
5
2
2
i
i
i
Y
Y<- c( 60, 70, 80, 60, 90, 75) #cr i ando o vet or Y
sum( Y^2) - Y[ 1] ^2- Y[ 5] ^2 #somat r i o subt r ai ndo os t er mos da exceo
[ 1] 20525
8.1.2. Produtrio
Pode-se fazer uma analogia com o somatrio, ressaltando que este referencia-se
multiplicao.
x<- c( 1, 2, 3, 4) #cr i ando umvet or qual quer
pr od( x) #obt endo o pr odut r i o do vet or cr i ado
[ 1] 24
Resolvendo com o R...
Dado:
X = {32 , 12 , 45 , 9 , 78 , 16 , 54 , 14}
Encontre:
=
7
1 i
i
X
X<- c( 32, 12, 45, 9, 78, 16, 54, 14) #cr i ando o vet or X
pr od( X) / X[ 8] #pr odut r i o, r et i r ando a exceo
[ 1] 10480803840
8.2. Medidas de posio amostral
Dentre as vrias medidas de disperso, nos preocuparemos apenas com as medidas
de tendncia central.
8.2.1. Mdia
A mdia a medida de posio mais conhecida e pode ser obtida facilmente no R
atravs do comando mean( ) . Veja:
x<- c( 1, 2, 3, 4, 5) #cr i ando umvet or
mean( x) #obt endo a mdi a
[ 1] 3
8.2.2. Mediana
A mediana uma medida de posio (tendncia central) indicada quando o conjunto
de dados possui valores extremos.
vlido lembrar que a mediana obtida do conjunto de dados quando este se
encontra ordenado, no importando se crescente ou decrescentemente. Porm o R j leva
em conta a ordenao, sem a necessidade de o usurio ordenar os dados antes de executar
o comando que d a mediana. Veja:
x<- c( 1, 2, 18, 7, 6) #vet or qual quer no or denado
medi an( x) #obt endo medi ana
[ 1] 6
8.2.3. Moda
A moda o valor mais freqente do conjunto de dados. Um conjunto de dados pode
ser unimodal, quando este possui apenas um valor modal, bimodal, quando possui dois
valores de moda e multimidal, para conjunto de dados com mais de dois valores modais.
Aqui vai uma funo desenvolvida para calcular o valor modal (ou os valores,
quando o conjunto de dados tiver mais que um valor para a moda). Ela foi desenvolvida
apenas para conjuntos de dados agrupados em vetores, matrizes ou fatores. Veja:
moda<- f unct i on( d)
{
i f ( ( i s. vect or ( d) | | i s. mat r i x( d) | | i s. f act or ( d) ==TRUE) &&
( i s. l i st ( d) ==FALSE) )
{
dd<- t abl e( d)
val or es<- whi ch( dd==max( dd) )
vmodal <- 0
f or ( i i n 1: ( l engt h( val or es) ) )
i f ( i ==1) vmodal <- as. numer i c( names( val or es[ i ] ) )
el se
vmodal <- c( vmodal , as. numer i c( names( val or es[ i ] ) ) )
i f ( l engt h( vmodal ) ==l engt h( dd) )
pr i nt ( " conj unt o semval or modal " )
el se r et ur n( vmodal )
}
el se pr i nt ( " o par met r o deve ser umvet or ou uma mat r i z" )
}
x<- c( 1, 2, 3, 4, 5, 5, 5, 5, 5, 6, 6, 7, 7, 8)
moda( x)
[ 1] 5
Resolvendo com o R...
Dado o conjunto de dados abaixo, encontre a mdia, a mediana e a moda dos dados:
20 7 5 9 6 21 24 10 12 22 21 16 13 6 6 2 19 3 10 7 2 18 4 6 18 12 4 13 9 3
x<- scan( ) #use copi ar e col ar , par a cr i ar o conj unt o de dados
mean( x) #obt endo o val or da mdi a
[ 1] 10. 93333
medi an( x) #obser ve que no necessr i o or denar
[ 1] 9. 5
moda( x) #aps i nt r oduzi r a f uno de cl cul o de moda no R
[ 1] 6
8.3. Medidas de disperso amostral
As medidas de disperso tambm constituem elementos fundamentais na
caracterizao de um conjunto de dados. Algumas delas podem ser citadas abaixo.
8.3.1. Varincia
Com apenas um comando podemos obter a varincia usando o R. Veja o exemplo
abaixo:
x<- c( 1, 2, 3, 4, 5) #cr i ando umvet or
var ( x) #obt endo a var i nci a
[ 1] 2. 5
8.3.2. Desvio padro
Pode ser obtido por:
x<- c( 1, 2, 3, 4, 5) #umvet or qual quer
sd( x) #obt endo o desvi o padr o
[ 1] 1. 581139
Ou por:
sqr t ( var ( x) ) #def i ni es. . .
[ 1] 1. 581139
8.3.3. Amplitude total
A amplitude total pode ser obtida de uma forma indireta, subtraindo-se o mximo
valor do conjunto de dados pelo mnimo deste. Veja o exemplo:
x<- c( 2, 4, 5, 6, 10) #umconj unt o de dados qual quer
r ange( x) #most r a o mi n( x) e o max( x)
[ 1] 2 10
max( x) - mi n( x) #ampl i t ude t ot al obt i da de f or ma i ndi r et a
[ 1] 8
Resolvendo com o R...
Um psiclogo deseja obter informaes sobre o grau de disperso de dados referentes
idade dos freqentadores de um grupo de Alcolicos Annimos. Ele coletou os seguintes dados:
33 17 39 78 29 32 54 22 38 18
Ele quer saber a varincia, o desvio padro, amplitude total, erro padro da mdia, e
coeficiente de variao de seu conjunto de dados.
x<- c( 33, 17, 39, 78, 29, 32, 54, 22, 38, 18) #conj unt o de dados
var ( x) #var i nci a
[ 1] 339. 5556
sd( x) #desvi o padr o
[ 1] 18. 42703
max( x) - mi n( x) #ampl i t ude t ot al
[ 1] 61
sd( x) / sqr t ( l engt h( x) ) #er r o padr o da mdi a
[ 1] 5. 82714
sd( x) / mean( x) *100 #coef i ci ent e de var i ao em%
[ 1] 51. 1862
8.4. Covarincia e Correlao
A covarincia e a correlao entre dois conjuntos de dados quaisquer podem ser
obtidos pelos comandos cov( x, y) e cor ( x, y) , respectivamente. Veja o exemplo:
x<- c( 1, 2, 3, 4, 5) #cr i ando umvet or qual quer
y<- c( 6, 7, 8, 9, 10) #cr i ando out r o vet or
cov( x, y) #obt endo a covar i nci a ent r e x e y
[ 1] 2. 5
cor ( x, y) #obt endo a cor r el ao
[ 1] 1
9. Sobre probabilidade
9.1. Algumas Distribuies
Diversas situaes reais muitas vezes se aproximam de certas distribuies
estocsticas definidas por algumas hipteses. Da a importncia de se conhecer e
manipular algumas destas distribuies to presentes em nosso cotidiano.
Veja a lista abaixo com algumas funes para gerar valores amostrais de
distribuies e seus respectivos parmetros. Nos detalhes de cada funo, os valores
indicados (como por exemplo: mean=0, na distribuio normal) so os possveis por
definio (default), mas podem ser alterados pelo usurio ao seu bel prazer, j os que no
esto indicados, significa que o parmetro deve ser especificado pelo usurio.
Distribuio/funo Funo
beta r bet a( n, shape1, shape2)
binomial r bi nom( n, si ze, pr ob)
binomial negativa r nbi nom( n, si ze, pr ob)
Cauchy r cauchy( n, l ocat i on=0, scal e=1)
estatstica de Wilcoxons r wi l cox( nn, m, n, n) , r si gnr ank( nn, n)
exponencial r exp( n, r at e=1)
Fisher-Snedecor (F) r f ( n, df 1, df 2)
gamma r gamma( n, shape, scal e=1)
Gauss (normal) r nor m( n, mean=0, sd=1)
geomtrica r geom( n, pr ob)
hypergeomtrica r hyper ( nn, m, n, k)
logstica r l ogi s( n, l ocat i on=0, scal e=1)
log-normal r l nor m( n, meanl og=0, sdl og=1)
Poisson r poi s( n, l ambda)
qui-quadrado (
2
) r chi sq( n, df )
Student (t) r t ( n, df )
uniforme r uni f ( n, mi n=0, max=1)
Weibull r wei bul l ( n, shape, scal e=1)
Adicionalmente, outras letras (p, d, q, alm do r) adicionadas previamente ao cdigo
das distribuies podem ser usadas, com diferentes propsitos. Resumidamente temos:
r: Gerador de nmeros aleatrios. Requer argumentos especificando o tamanho da
amostra, alm dos parmetros requeridos pela distribuio de interesse;
p: Funo de probabilidade. Requer um vetor de percentis, alm dos parmetros
requeridos pela distribuio de interesse;
d: Funo densidade. Requer um vetor de percentis, alm dos parmetros requeridos
pela distribuio de interesse;
q: Funo de percentis. Requer um vetor de probabilidades (0 < p < 1), alm dos
parmetros requeridos pela distribuio de interesse.
Exemplos:
A probabilidade de ocorrncia de um valor menor que 20 em uma distribuio normal de
mdia 50 e desvio padro igual a 15 pode ser obtida com o cdigo abaixo:
pnor m( 20, #o val or r ef er nci a par a o cl cul o da pr obabi l i dade
50, #o segundo par met r o se r ef er e a medi a
15) #e por l t i mo o val or do desvi o padr o
[ 1] 0. 02275013
Experimente agora tentar encontrar o valor da probabilidade de ocorrncia de valores
menores ou iguais ao valor da mdia. Qual seria o resultado esperado?
pnor m( 50, 50, 15)
[ 1] 0. 5
Verifique tambm o que acontece quando se altera o valor do desvio padro o caso acima.
Agora, se voc deseja computar o percentil 0.96 de uma distribuio de Qui-quadrado com
5 graus de liberdade use:
qchi sq( 0. 96, 5)
[ 1] 11. 64433
A letra d antes dos cdigos poder ser usada, de maneira muito interessante como ser visto
adiante, para fazer o grfico da distribuio de uma varivel aleatria contnua (funo densidade
de probabilidade, ou como mais conhecida: f.d.p.). Por exemplo, para desenhar a curva de uma
distribuio normal padro no intervalo [-3,3] faa o seguinte:
cur ve( dnor m( x) , - 3, 3) #desenha uma cur va de di st r i b nor mal em[ - 3, 3]
-3 -2 -1 0 1 2 3
0
.
0
0
.
1
0
.
2
0
.
3
0
.
4
x
d
n
o
r
m
(
x
)
Usando essa funo poderamos comparar diferentes formas da distribuio de certas
variveis aleatrias quando os valores de seus parmetros so alterados. O exemplo abaixo mostra
a distribuio de qui-quadrado quando seus valores de graus de liberdade alternam entre 1, 5 e 10.
Confira:
cur ve( dchi sq( x, 1) , 1, 30) #qui - quadr ado: 1 gr au de l i ber dade
cur ve( dchi sq( x, 5) , 1, 30, add=T) #agor a com5 gr aus de l i ber dade
cur ve( dchi sq( x, 10) , 1, 30, add=T) #e por l t i mo 10 gr aus de l i ber dade
0 5 10 15 20 25 30
0
.
0
0
0
.
0
5
0
.
1
0
0
.
1
5
0
.
2
0
0
.
2
5
x
d
c
h
i
s
q
(
x
,
1
)
Se a varivel for discreta, devemos substituir a funo cur ve por poi nt s (o
comando pl ot ( ) tambm funciona). Veja em ?poi nt s como usar esse comando. Nesse
caso necessrio usar o argumento t ype=h para desenhar linhas verticais sobre os
valores de x. Veja o exemplo no tpico Binomial abaixo.
9.1.1. Binomial
A distribuio Binomial advm da distribuio de Bernoulli quando repetimos um
esnsaio (algumas vezes referido como provas) de Bernoulli n vezes. Onde p a
probabilidade de sucesso. Veja:
Resolvendo com o R...
Considere que a probabilidade de certa pea artesanal ser produzida com perfeio pelo
arteso igual a 0,5. Considere que o arteso produza 6 peas por vez. Pede-se:
a) Obter a distribuio de probabilidades do nmero peas perfeitas produzidas pelo arteso
(em uma vez 6 peas);
bi no<- dbi nom( 0: 6, 6, . 5) #obt endo a t abel a
bi no
[ 1] 0. 015625 0. 093750 0. 234375 0. 312500 0. 234375 0. 093750 0. 015625
pl ot ( 0: 6, #i nt er val o desej ado
bi no, #vet or comos val or es de pr obabi l i dade
t ype=" h" , #adi ci ona umt r aa do ei xo ao pont o
xl ab=' val or es de x' , #t ext o do ei xo x
yl ab=' pr obabi l i dades de x' , #t ext o do ei xo y
mai n=' Di st r i bui o de pr obabi l i dade de X' ) #t t ul o
0 1 2 3 4 5 6
0
.
0
5
0
.
1
5
0
.
2
5
Distribuio de probabilidade de X
valores de x
p
r
o
b
a
b
i
l
i
d
a
d
e
s
d
e
x
9.1.2. Poisson
A distribuio de Poisson utilizada quando no prtico ou mesmo possvel
determinarmos o nmero de fracassos ou o nmero total de provas de um experimento.
muito til para descrever as probabilidades do nmero de ocorrncias num campo ou
intervalo contnuo (em geral de tempo ou espao). Veja o exemplo abaixo:
Resolvendo com o R...
Num trabalho de campo realizado por um topgrafo h, em mdia, 4 erros grosseiros por
Km
2
levantado. Pergunta-se:
a) Qual a probabilidade de que um Km
2
contenha pelo menos 1 erro grosseiro?
dpoi s( 0, 4)
[ 1] 0. 01831564
b) Estime o nmero provvel de Km
2
que no contm erros numa rea de 100 Km
2
.
dpoi s( 0, 4) *100
[ 1] 1. 831564
9.1.3. Normal
Sem dvida a mais popular das distribuies de probabilidade tem algumas
particularidades que a tornam especial. A distribuio normal permite a realizao de
vrios procedimentos estatsticos que no so possveis em outras distribuies como o
teste t de Student entre outros. Veja alguns exemplos envolvendo essa distribuio:
Resolvendo com o R...
Suponha que um pesquisador coletou dados de estatura de jovens em idade de alistamento
militar. Sabendo-se que a estatura de um acerta populao segue a distribuio normal o
pesquisador pode escrever que X~N(170;36), onde X a varivel aleatria altura com unidades
em centmetros. Pede-se:
a) Qual a probabilidade de encontrarmos um jovem com mais de 1,79 metros de altura?
1- pnor m( 179, 170, 6)
[ 1] 0. 0668072
cur ve( dnor m( x, 170, 6) , #di st r nor mal : medi a=170 e desv. padr o=6
152, 188, #l i mi t es i nf er i or e super i or do gr f i co
mai n=" X~N( 170, 36) " , #t t ul o do gr f i co
yl ab=" pr obabi l i dade" ) #t ext o do ei xo y
l i nes( c( 182, 182) , #i n ci o e f i mda l i nha emr el ao ei xo x
c( 0, 0. 06) , #i n ci o e f i mda l i nha emr el ao ei xo y
col =2) #cor da l i nha: ver mel ha
155 160 165 170 175 180 185
0
.
0
0
0
.
0
2
0
.
0
4
0
.
0
6
X~N(170,36)
x
p
r
o
b
a
b
i
l
i
d
a
d
e
O valor de probabilidade encontrada corresponde exatamente a rea do grfico abaixo da
curva normal e direita da linha vermelha.
b) Encontre o valor da estatura para qual a probabilidade de encontrarmos valores menores
que o deste seja de 80%.
qnor m( 0. 8, 170, 6)
[ 1] 175. 0497
9.2. Gerao de nmeros aleatrios
O R pode gerar nmeros aleatrios de vrias formas. Pode-se gerar um nmero
qualquer, dentro de um intervalo pr-estabelecido ou em uma distribuio de interesse.
Veremos abaixo as duas formas:
9.2.1. Gerar nmeros em intervalos pr-estabelecidos
Deve-se primeiro estabelecer o intervalo, ou seja, quais valores que o(s) nmero(s)
gerado(s) pode(m) assumir. Depois se devem determinar quantos nmeros sero gerados,
com ou sem reposio. Veja o exemplo a seguir:
Exemplo:
Para simular o lanamento de um dado honesto 100 vezes usando o R, podemos usar o
comando sampl e( ) , onde o primeiro parmetro do parntese informa quais valores podem ser
assumidos (no nosso caso, os 6 valores contidos nas faces do dado), em seguida informamos
quantas vezes queremos jogar o dado, e devemos dizer tambm ao R que os nmeros podem se
repetir, ou seja, com reposio ( r e=TRUE) .
x<- c( 1, 2, 3, 4, 5, 6) #det er mi nado quai s val or es podemser assumi dos
sampl e( x, #aqui mandamos sor t ear dent r e os val or es de x
100, #aqui o t amanho da amost r a
r e=TRUE) #r e abr evi a r epl ace do i ngl s, i ndi cando r eposi o
[ 1] 4 2 4 2 6 1 3 5 5 5 2 4 6 3 6 6 6 3 4 6 4 6 4 3 6 5 4
[ 28] 6 3 4 5 3 2 3 4 4 5 3 2 4 3 2 3 1 4 4 1 6 1 6 1 2 4 5
[ 55] 6 4 5 4 5 3 5 6 6 3 6 4 3 1 6 6 1 1 3 5 5 5 6 6 5 3 6
[ 82] 4 4 5 1 2 5 2 5 5 3 3 1 5 2 5 4 1 1 3
9.2.2. Gerar nmeros de uma distribuio de interesse
No R existem vrias funes (distribuies) prontas para gerar nmeros aleatrios.
Basta usar a seguinte codificao: letra r, seguido do cdigo da distribuio de interesse
e seus parmetros. Veja o exemplo abaixo:
r uni f ( 1) #ger a um nmer o al eat r i o de uma di st r i bui o uni f or me.
Nessa di st r i bui o o ni co par met r o exi gi do o t amanho da amost r a
[ 1] 0. 8318596
#out r o exempl o, di st r i bui o nor mal :
# t amanho da amost r a 10; mdi a 30; desvi o padr o 5
r nor m( 10, 30, 5)
[ 1] 22. 66061 32. 23040 20. 74191 24. 96324 36. 26748 35. 04722
[ 7] 33. 33221 27. 13449 28. 04094 25. 90274
10. Criando grficos com o R
O R uma poderosa ferramenta no que diz respeito confeco de grficos e afins.
Na estatstica, em especial, ele possibilita a criao de histogramas, ogivas, curvas de
distribuies e regresses e muito mais.
Em anlises estatsticas, podemos usufruir das ferramentas grficas para fazermos
um estudo inicial dos nossos dados. Muitas vezes torna muito mais simples o
entendimento de um problema ou situao se conseguimos visualizarmos as variveis
envolvidas graficamente.
Voc pode ver alguns exemplos de grficos que podem ser criados no R com o
comando abaixo:
demo( gr aphi cs)
O R possui diferentes funes geradoras de grficos, e essas so classificados como:
Funes grficas de alto nvel: criam novos grficos na janela, definindo eixos,
ttulo, etc. Exemplos: pl ot , hi st , i mage, cont our , per sp etc.
Funes grficas de baixo nvel: permitem adicionar novas informaes em grficos
j criados, como novos dados, linhas etc. Exemplos: poi nt s, l i nes, abl i ne,
pol ygon, l egend etc.
Funes grficas iterativas: permitem retirar ou adicionar informaes aos grficos
j existentes, usando por exemplo o cursor do mouse. Exemplos: l ocat or , i dent i f y.
10.1. Uso da funo plot()
10.1.1. Um grfico simples
A funo pl ot ( ) inicia um novo grfico. Em sua forma mais simples a funo
recebe valores de coordenadas x e y:
x<- 1: 20
y<- x**3
pl ot ( x, y) #pl ot a as var i vei s x e y.
5 10 15 20
0
2
0
0
0
4
0
0
0
6
0
0
0
8
0
0
0
x
y
Este ltimo comando faz com que o R abra uma nova janela. Novos grficos iro
sobrescrever o grfico na mesma janela.
Todas as alteraes geradas dentro de uma funo grfica so consideradas
alteraes temporrias, veja algumas opes abaixo.
Grficos com linhas ligando os pontos podem ser obtidos utilizando o argumento
opcional t ype=" l " (letra L minsculo) na funo pl ot ( ) :
pl ot ( x, y, t ype=" l " )
5 10 15 20
0
2
0
0
0
4
0
0
0
6
0
0
0
8
0
0
0
x
y
H vrias outras opes para os grficos. Examine estes exemplos:
pl ot ( x, y, t ype=" b" )
pl ot ( x, y, t ype=" o" )
pl ot ( x, y, t ype=" s" )
pl ot ( x, y, t ype=" c" )
pl ot ( x, y, t ype=" h" )
Se quiser obter mais informaes sobre o comando pl ot ( ) digite ?pl ot no prompt
do R Console.
10.1.2. Adicionando mais dados a um grfico
Podem-se adicionar pontos ou linhas a um grfico j existente usando as funes
points e lines:
pl ot ( x, y)
poi nt s( r ev( x) , y)
l i nes( x, 8000- y)
10.1.3. Mudando o padro dos pontos
Pode-se usar diferentes padres para os pontos usando o argumento pch=.
Diferentes tipos de smbolos so associados a diferentes nmeros. Pode-se ainda usar
caracteres como o smbolo desejado.
pl ot ( x, y)
poi nt s( r ev( x) , y, pch=3) #adi ci ona cr uzes
poi nt s( x, 8000- y, pch=" %" ) #usando o s mbol o por cent o
Os primeiros smbolos numricos para grficos so os seguintes:
Nmeros 7 a 14 so composies de smbolos obtidos por sobreposio dos
smbolos bsicos. Os nmeros 15 to 18 so verses slidas dos smbolos 0 a 4. Examine
os exemplos (ou ver funo que gerava um grfico com smbolos):
pl ot ( x, y)
pl ot ( x, y, pch=" @" )
pl ot ( x, y, pch=1: 3)
pl ot ( 1: 20, 1: 20, pch=1: 20) #t i l par a exi bi r os vr i os s mbol os
10.1.4. Mudando as linhas
A largura das linhas pode ser mudada com o argumento l wd=, enquanto os estilos
das linhas podem ser modificados com o argumento l t y=:
pl ot ( x, y)
l i nes( x, y, l wd=2) #l i nha gr ossa
l i nes( r ev( x) , y, l t y=2) #l i nha i nt er r ompi da
10.1.5. Definindo o intervalo dos eixos
Se voc quiser preencher um mesmo grfico com linhas e pontos que possuem
diferentes amplitudes deve usar o argumento t ype=" n" . Com este argumento um "grfico
em branco" criado, so ajustadas apenas as margens e eixos do grfico e o restante
deixado em branco. A seguir adiciona-se linhas e pontos desejados. Voc deve fornecer
coordenadas x e y que cubram a amplitude de valores de todos os elementos que voc
deseja adicionar ao grfico.
Exemplo:
pl ot ( c( 0, 20) , c( - 8000, 8000) , t ype=' n' )
l i nes( x, y)
l i nes( x, - y)
Outro exemplo:
pl ot ( c( 0, 20) , c( 0, 30) , t ype=' n' )
segment s( 5, 3, 15, 20)
l i nes( c( 12, 15, 7) , c( 3, 10, 8) , col =" r ed" )
abl i ne( 30, - 2, l t y=2, col =" bl ue" )
10.1.6. Adicionando texto
Voc pode dar nome aos eixos com os argumentos xl ab=e yl ab=. O ttulo pode ser
fornecido usando a funo t i t l e( ) , e qualquer texto pode ser adicionado em qualquer
lugar do grfico utilizando a funo t ext ( ) :
pl ot ( x, y, xl ab=" Ei xo X aqui " , yl ab=" Ei xo Y aqui " )
t i t l e( " T t ul o vai aqui \ n ( e not e a acent uao! ! ! ) " )
t ext ( 6, 4000, " Text o emqual quer l ugar " )
5 10 15 20
0
2
0
0
0
4
0
0
0
6
0
0
0
8
0
0
0
Eixo X aqui
E
i
x
o
Y
a
q
u
i
Ttulo vai aqui
(e note a acentuao!!!)
Texto em qualquer lugar
10.1.7. Identificadores no grfico
Por vezes, interessante identificarmos um ponto ou um conjunto de pontos
especificamente em um grfico gerado. Essa identificao pode ser facilmente obtida e de
maneira bem interativa quando usamos o comando i dent i f y( ) .
Exemplo:
Suponha que temos um conjunto de cidades e suas respectivas coordenadas planas (x e y).
Assim, cada cidade pode ser identificada individualmente por suas coordenadas. Veja:
x<- c( 2, 3, 4, 5, 6, 7, 8, 9) #coor denadas x
y<- c( 15, 46, 56, 15, 81, 11, 61, 55) #coor denadas y
nomes<- past e( ci dade, LETTERS[ 1: 8] , sep=) #nomes das ci dades
ci dades<- dat a. f r ame( x, y, r ow. names=nomes) #j unt ando t udo. . .
ci dades #exi bi ndo. . .
x y
ci dadeA 2 15
. . . . . . . . .
ci dadeG 8 61
ci dadeH 9 55
Assim, a cidadeA tem coordenadas (2,15), a cidadeB (3,46) e assim sucessivamente.
Podemos plotar as coordenadas das cidades de modo a poder visualizar sua distribuio
espacial.
pl ot ( ci dades)
Acontece que no conseguimos distinguir facilmente na figura qual a cidadeC, por
exemplo. Esse problema pode ser resolvido quando temos indexados os nomes das cidades s
coordenadas plotadas no grfico. Ento usamos o comando i dent i f y( ) .
Aps entrarmos com o comando, quando passamos o mouse por sobre o grfico ele vira
uma cruz, e ao clicar prximo ao ponto que se deseja identificar, sua descrio e exibida
instantaneamente.
i dent i f y( x, y, #coor denadas gr f i cas dos pont os
nomes, #i dent i f i cao descr i t a dos pont os
n=3) #nmer o de pont os a ser emi dent i f i cados
Como podemos perceber o programa ainda exibe, no prompt, os valores dos ndices das
referncias.
10.1.8. Grficos mltiplos
Voc pode dar instrues para o programa mostrar diversos grficos pequenos em
uma mesma janela ao invs de um apenas. Para isto use a funo par ( ) :
par ( mf r ow=c( 2, 2) ) #ar r anj ament o 2 por 2
pl ot ( x, y)
pl ot ( x, y)
pl ot ( x, 2*y)
pl ot ( x, l og( y) )
# et c
5 10 15 20
0
4
0
0
0
x
y
5 10 15 20
0
4
0
0
0
x
y
5 10 15 20
0
1
0
0
0
0
x
2
*
y
5 10 15 20
0
4
8
x
l
o
g
(
y
)
Neste caso voc pode acomodar at 2x3=6 grficos na mesma janela. A tela vai
"limpar" quando voc tentar fazer o stimo grfico.
A funo par ( ) pode fazer diversas outras coisas relacionadas aos grficos.
Veremos outras funcionalidades mais tarde, e voc pode tambm consultar a
documentao com hel p( par ) ou ?par .
OBS.: Para retornar ao padro com apenas um grfico por janela digite
par(mfrow=c(1,1)) ou feche a janela grfica antes de outro comando.
Uma outra opo para gerar grficos mltiplos atravs da funo layout. Veja as
instrues utilizando a documentao atravs do comando hel p( l ayout ) ou ?l ayout .
10.1.9. Parmetros Grficos
Alguns parmetros podem ser usados no intuito de personalizar um grfico no R. A
lista completa desses parmetros pode ser obtida com o comando ?par . Veja abaixo um
exemplo de aplicao do uso de parmetros para alterar a forma de apresentao de um
grfico.
Exemplo:
Vamos criar dois conjuntos de 10 nmeros cada um, gerados aleatoriamente com
distribuio pseudo-normal de mdia zero e desvio padro igual a um.
x<- r nor m( 10)
y<- r nor m( 10)
Agora compare os dois grficos abaixo. Ambos referem-se aos mesmos objetos. Porm o
segundo contm uma srie de recursos adicionais. Compare tambm os cdigos usados para gerar
cada um deles.
1 grfico:
pl ot ( x, y)
2 grfico:
pl ot ( x, y, #pl ot a x e y
xl ab=Dez nmer os quai squer , #nomei a o ei xo x
yl ab=Out r os dez nmer os, #nomei a o ei xo y
mai n=Como per sonal i zar umgr f i co, #r ef er ent e ao t t ul o
xl i m=c( - 2, 3) , #l i mi t es do ei xo x
yl i m=c( - 3, 2) , #l i mi t es do ei xo y
col =r ed, #def i ne a cor dos pont os
pch=22, #o f or mat o dos pont os
bg=yel l ow, #cor de pr eenchi ment o
t cl =0. 4, #t amanho dos t r aos dos ei xos
l as=1, #or i ent ao do t ext o emy
cex=1. 5, #t amanho do obj et o do pont o
bt y=l ) #al t er a as bor das
10.2. Histogramas
10.2.1. Um exemplo bem simples
A funo hi st ( ) produz um histograma dos dados informados em seu argumento
enquanto a funo bar pl ot ( ) produz um grfico de barras. Veja:
hi st ( c( 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5) )
-1 0 1 2
-
3
-
2
-
1
0
1
x
y
-2 -1 0 1 2 3
-3
-2
-1
0
1
2
Como personalizar um grfico
Dez nmeros quaisquer
O
u
t
r
o
s
d
e
z
n
m
e
r
o
s
Histogram of c(2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5)
c(2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5)
F
r
e
q
u
e
n
c
y
2.0 2.5 3.0 3.5 4.0 4.5 5.0
0
1
2
3
4
5
Para criar exemplos melhores vamos utilizar a funo r uni f ( ) que gera nmeros
aleatrios com distribuio uniforme entre 0 e 1, como j mencionado anteriormente neste
material. Veja:
x<- r uni f ( 100) #100 nmer os al eat r i os da di st r i bui o supr aci t ada
hi st ( x) #cr i a umhi st ogr ama dos dados ar mazenados emx
Isto mostra uma distribuio razoavelmente uniforme dos 100 nmeros. Mas se
ficarmos adicionando mais nmeros aos anteriores iremos obter uma distribuio
aproximadamente normal. Para ilustrar isto vamos primeiro dividir a rea grfica para
acomodar 4 grficos com o comando:
par ( mf r ow=c( 2, 2) )
Ento criar vrios histogramas com x sendo adicionado de outros valores
amostrais gerados pela funo r uni f ( ) :
hi st ( x)
x<- x+r uni f ( 10)
hi st ( x)
x<- x+r uni f ( 100)
hi st ( x)
x<- x+r uni f ( 1000)
hi st ( x)
E gradativamente a distribuio resultante ir se aproximar da distribuio Normal.
10.2.2. Alterando alguns parmetros
Os histogramas criados no R seguem um certo padro (conhecido como parmetros
default) que podem ser alterados de acordo com a preferncia do usurio. Voc pode obter
informaes detalhadas desses parmetros se usar os recursos de ajuda do R. Contudo,
vamos mostrar algo, a esse respeito, com o exemplo que se segue.
Exemplo:
Vamos criar um conjunto de dados que siga a distribuio de Qui-quadrado com 1000
elementos e com 10 graus de liberdade.
x<- r chi sq( 1000, 10)
Agora, de maneira anloga ao exemplo visto anteriormente em Parmetros grficos,
vamos comparar dois histogramas gerados por cdigos diferentes. O primeiro, criado da maneira
mais simples possvel e o segundo com o uso de vrios parmetros alterados pelo gosto e/ou
necessidade do usurio.
1 grfico
hi st ( x)
2 grfico
hi st ( x, #hi st ogr ama de x
mai n=" Hi st ogr ama Per sonal i zado\ nQui - quadr ado" , #t t ul o
xl ab=" Val or es" , #t ext o do ei xo das absci ssas
yl ab=" Pr obabi l i dades" , #t ext o do ei xo das or denadas
br =c( c( 0, 5) , c( 5, 15) , 5*3: 6) , #i nt er val os das cl asses
xl i m=c( 0, 30) , #l i mi t es do ei xo de x
yl i m=c( 0, 0. 1) , #l i mi t es do ei xo y
col =" l i ght bl ue" , #cor das col unas
bor der =" whi t e" , #cor das bor das das col unas
pr ob=T, #par a most r ar as pr obabi l i dades
r i ght =T, #i nt er val os f echados di r ei t a
adj =0, #al i nhament o dos t ext os
col . axi s=" r ed" ) #cor do t ext o nos ei xos
Resolvendo com o R...
Suponha um conjunto de dados coletados por um professor que se refere ao tempo gasto
(em minutos) pelos alunos para a resoluo de um problema de lgebra. Veja:
25 27 18 16 21 22 21 20 18 23 27 21 19 20 21 16
Histogram of x
x
F
r
e
q
u
e
n
c
y
0 5 10 15 20 25
0
5
0
1
0
0
1
5
0
Histograma Personalizado
Qui-quadrado
Valores
P
r
o
b
a
b
i
l
i
d
a
d
e
s
0 5 10 15 20 25 30
0
.
0
0
0
.
0
2
0
.
0
4
0
.
0
6
0
.
0
8
0
.
1
0
Construa um histograma do conjunto de dados usando 6 classes com intervalos fechados
esquerda.
dados<- c( 25, 27, 18, 16, 21, 22, 21, 20, 18, 23, 27, 21, 19, 20, 21, 16)
hi st ( dados, #est e o conj unt o de dados
nc=6, #nmer o de cl asses i gual a 6
r i ght =F, #par a o i nt er val o f echado esquer da
mai n=" Hi st ogr ama" , #def i ne o t t ul o do hi st ogr ama
xl ab=" t empo ( emmi nut os) " , #t ext o do ei xo x
yl ab=" f r equenci a" , #t ext o do ei xo y
col =8) #usa a cor ci nza nas bar r as
10.2.3. Ogiva
A ogiva nada mais do que o histograma da freqncia acumulada ao invs da
simples. Veja a comparao abaixo:
par ( mf r ow=c( 1, 2) ) #doi s gr f i cos emuma j anel a
f i <- c( r ep( 2, 3) , r ep( 4, 6) , 5, r ep( 6, 2) ) #f r eqnci a si mpl es
f a<- c( r ep( 2, 3) , r ep( 4, 9) , r ep( 5, 10) , r ep( 6, 12) ) #f r eqnci a acumul ada
hi st ( f i , nc=4, yl i m=c( 0, 12) , mai n=Hi st ogr ama) #f r eq si mpl es
hi st ( f a, nc=4, yl i m=c( 0, 12) , mai n=Ogi va) #hi st ogr ama da acumul ada
10.3. Grficos de barras
Verifique estes comandos:
bar pl ot ( t abl e( c( 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5) ) )
bar pl ot ( t abl e( c( 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5) ) , hor =T)
Para saber mais sobre grficos do R, veja nos manuais.
OBS.: Digite demo(graphics) no prompt para visualizar alguns exemplos de grficos que
podem ser gerados no R.
11. Testes Estatsticos
O R inclui em sua gama de utilidades, uma poderosa ferramenta da estatstica
contempornea: os testes estatsticos. Dentre esses, podemos destacar os testes de mdia,
amplamente usados em vrias reas do conhecimento.
11.1. Teste t (de Student)
O teste t bastante usado em vrias situaes do cotidiano quando se deseja fazer
comparaes entre uma ou mais mdias, sejam elas dependentes ou no.
Abaixo esto exemplos de vrios modos de realizarmos o teste t. Para todos eles
utilizaremos os dois vetores abaixo:
x<- c( 30. 5, 35. 3, 33. 2, 40. 8, 42. 3, 41. 5, 36. 3, 43. 2, 34. 6, 38. 5)
y<- c( 28. 2, 35. 1, 33. 2, 35. 6, 40. 2, 37. 4, 34. 2, 42. 1, 30. 5, 38. 4)
11.1.1. Para uma mdia
Vamos testar se x tem mdia igual ou maior que 35. Ento:
35 :
35 :
0
>
=
x a
x
H
H
Agora, para realizarmos o teste basta entrar com o comando:
t . t est ( x, #amost r a a ser t est ada
mu=35, #hi pt ese de nul i dade
al t er nat i ve=gr eat er ) #t est e uni l at er al pel a di r ei t a
One Sampl e t - t est
dat a: x
t = 1. 9323, df = 9, p- val ue = 0. 04268
al t er nat i ve hypot hesi s: t r ue mean i s gr eat er t han 35
95 per cent conf i dence i nt er val :
35. 13453 I nf
sampl e est i mat es:
mean of x
37. 62
Agora basta fazer a interpretao correta da sada do R.
Para saber qual hiptese foi aceita, basta verificar o valor do p-value e estipular um nvel de
significncia. Se neste exemplo o nvel de significncia () fosse de 5% a hiptese alternativa
seria aceita uma vez que o p-value foi menor ou igual a 0,05. Caso o p-value tivesse sido maior
que 5% ento aceitaramos a hiptese de nulidade.
Como a hiptese alternativa foi a aceita isso implica que a amostra x possui mdia
estatisticamente diferente do valor 35 a um nvel de significncia de 5%.
Veja o Grfico que interpreta este resultado:
Veja que a linha tracejada vermelha define o valor da estatstica do teste (t
calc
) que neste
exemplo 1,9323. Este valor define o incio da regio hachurada, que o p-value.
Observe que o p-value menor que o nvel de significncia (que toda a regio cinza,
incluindo a rea do p-value). Portanto o t
calc
est na Regio de Rejeio da hiptese de nulidade.
11.1.2. Para duas mdias independentes
Para a realizao do teste t pressupe-se que as amostras possuem varincias iguais
alm de seguirem distribuio normal. Vamos a um exemplo:
Exemplo:
Suponha que queremos testar se x e y possuem mdia estatisticamente iguais a um nvel
de significncia de 1%. Suponha tambm que essas amostras sejam independentes. Logo:
y x a
y x
H
H
=
:
:
0
E agora o comando...
t . t est ( x, y, #amost r as a ser emt est adas
conf . l evel = 0. 99) #n vel de conf i ana
Wel ch Two Sampl e t - t est
dat a: x and y
t = 1. 1148, df = 17. 999, p- val ue = 0. 2796
al t er nat i ve hypot hesi s: t r ue di f f er ence i n means i s not equal t o 0
99 per cent conf i dence i nt er val :
- 3. 369829 7. 629829
sampl e est i mat es:
mean of x mean of y
37. 62 35. 49
O raciocnio para interpretao do resultado pode se fazer de maneira anloga ao exemplo
anterior (quando estvamos testando apenas uma mdia).
11.1.3. Para duas mdias dependentes
Neste caso vamos usar o mesmo nvel de significncia do exemplo das amostras
independentes.
As hipteses se mantm:
y x a
y x
H
H
=
:
:
0
Agora basta adicionar o argumento pai r ed=T, informando que as amostras so
dependentes.
t . t est ( x, y, #amost r as a ser emt est adas
conf . l evel =0. 99, #n vel de conf i ana
pai r ed=T) #i ndi ca dependnci a ent r e as amost r as
Pai r ed t - t est
dat a: x and y
t = 3. 6493, df = 9, p- val ue = 0. 005323
al t er nat i ve hypot hesi s: t r ue di f f er ence i n means i s not equal t o 0
99 per cent conf i dence i nt er val :
0. 2331487 4. 0268513
sampl e est i mat es:
mean of t he di f f er ences
2. 13
Mais uma vez o resultado do teste pode ser obtido pela interpretao do p-value, ou usando
o intervalo de confiana: se a mdia da diferena entre as mdias estiver contida no intervalo de
confiana, implica que essa diferena no significativa.
11.2. Teste F
Exemplo:
Verificar se duas mquinas produzem peas com a mesma homogeneidade a resistncia
tenso. Para isso foram sorteadas amostras que consistiam de 6 peas de cada maquina e
obtivemos as seguintes resistncias.
Mquina A 145 127 136 142 141 137
Mquina B 143 128 132 138 142 132
O que se pode concluir fazendo um teste de hiptese adequado para um nvel de
significncia de 5%?
Segundo o teste F, podemos montar as seguintes hipteses:
2 2
2 2
0
:
:
B A a
B A
H
H
=
Primeiro vamos fazer o teste passo a passo, usando o R como uma calculadora:
Para realizar as anlises no R vamos entrar com os dados nos objetos que vamos chamar de
ma e mb e calcular o tamanho das amostras que vo ser armazenadas nos objetos na e nb.
Observe que ambos os conjuntos de dados possuem 1 grau de liberdade.
ma<- c( 145, 127, 136, 142, 141, 137)
na<- l engt h( ma)
mb<- c( 143, 128, 132, 138, 142, 132)
nb<- l engt h( mb)
J que iremos usar o teste F, temos:
2
2
s menor
s maior
Fcal =
vma<- var ( ma)
vmb<- var ( mb)
f cal <- vma/ vmb
f cal #obser vando o val or da est at st i ca do t est e
[ 1] 1. 082056
pval <- pf ( f cal , na- 1, nb- 1, l ower =F) *2 #cal cul ando o val or o p- val ue.
pval
[ 1] 0. 9331458
Observe que a multiplicao por 2 no final da expresso que d o valor do p-value ocorreu
porque se trata de um teste bilateral.
Existe uma maneira muito mais fcil de fazer um teste F no R. Veja:
Pode-se escrever uma funo, ou utilizar a funo existente no R, que para o caso
var . t est . Vejamos seus argumentos:
ar gs( var . t est )
f unct i on( x, . . . . )
NULL
Note que a sada no muito informativa. Isto indica que var . t est um mtodo com mais
de uma funo associada. Vamos usar ento:
?var . t est
Logo vemos que basta informar os vetores funo:
var . t est ( ma, mb)
F t est t o compar e t wo var i ances
dat a: ma and mb
F = 1. 0821, numdf = 5, denomdf = 5, p- val ue = 0. 9331
al t er nat i ve hypot hesi s: t r ue r at i o of var i ances i s not equal t o 1
95 per cent conf i dence i nt er val :
0. 1514131 7. 7327847
sampl e est i mat es:
r at i o of var i ances
1. 082056
Note que esta anlise foi baseada na hiptese alternativa de varincias diferentes (teste bi-
lateral). A interpretao do resultado pode ser feito, da mesma maneira que no teste t, pelo valor
do p-value. Como este maior que 0,05 ou at mesmo que 0,90 aceitamos a hiptese de nulidade
com um nvel de significncia de 5% e, se fosse vivel, at mesmo com esse nvel igual a 90%.
11.3. Outros testes
11.3.1. Qui-quadrado
Suponha que voc deseje avaliar se uma amostrem (n= 100) dos nmeros de 0 a 10
realmente aleatria.
Para gerar a amostra basta:
amos<- r ound( r uni f ( 100) *10)
Para conferir a freqncia s usar a funo table:
f r eq<- t abl e( amos)
f r eq
amos
0 1 2 3 4 5 6 7 8 9 10
5 11 11 9 13 15 9 6 9 7 5
Uma forma prtica de se capturar estas freqncias usar o comando as.numeric().
chi sq. t est ( as. numer i c( f r eq) )
Chi - squar ed t est f or gi ven pr obabi l i t i es
dat a: as. numer i c( f r eq)
X- squar ed = 11. 54, df = 10, p- val ue = 0. 317
11.3.2. Kolmogorov-Smirnov
Exemplo:
Pega-se 50 pessoas ao acaso e mensura-se suas respectivas massas em quilogramas (Kg).
Agora queremos saber se esse conjunto de dados segue a distribuio de qui-quadrado com um
nvel de significncia de 5%.
Vamos assumir que j temos os valores coletados no vetor pesos. Lembre das diferentes
formas de entrar com dados no R.
46. 88 47. 17 64. 46 67. 84 85. 76 65. 41 60. 10 75. 84 61. 21
61. 65 63. 87 53. 95 63. 66 69. 06 76. 41 75. 56 69. 04 35. 18
66. 42 58. 78 73. 02 51. 69 90. 88 53. 01 64. 31 61. 91 79. 42
57. 78 62. 73 60. 63 63. 29 46. 53 84. 64 61. 76 85. 08 59. 66
54. 89 94. 18 59. 89 68. 56 75. 66 72. 06 62. 00 43. 43 73. 38
73. 31 66. 37 73. 72 66. 15 67. 79
Agora basta entrar com o comando corretamente:
ks. t est ( pesos, #amost r a a ser t est ada
pchi sq, #p segui do do nome da di st r i bui o
49) #so os gr aus de l i ber dade da amost r a
One- sampl e Kol mogor ov- Smi r nov t est
dat a: pesos
D = 0. 6402, p- val ue < 2. 2e- 16
al t er nat i ve hypot hesi s: t wo. si ded
Como o p-value menor ou igual a 0,05 (5%) podemos assumir que os dados no tem
distribuio de qui-quadrado a 5% de probabilidade.
11.3.3. Teste para a normalidade - shapiro.test()
Por vezes temos necessidade de identificar com certa confiana se uma amostra ou
conjunto de dados segue a distribuio normal. Isso possvel, no R, com o uso do
comando shapi r o. t est ( ) . Veja:
Agora aplicando o teste ao exemplo anterior.
shapi r o. t est ( pesos)
Shapi r o- Wi l k nor mal i t y t est
dat a: pesos
W= 0. 9835, p- val ue = 0. 7078
Observe que no h necessidade de informar a distribuio, uma vez que este teste usado
apenas para a distribuio normal (conhecida por muitos como distribuio de Gauss).
Apenas para melhor assimilar o teste, veja:
qqnor m( pesos) #obt endo o nor mal pr obabi l i t y pl ot s par a compar ao
qql i ne( pesos) #col ocando uma l i nha auxi l i ar
O comando qqnor m( ) nos fornece diretamente um grfico da distribuio de percentagens
acumuladas chamado de grfico de probabilidade normal. Se os pontos deste grfico seguem um
padro aproximado de uma reta, este fato evidencia que a varivel aleatria em questo tem a
distribuio aproximadamente normal.
OBS.: Um teste de comparaes mltiplas ser abordado mais adiante.Outros testes podem ser
encontrados na documentao do R utilizando o comando help.search(nome_do_teste).
12. Anlise de Varincia (ANOVA)
Estudos estatsticos contemporneos contemplam a anlise de varincia tendo em
vista que este procedimento permite identificar e quantificar as variaes ocorridas em um
experimento, discriminando a parte da variao associada ao modelo pelo qual o
experimento foi procedido da variao que se d devido ao acaso.
No R encontram-se diversos procedimentos para se executar a ANOVA, entretanto
o usurio deve estar atento ao escolher e realizar a anlise, pois alguns erros so
freqentes, como, por exemplo, no especificar algum fator, esquecer sinal no modelo,
dentre outros.
A tabela abaixo mostra alguns modelos e suas usuais formulaes:
Modelo Frmula
DIC
y~t onde t uma varivel categrica
DBC
y~t+b
DQL
y~t+l+c
Fatorial/ DIC
y~N*P igual a N + P + N:P
Fatorial/ DBC
y~b+N*P igual a b+N+P+N:P
Regresso linear simples
y~x onde x uma varivel exploratria
Regresso quadrtica
y~x+x2 onde x2 um objeto x2<-x^2
l m( ) para regresso linear (linear models);
aov( ) para ANOVA, com erros NID;
gl m( ) para ANOVA, com estrutura de erros especificada. (generalised linear
models);
nl me( ) para modelos mistos (nonlinear mixed-effects models);
nl s( ) para modelos no lineares (nonlinear least squares).
12.1. DIC
O DIC (Delineamento Inteiramente Casualizado) trata de experimentos onde os
dados no so pr-separados ou classificados em categorias.
Exemplo:
Entrada dos dados da resposta do experimento:
r es<- scan( )
25 31 22 33 26 25 26 29 20 28 28 31 23 27 25 34 21 24 29 28
Criando os nomes dos tratamentos na ordem correspondente:
t r at <- f act or ( r ep( past e( " t r " , 1: 4, sep=" " ) , 5) )
Fazendo a ANOVA:
r esul t ado<- aov( r es~t r at )
Para exibir o quadro da ANOVA:
anova( r esul t ado)
Anal ysi s of Var i ance Tabl e
Response: r es
Df SumSq Mean Sq F val ue Pr ( >F)
t r at 3 163. 750 54. 583 7. 7976 0. 001976 **
Resi dual s 16 112. 000 7. 000
- - -
Si gni f . codes: 0 `***' 0. 001 `**' 0. 01 `*' 0. 05 `. ' 0. 1 ` ' 1
Pode-se obter os grficos da ANOVA facilmente com:
pl ot ( r esul t ado)
OBS.: Em todos os tipos de anlises de varincia, para todas as variveis qualitativas devem
ser criados fatores e no vetores, ou seja, o objeto que contm os nomes (ou nmeros)
dos tratamentos, dos blocos, etc., devem ser fatores e no vetores.
12.2. DBC
O DBC (Delineamento em Blocos Casualizados) abrange os trs princpios bsicos
da experimentao: repetio, casualizao, e o controle local.
Veja o exemplo de uma anlise de varincia no R de um experimento segundo o
DBC.
Exemplo:
Suponha que uma Nutricionista elaborou 4 dietas e quer aplic-las em 20 pessoas a fim de
testar suas eficincias quanto perda de peso. Porm ela notou que entre essas 20 pessoas existem
5 grupos de faixas iniciais de peso. Ento, para aumentar a eficcia do teste ela separou os 20
indivduos em 5 grupos de faixas de peso. Ento ela tem:
Dietas: dieta 1 dieta 2 dieta 3 dieta 4;
Grupos: peso A peso B peso C peso D peso E.
A tabela abaixo resume o valor da perda de peso, arredondados em quilogramas, de cada
indivduo. Veja:
dieta 1 dieta 2 dieta 3 dieta 4
peso A 2 5 2 5
peso B 3 7 4 3
peso C 2 6 5 4
peso D 4 5 1 3
peso E 2 5 4 4
A Nutricionista deseja determinar se existe diferena significativa entre as dietas a um nvel
de significncia de 5%.
Esse um problema tpico de ANOVA usando o DBC, onde os blocos so os grupos de
pesos. Veja como podemos proceder no R.
Criando o vetor de dados, o de tratamentos e o de blocos, respectivamente:
dad<- c( 2, 5, 2, 5, 3, 7, 4, 3, 2, 6, 5, 4, 4, 5, 1, 3, 2, 5, 4, 4)
bl oc<- gl ( 5, 4, l abel =c( past e( " peso" , LETTERS[ 1: 5] ) ) )
t r at <- r ep( past e( " di et a" , 1: 4) , 5)
Agora vamos criar um data.frame contendo todos os dados:
t abel a<- dat a. f r ame( bl ocos=bl oc, t r at ament os=f act or ( t r at ) , dados=dad)
t abel a
Agora basta entrarmos com o comando de forma correta.
O comando que gera a anlise de varincia o aov( ) , e o comando que exibe o quadro da
ANOVA o anova( ) . Ento podemos gerar o quadro da anlise de uma s vez, associando os
dois comandos. Veja:
r esul t ado<- aov( #pr ocede os cl cul os da ANOVA
dados~t r at ament os+bl ocos, #model o est at st i co ut i l i zado
t abel a) #obj et o comos el ement os do model o
r esul t ado #chamando o obj et o que cont ma ANOVA
Cal l :
aov( f or mul a = dados ~ t r at ament os + bl ocos, dat a = t abel a)
Ter ms:
t r at ament os bl ocos Resi dual s
Sumof Squar es 25. 2 3. 2 16. 8
Deg. of Fr eedom 3 4 12
Resi dual st andar d er r or : 1. 183216
Est i mat ed ef f ect s may be unbal anced
Porm esse no o quadro de ANOVA com que estamos acostumados a lidar. a que
entra o comando anova( )
anova( r esul t ado) #ger a a t abel a de anl i se de var i nci a
Anal ysi s of Var i ance Tabl e
Response: dados
Df SumSq Mean Sq F val ue Pr ( >F)
t r at ament os 3 25. 2 8. 4 6. 0000 0. 00973 **
bl ocos 4 3. 2 0. 8 0. 5714 0. 68854
Resi dual s 12 16. 8 1. 4
- - -
Si gni f . codes: 0 `***' 0. 001 `**' 0. 01 `*' 0. 05 `. ' 0. 1 ` ' 1
Agora basta interpretar os resultados: Observe que o efeito dos tratamentos (dietas) se deu
de maneira significativa a 1% de significncia, porm a 5% ele foi no significativo, o que
implica que a resposta encontrada pela Nutricionista foi: No, as dietas no apresentam
diferenas significativas a 5% de probabilidade.A resposta do exemplo j foi dada, porm vamos
prosseguir usando este mesmo exemplo pra mostrar como obter mais informaes a respeito da
ANOVA. Veja:
Caso quisssemos obter os resduos, poderamos faz-lo atravs do comando r esi d( ) ,
que exibe os resduos correspondentes a cada uma das 20 observaes:
r esi duos<- r esi d( r esul t ado) #ger ando umquadr o de r es duos
r esi duos
1 2 3 4 5 6 7 8 9 10
- 0. 30 - 0. 30 - 0. 90 1. 50 - 0. 05 0. 95 0. 35 - 1. 25 - 1. 05 - 0. 05
11 12 13 14 15 16 17 18 19 20
1. 35 - 0. 25 1. 95 - 0. 05 - 1. 65 - 0. 25 - 0. 55 - 0. 55 0. 85 0. 25
Podemos observar que a soma dos resduos tende a zero:
sum( r esi duos)
[ 1] 4. 510281e- 16
E que a soma dos quadrados desses resduos corresponde a SQResduo da ANOVA:
sum( r esi duos^2)
[ 1] 16. 8
Os totais de tratamentos podem ser obtidos por:
t appl y( dad, t r at , sum)
di et a 1 di et a 2 di et a 3 di et a 4
13 28 16 19
As mdias de tratamentos podem ser obtidas por:
t appl y( dad, t r at , mean)
di et a 1 di et a 2 di et a 3 di et a 4
2. 6 5. 6 3. 2 3. 8
Os totais de blocos podem ser obtidos por
t appl y( dad, bl oc, sum)
peso A peso B peso C peso D peso E
14 17 17 13 15
As mdias de blocos podem ser obtidas por:
t appl y( dad, bl oc, mean)
peso A peso B peso C peso D peso E
3. 50 4. 25 4. 25 3. 25 3. 75
Esses dados podem ser teis em anlises futuras.
OBS.: Para alterar certos valores no conjunto de dados originais, podemos fazer tabela<-
edit(tabela). Ser aberta uma planilha no R. Aps a alterao dos valores de
interesse, basta fechar a janela da planilha que as alteraes sero automaticamente
salvas no objeto tabela
12.3. Fatorial
Os experimentos fatoriais so aqueles em que estudamos dois ou mais fatores
simultaneamente, onde cada um desses fatores pode possuir dois ou mais nveis. A
vantagem desse tipo de experimento que alm de termos o controle dos fatores
individualmente, consideramos tambm a interao entre eles, ou seja, sabemos se esses
fatores atuam de formas independentes ou se existem interaes entre eles. Os
experimentos fatoriais podem ser conduzidos segundo o DIC, DBC e outros modelos.
12.3.1. Experimentos com 2 fatores segundo o DIC
Exemplo:
Um Engenheiro Agrimensor resolve estudar o efeito da distncia e do ngulo de visada ao
alvo no erro linear cometido na centragem do ponto a ser visado. Ele quer saber tambm se esses
dois fatores atuam relacionadamente ou independentemente. Ento ele resolve fazer um
experimento fatorial segundo um DIC com 2 repeties, obtendo o seguinte quadro:
Dist 1 Dist 2 Dist 3 Dist 4
Ang 1 0,7 0,5 1,0 1,3 1,0 0,9 0,9 0,9
Ang 2 1,5 1,6 2,0 1,2 1,2 1,3 1,6 1,2
Ang 3 0,8 1,2 1,9 0,6 1,6 1,1 1,3 1,0
A ANOVA para este experimento pode ser montada com:
e<-
c( 0. 7, 0. 5, 1. 0, 1. 3, 1. 0, 0. 9, 0. 9, 0. 9, 1. 5, 1. 6, 2. 0, 1. 2, 1. 2, 1. 3, 1. 6, 1. 2, 0. 8, 1.
2, 1. 9, 0. 6, 1. 6, 1. 1, 1. 3, 1. 0)
a<- gl ( 3, 8, l abel =c( past e( Ang, 1: 3) ) )
d<- r ep( gl ( 4, 2, l abel =c( past e( " Di st " , 1: 4) ) ) , 3)
dados<- dat a. f r ame( angul os=a, di st anci as=d, er r o=e)
anova( aov( er r o~di st anci as+angul os+di st anci as*angul os, dados) )
Anal ysi s of Var i ance Tabl e
Response: er r o
Df SumSq Mean Sq F val ue Pr ( >F)
di st anci as 3 0. 24792 0. 08264 0. 6296 0. 60974
angul os 2 1. 21083 0. 60542 4. 6127 0. 03266 *
di st anci as: angul os 6 0. 34583 0. 05764 0. 4392 0. 83909
Resi dual s 12 1. 57500 0. 13125
- - -
Si gni f . codes: 0 `***' 0. 001 `**' 0. 01 `*' 0. 05 `. ' 0. 1 ` ' 1
O quadro da ANOVA mostra que distncia e ngulo atuam independentemente. Podemos
verificar tambm que houve diferena significativa apenas nos ngulos se adotarmos um nvel de
significncia de 1%. O restante da variao encontrada nos valores do erro se deu apenas devido
ao acaso.
12.3.2. Fatorial usando o DBC
Experimentos fatoriais tambm podem ser conduzidos segundo um Delineamento
em Blocos Casualizados. Veja o exemplo:
Exemplo:
Um Engenheiro Agrimensor quer testar diferentes modelos de alvos, a fim de avaliar se o
desenho afeta os resultados. Ele deseja controlar o efeito da distncia e do ngulo de visada, assim
como no exemplo anterior. Ento ele seleciona 3 modelos de alvos diferentes (A, B e C), e coleta
os seguintes valores para o erro linear (em milmetros):
ALVO A Dist 1 Dist 2 Dist 3
Ang 1 0,2 0,7 0,8
Ang 2 0,4 0,8 0,9
Ang 3 0,5 1,2 1,2
ALVO B Dist 1 Dist 2 Dist 3
Ang 1 0,6 0,8 1,1
Ang 2 0,9 1,3 1,5
Ang 3 1,2 1,4 1,8
ALVO C Dist 1 Dist 2 Dist 3
Ang 1 0,7 1,1 1,5
Ang 2 0,9 1,5 1,7
Ang 3 1,2 1,7 1,5
Fazendo a ANOVA no R:
e<- c( 0. 2, 0. 7, 0. 8, 0. 4, 0. 8, 0. 9, 0. 5, 1. 2, 1. 2,
0. 6, 0. 8, 1. 1, 0. 9, 1. 3, 1. 5, 1. 2, 1. 4, 1. 8,
0. 7, 1. 1, 1. 5, 0. 9, 1. 5, 1. 7, 1. 2, 1. 7, 1. 5)
b<- gl ( 3, 9, l abel =c( past e( ALVO, LETTERS[ 1: 3] ) ) )
a<- r ep( gl ( 3, 3, l abel =c( past e( Ang, 1: 3) ) ) , 3)
d<- r ep( past e( Di st , 1: 3) , 9)
dados<- dat a. f r ame( bl oco=b, angul o=a, di st anci a=d, er r o=e)
anova( aov( er r o~di st anci a+angul o+bl oco+di st anci a*angul o, dados) )
Anal ysi s of Var i ance Tabl e
Response: er r o
Df SumSq Mean Sq F val ue Pr ( >F)
di st anci a 2 1. 72667 0. 86333 46. 0444 2. 305e- 07 ***
angul o 2 0. 98667 0. 49333 26. 3111 8. 735e- 06 ***
bl oco 2 1. 58000 0. 79000 42. 1333 4. 204e- 07 ***
di st anci a: angul o 4 0. 03333 0. 00833 0. 4444 0. 7748
Resi dual s 16 0. 30000 0. 01875
- - -
Si gni f . codes: 0 `***' 0. 001 `**' 0. 01 `*' 0. 05 `. ' 0. 1 ` ' 1
De acordo com a tabela da ANOVA podemos perceber que a distncia e o ngulo de visada
atuam independentemente, uma vez que a interao entre eles foi no significativa. Podemos
concluir tambm que os nveis dos fatores distncia e ngulo de visada influenciam no erro. Mas o
mais importante que de acordo com a ANOVA pode-se afirmar que existe diferena na
eficincia dos diferentes modelos de alvos, no que diz respeito ao erro linear, que era o principal
objetivo do Engenheiro Agrimensor.
12.4. Experimentos em Parcelas Subdivididas
O termo parcelas subdivididas, assim como o fatorial, refere-se a maneira como
os tratamentos so organizados. Neste tipo de experimento estuda-se dois tipos de fatores
de maneira simultnea (fatores primrios e secundrios: parcelas e subparcelas
respectivamente).
O R possibilita tambm a anlise de experimentos conduzidos segundo
experimentos dessa natureza. Veja o exemplo que segue:
12.4.1. Um exemplo segundo o DBC
Exemplo:
Suponha um experimento em parcelas subdivididas segundo o DBC como mostra a tabela
abaixo:
A1 A2
Bloco B1 B2 B3 B1 B2 B3
1 12 12 15 14 15 16 21 19 22 20 16 19
2 15 16 16 17 12 12 18 19 19 21 21 20
3 17 16 13 15 12 11 17 19 20 18 19 21
4 14 13 16 15 14 17 16 17 17 20 18 18
Veja como podemos resolver usando o R:
A<- gl ( 2, 24, l abel =past e( A, 1: 2, sep=) ) #cr i a o f at or das par cel as
B<- r ep( gl ( 3, 8, l abel =past e( B, 1: 3, sep=) ) , 2) #f at or das subpar cel as
bl <- r ep( gl ( 4, 2, l abel =past e( bl , 1: 4, sep=) ) , 6)
dados<- c( 12, 12, 15, 16, 17, 16, 14, 13,
15, 14, 16, 17, 13, 15, 16, 15,
15, 16, 12, 12, 12, 11, 14, 17,
21, 19, 18, 19, 17, 19, 16, 17,
22, 20, 19, 21, 20, 18, 17, 20,
16, 19, 21, 20, 19, 21, 18, 18) #vet or das obser vaes
t abel a<- dat a. f r ame( A=A, B=B, bl oco=bl , dados=dados)
sai da<- aov( dados~bl oco+A+B+A*B+Er r or ( bl oco/ A) , t abel a)
summar y( sai da)
Er r or : bl oco
Df SumSq Mean Sq
bl oco 3 5. 5000 1. 8333
Er r or : bl oco: A
Df SumSq Mean Sq F val ue Pr ( >F)
A 1 252. 08 252. 08 59. 314 0. 00455 **
Resi dual s 3 12. 75 4. 25
- - -
Si gni f . codes: 0 `***' 0. 001 `**' 0. 01 `*' 0. 05 `. ' 0. 1 ` ' 1
Er r or : Wi t hi n
Df SumSq Mean Sq F val ue Pr ( >F)
B 2 12. 042 6. 021 2. 0116 0. 1485
A: B 2 4. 542 2. 271 0. 7587 0. 4756
Resi dual s 36 107. 750 2. 993
Uma informao importante: se o delineamento fosse o DIC, ento o resduo(a) seria
adicionado do componente representado pelo bloco. Uma forma possvel de obter as mdias para
todos os nveis dos fatores e suas combinaes seria:
model . t abl es( sai da, t ype=" means" )
Uma vez obtidas as mdias, basta multiplicar cada valor pelo nmero de elementos que o
originaram.
12.5. Teste de Comparaes Mltiplas
12.5.1. Teste Tukey
H vrios testes de comparaes mltiplas disponveis na literatura, muitos deles
tambm disponveis no R, e os que no esto so um convite aos novos usurios a estarem
implementando com os recursos do R.
Vejamos duas formas de se usar o teste de Tukey, a primeira usando a funo
TukeyHSD( ) e a segunda fazendo os clculos necessrios com o R. Para ambos os casos
vamos usar os seguintes dados:
dados<- c( 25, 31, 22, 33, 26, 25, 26, 29, 20, 28, 28, 31, 23, 27, 25, 34, 21, 24, 29, 28)
t r at <- f act or ( r ep( past e( " t r " , 1: 4, sep=" " ) , 5) )
t abel a<- dat a. f r ame( t r at =t r at , dados=dados)
ANOVA<- aov( dados~t r at , t abel a)
r esul t 1<- TukeyHSD( ANOVA, t r at )
r esul t 1
Tukey mul t i pl e compar i sons of means
95%f ami l y- wi se conf i dence l evel
Tukey mul t i pl e compar i sons of means
95%f ami l y- wi se conf i dence l evel
Fi t : aov( f or mul a = dados ~ t r at , dat a = t abel a)
$t r at
di f f l wr upr p adj
t r 2- t r 1 4 - 0. 7874018 8. 787402 0. 1192178
t r 3- t r 1 3 - 1. 7874018 7. 787402 0. 3123298
t r 4- t r 1 8 3. 2125982 12. 787402 0. 0010547
t r 3- t r 2 - 1 - 5. 7874018 3. 787402 0. 9313122
t r 4- t r 2 4 - 0. 7874018 8. 787402 0. 1192178
t r 4- t r 3 5 0. 2125982 9. 787402 0. 0391175
Voc tambm pode visualizar os resultados graficamente atravs de:
pl ot ( r esul t 1)
Desta maneira, so oferecidos muitos valores que no so de interesse e as vezes at
dificulta a interpretao dos resultados.
Uma outra possibilidade utilizar a distribuio de Tukey (opes q e p
implementadas) para encontrar os valores de tabelados ou os valores de probabilidade
(consultar hel p( qt ukey) ).
13. Regresso
O principal objetivo da anlise de regresso verificar se existe uma relao, e
quantificar essa relao, entre duas variveis quantitativas, tentando formular uma relao
direta entre uma ou mais variveis independentes e seu(s) efeito(s) na varivel
dependente. O melhor mtodo para a escolha do modelo matemtico/estatstico que
representar essa relao pode ser obtido com a visualizao do diagrama de disperso. Os
modelos podem ser de formas variadas: linear, quadrtico, exponencial, logartmico, etc.
Veja a seguir como gerar alguns desses modelos usando o R.
13.1. Polinomial Simples
13.1.1. Linear
Quando os dados se agrupam seguindo a forma de uma reta, provavelmente existe
uma relao de linearidade entre as variveis envolvidas. Veja um exemplo tpico:
Exemplo:
Um engenheiro civil coleta dados em um laboratrio estudando a dilatao de um pilar de
concreto segundo a temperatura ambiente no local onde est o pilar. Veja os dados (fictcios):
T (C) 18 16 25 22 20 21 23 19 17
Dilatao Linear (mm) 5 3 10 8 6 7 9 6 5
Posso realizar um estudo de regresso nestes dados?. Qual modelo usar? Como montar a
equao que relaciona a temperatura com a dilatao neste estudo? A temperatura realmente
exerce influncia na dilatao do pilar? Eu posso quantificar essa relao?
Essas so as perguntas que podemos nos fazer ao depararmos com os dados que foram
apresentados acima. Suas respostas podem ser encontradas fazendo-se uma anlise de regresso.
Veja:
Primeiro vamos entrar com os dados da tabela no R, criando 2 objetos: um que conter os
valores de temperatura e outro para a dilatao.
t emp<- c( 18, 16, 25, 22, 20, 21, 23, 19, 17)
di l at <- c( 5, 3, 10, 8, 6, 7, 9, 6, 5)
O estudo de regresso pode ser feito, inicialmente com a definio do modelo. Para isso
vamos visualizar os pontos plotados em um diagrama de disperso:
pl ot ( t emp, di l at ) #a var i vel i ndependent e deve vi r pr i mei r o
O diagrama sugere uma tendncia linear dos dados. Ento vamos montar um modelo de
regresso linear simples (simples, pois existe apenas uma varivel independente temp
relacionada a variao da varivel dependente dilat).
Montando o modelo:
r egl i n<- l m( di l at ~t emp)
r egl i n
Cal l :
l m( f or mul a = di l at ~ t emp)
Coef f i ci ent s:
( I nt er cept ) t emp
- 8. 1710 0. 7323
Da sada acima podemos tirar duas informaes: o valor do intercepto (valor onde a reta de
regresso intercepta o eixo da dilatao) e o valor que representa um coeficiente de relao entre a
dilatao e a temperatura, ou seja, quanto a dilatao ir variar para cada variao unitria da
temperatura. Esses valores so comumente chamados de
0
e
1
respectivamente.
Logo podemos concluir que o modelo matemtico/estatstico desta regresso :
T Dil
X Y
. 7323 , 0 1710 , 8
.
1 0
+ =
+ =
onde a temperatura dada em C e a dilatao em mm.
Podemos obter os valores estimados (preditos) pelos valores tabelados de temp da funo
com o comando:
pr edi ct ( r egl i n)
1 2 3 4 5
5. 009677 3. 545161 10. 135484 7. 938710 6. 474194
6 7 8 9
7. 206452 8. 670968 5. 741935 4. 277419
O primeiro valor acima (5,009677) representa o valor obtido para a dilatao quando a
temperatura 18C (primeiro valor do objeto temp), e assim sucessivamente at o ltimo valor
de temp, gerando nove valores.
Agora vamos plotar novamente os dados e acrescentar a funo encontrada no diagrama:
pl ot ( t emp, di l at ) #pl ot ar o di agr ama de di sper so
abl i ne( r egl i n) #desenha a r et a de r egr esso aj ust ada
pr ed<- pr edi ct ( r egl i n) #usando os val or es est i mados
f or ( i i n 1: ( l engt h( t emp) ) )
{
l i nes( c( t emp[ i ] , t emp[ i ] ) , c( di l at [ i ] , pr ed[ i ] ) )
#pequenos segment os ent r e os val or es obser vados e os cal cul ados
}
Podemos tambm realizar uma anlise de varincia na regresso com:
anova( r egl i n)
Anal ysi s of Var i ance Tabl e
Response: di l at
Df SumSq Mean Sq F val ue Pr ( >F)
t emp 1 36. 938 36. 938 201. 40 2. 048e- 06 ***
Resi dual s 7 1. 284 0. 183
- - -
Si gni f . codes: 0 `***' 0. 001 `**' 0. 01 `*' 0. 05 `. ' 0. 1 ` ' 1
Com ela podemos verificar que o coeficiente
1
exerce influncia significativa na regresso
uma vez que o p-value encontrado foi da ordem de 10
-6
.
E tambm obter muitas informaes com:
summar y( r egl i n)
Cal l :
l m( f or mul a = di l at ~ t emp)
Resi dual s:
Mi n 1Q Medi an 3Q Max
- 0. 545161 - 0. 206452 - 0. 009677 0. 258065 0. 722581
Coef f i ci ent s:
Est i mat e St d. Er r or t val ue Pr ( >| t | )
( I nt er cept ) - 8. 1710 1. 0475 - 7. 801 0. 000107 ***
t emp 0. 7323 0. 0516 14. 191 2. 05e- 06 ***
- - -
Si gni f . codes: 0 `***' 0. 001 `**' 0. 01 `*' 0. 05 `. ' 0. 1 ` ' 1
Resi dual st andar d er r or : 0. 4283 on 7 degr ees of f r eedom
Mul t i pl e R- Squar ed: 0. 9664, Adj ust ed R- squar ed: 0. 9616
F- st at i st i c: 201. 4 on 1 and 7 DF, p- val ue: 2. 048e- 06
Com o quadro acima podemos fazer toda uma anlise que no detalharemos neste material.
13.1.2. De grau maior que 1
Qualquer modelo de regresso polinomial pode ser obtido com um comando
simples: o l m( ) que vem do ingls linear models.
Veja o exemplo abaixo:
f er t <- c( 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
pr od<- c( 42, 61, 81, 94, 98, 96, 83, 79, 59, 43)
pl ot ( f er t , pr od)
Observe a necessidade do argumento I ( ) para interaes como x^2.
r eg<- l m( pr od~f er t +I ( f er t ^2) ) #model o de r egr esso quadr t i ca
r eg
Cal l :
l m( f or mul a = pr od ~ f er t + I ( f er t ^2) )
Coef f i ci ent s:
( I nt er cept ) f er t I ( f er t ^2)
15. 51667 2. 95720 - 0. 02716
Para desenhar a curva ajustada...
cur ve( 15. 51667+2. 95720*x- 0. 02716*x*x, 0, 100, add=T, col =2)
Vrias outras anlises podem ser feitas como anteriormente na regresso linear. Veja uma
delas:
anova( r eg)
Anal ysi s of Var i ance Tabl e
Response: pr od
Df SumSq Mean Sq F val ue Pr ( >F)
f er t 1 7. 6 7. 6 0. 5878 0. 4683
I ( f er t ^2) 1 3894. 6 3894. 6 302. 2072 5. 126e- 07 ***
Resi dual s 7 90. 2 12. 9
- - -
Si gni f . codes: 0 ' ***' 0. 001 ' **' 0. 01 ' *' 0. 05 ' . ' 0. 1 ' ' 1
Os outros modelos de regresso polinomial podem ser obtidos de maneira anloga.
Por exemplo, na regresso cbica poderamos escrever:
l m( y~x+I ( x^2) +I ( x^3) )
E na de quarto grau:
l m( y~x+I ( x^2) +I ( x^3) +I ( x^4) )
E assim sucessivamente.
13.2. Polinomiais Mltiplos
Os modelos mltiplos so aqueles em que duas ou mais variveis independentes
influenciam na variao da varivel dependente. Eles podem ser de grau 1, 2, ou maior. O
exemplo a seguir aborda uma regresso polinomial mltipla de 3 grau. Veja:
Exemplo:
Vamos supor que queremos ajustar uma superfcie de tendncia - uma equao de regresso
polinomial de grau 3 que descreva o comportamento das coordenadas de pontos que representam o
relevo de um local. As coordenadas so dadas nos eixos cartesianos (x, y, z) onde z a cota do
ponto (dados abaixo).
Estamos supondo que z funo de x e y.
Um modelo polinomial de 3 grau tem a forma:
3
9
2
8
2
7
3
6
2
5 4
2
3 2 1 0
y xy y x x y xy x y x z + + + + + + + + + =
)
x<- 1: 15 #val or es de x
y<- c( 2, 5, 6, 7, 9, 10, 12, 11, 11, 13, 14, 12, 12, 15, 15) #val or es de y
z<- c( 1, 2, 2, 14, 17, 15, 12, 12, 11, 8, 8, 3, 3, 6, 16) #val or es de z
coor d<- dat a. f r ame( x, y, z) #j unt ando x, y, z
#agor a vamos mont ar o model o
model o<- z~x+y+I ( x^2) +I ( x*y) +I ( y^2) +I ( x^3) +I ( x^2*y) +I ( x*y^2) +I ( y^3)
#f azendo a r egr esso
r e<- l m( model o, coor d) #pr i mei r o o model o, depoi s os dados
r e #vej a o r esul t ado
Cal l :
l m( f or mul a = model o, dat a = coor d)
Coef f i ci ent s:
( I nt er cept ) x y I ( x^2) I ( x * y)
8. 2112 16. 0255 - 14. 3588 - 2. 0589 - 1. 0705
I ( y^2) I ( x^3) I ( x^2 * y) I ( x * y^2) I ( y^3)
2. 5672 0. 2580 - 0. 4776 0. 4961 - 0. 2444
Um dos grandes problemas entrar com todas as interaes quando o polinmio a
ser ajustado possui graus elevados. S para se ter uma idia, no ajuste de um polinmio de
grau 7, por exemplo, temos 36 interaes possveis, x, y, x
2
, xy, y
2,
x
3
, ... , y
7
. Cada um
desses termos deve ser explicitado na funo l m( ) , de modo que teramos que digit-los
um a um. Este problema pode ser resolvido com a funo desenvolvida abaixo. O nico
parmetro exigido por ela o grau do polinmio que se deseja criar. Veja:
f pol <- f unct i on( d)
{
nt <- ( ( ( d+1) *( d+2) ) / 2) - 1
t er mos<- r ep( " vazi o" , nt )
cont <- 1
f or ( j i n 1: d)
{
t <- j
f or ( i i n j : 0)
{
t er mos[ cont ] <- past e( " I ( x^" , i , " *y^" , ( t - i ) , " ) " , sep=" " )
cont <- cont +1
}
}
f <- as. f or mul a( past e( " z~" , past e( t er mos, col l apse=" +" ) ) )
r et ur n( f )
}
No caso do exemplo acima bastaramos digitar:
model o. da. f uncao<- f pol ( 3)
model o. da. f uncao
z ~ I ( x^1 * y^0) + I ( x^0 * y^1) + I ( x^2 * y^0) + I ( x^1 * y^1) +
I ( x^0 * y^2) + I ( x^3 * y^0) + I ( x^2 * y^1) + I ( x^1 * y^2) +
I ( x^0 * y^3)
E assim ela funciona para qualquer grau polinomial. Em casos de graus muito
elevados seu computador pode no ter memria suficiente para gerar as interaes. Veja:
f pol ( 100) #pol i nmi o de gr au 100 5151 i nt er aes! ! !
Er r or : pr ot ect ( ) : pr ot ect i on st ack over f l ow
13.2.1. Superfcie de Resposta
Continuando o exemplo acima, vamos ajustar uma superfcie de resposta com a
regresso ajustada.
x<- 1: 15 #val or es de x
y<- c( 2, 5, 6, 7, 9, 10, 12, 11, 11, 13, 14, 12, 12, 15, 15) #val or es de y
z<- c( 1, 2, 2, 14, 17, 15, 12, 12, 11, 8, 8, 3, 3, 6, 16) #val or es de z
coor d<- dat a. f r ame( x, y, z) #j unt ando x, y, z
#agor a vamos mont ar o model o
model o<- z~x+y+I ( x^2) +I ( x*y) +I ( y^2) +I ( x^3) +I ( x^2*y) +I ( x*y^2) +I ( y^3)
#f azendo a r egr esso
r e<- l m( model o, coor d) #pr i mei r o o model o, depoi s os dados
r e #vej a o r esul t ado
Cal l :
l m( f or mul a = model o, dat a = coor d)
Coef f i ci ent s:
( I nt er cept ) x y I ( x^2) I ( x * y)
8. 2112 16. 0255 - 14. 3588 - 2. 0589 - 1. 0705
I ( y^2) I ( x^3) I ( x^2 * y) I ( x * y^2) I ( y^3)
2. 5672 0. 2580 - 0. 4776 0. 4961 - 0. 2444
Os coeficientes da funo ajustada podem ser obtidos um a um com:
r e[ [ 1] ] [ [ 1] ] #par a o pr i mei r o coef i ci ent e
r e[ [ 1] ] [ [ 2] ] #par a o segundo
r e[ [ 1] ] [ [ 3] ] #par a o t er cei r o e assi msucessi vament e
Pode-se ento construir uma funo que represente de fato a funo ajustada:
f un<- f unct i on( x, y)
{r e[ [ 1] ] [ [ 1] ] + #i nt er cept o ( bet a 0)
r e[ [ 1] ] [ [ 2] ] *x+ #bet a 1 * x
r e[ [ 1] ] [ [ 3] ] *y+ #bet a 2 * y
r e[ [ 1] ] [ [ 4] ] *x^2+ #bet a 3 * x
2
r e[ [ 1] ] [ [ 5] ] *x*y+ #bet a 4 * x * y
r e[ [ 1] ] [ [ 6] ] *y^2+ #bet a 5 * y
2
r e[ [ 1] ] [ [ 7] ] *x^3+ #bet a 6 * x
3
r e[ [ 1] ] [ [ 8] ] *x^2*y+ #bet a 7 * x
2
* y
r e[ [ 1] ] [ [ 9] ] *x*y^2+ #bet a 8 * x * y
2
r e[ [ 1] ] [ [ 10] ] *y^3} #bet a 9 * y
3
Agora vamos gerar uma superfcie usando a funo ajustada do exemplo acima:
val x<- seq( mi n( x) , max( x) , 0. 5) #val or es de x a ent r ar na f uno
val y<- seq( mi n( y) , max( y) , 0. 5) #val or es de y a ent r ar na f uno
super f <- out er ( val x, val y, f un) #mat r i z de val or es i nt er pol ados por f un
O objeto superf contm os valores de coordenadas da superfcie ajustada que pode ser
exibida com o comando per sp( ) . Veja:
per sp( super f , #obj et o que cont mos val or es i nt er pol ados
t het a=310, #angul o hor i zont al de exi bi o da super f ci e
phi =30, #angul o ver t i cal
expand=0. 5, #par a expandi r o gr f i co
col =2, #usa a cor ver mel ha
shade=0. 5, #sombr eament o
t i ckt ype=si mpl e) #apenas o sent i do dos ei xos ( semescal a)
OBS.: Outros resultados grficos podem ser obtidos com as alteraes dos parmetros da
funo persp(). Voc pode ver alguns grficos modelos digitando demo(persp).
13.3. Modelos no lineares
Para o ajuste de regresses no-lineares com o R aconselhamos o uso da funo
nl s( ) do pacote nlme, por sua simplicidade e versatilidade. necessrio que se
carregue o pacote antes invocar a funo. Pode-se utilizar os comandos r equi r e( nl me)
ou l i br ar y( nl me) .
Em seguida basta usar a seguinte estrutura de comando:
nl s( model o, dados, val or es i ni ci ai s est i mados dos par met r os)
Voc pode obter informaes detalhadas deste comando digitando ?nl s.
Outros mtodos podem ser usados para ajustar o modelo de regresso desejado.
Voc pode conhecer alguns deles digitando hel p. sear ch( r egr essi on) no R Console.
Exemplo
Num projeto de construo de uma barragem de grande interesse equacionar a relao
entre a cota do nvel dgua e o volume armazenado quando esta cota atingida. Essa relao
obtida a partir de um diagrama cota-volume estimado atravs do levantamento topogrfico da
regio onde ser construda a barragem e suas respectivas curvas de nvel.
Suponha os dados a seguir, com a cota dada em metros e o volume em quilmetros cbicos:
cot a<- c( 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vol ume<- c( 7, 10, 14, 20, 31, 40, 58, 84, 113, 165)
dados<- dat a. f r ame( cot a, vol ume)
Veja como os dados se dispersam:
pl ot ( dados)
l i br ar y( nl me)
f uncao<- vol ume~a*exp( b*cot a)
exponenci al <- nl s( f uncao, #model o que se desej a aj ust ar ( $)
dados, #dat a. f r ame como conj unt o de dados
st ar t =c( a=1, b=1) ) #val or es i ni ci ai s dos par met r os( $$)
#( $) usando o mt odo dos m ni mos quadr ados.
#( $$) so val or es i ni ci ai s est i mados par a os par met r os
( coef i ci ent es) . Quando a equao conver ge esses val or es podem ser
quai squer di f er ent es de zer o.
summar y( exponenci al )
For mul a: vol ume ~ a * exp( b * cot a)
Par amet er s:
Est i mat e St d. Er r or t val ue Pr ( >| t | )
a 5. 116389 0. 227553 22. 48 1. 62e- 08 ***
b 0. 346720 0. 004879 71. 06 1. 71e- 12 ***
- - -
Si gni f . codes: 0 ' ***' 0. 001 ' **' 0. 01 ' *' 0. 05 ' . ' 0. 1 ' ' 1
Resi dual st andar d er r or : 1. 559 on 8 degr ees of f r eedom
Cor r el at i on of Par amet er Est i mat es:
a
b - 0. 9885
#desenhando a cur va aj ust ada
cur ve( 5. 1163887*exp( 0. 34672*x) , #equao aj ust ada
1, #l i mi t e i nf er i or ei xo das absci ssas
10, #l i mi t e super i or
add=T, #acr escent ar no gr f i co ant er i or
col =2) #cor da cur va ( 2 = ver mel ha)
Pode-se obter a analise detalhada da regresso com:
14. Nonlinear Mixed-Effects Models
Para a anlise de modelos que contenham efeitos aleatrios o R apresenta uma
biblioteca muito verstil e extremamente poderosa, chamada nlme linear e nonlinear
mixed effect modesl (j usada anteriormente para o ajuste de regresses no lineares) que
permite a avaliao de modelos mistos lineares e no lineares.
Para acess-la basta entrar com o seguinte comando:
l i br ar y( nl me)
Exemplo:
Vamos utilizar um exemplo contido no prprio R.
dat a( Or t hodont )
Or t hodont #par a vi sual i zar os dados
Uma forma de escrever o modelo seria:
f m1<- l me( di st ance~age, Or t hodont ) #quando o ef ei t o al eat r i o age
f m1
Li near mi xed- ef f ect s model f i t by REML
Dat a: Or t hodont
Log- r est r i ct ed- l i kel i hood: - 221. 3183
Fi xed: di st ance ~ age
( I nt er cept ) age
16. 7611111 0. 6601852
Randomef f ect s:
For mul a: ~age | Subj ect
St r uct ur e: Gener al posi t i ve- def i ni t e
St dDev Cor r
( I nt er cept ) 2. 3269555 ( I nt r )
age 0. 2264214 - 0. 609
Resi dual 1. 3100414
Number of Obser vat i ons: 108
Number of Gr oups: 27
Se voc quiser ver s os efeitos fixos:
anova( f m1)
Para os componetes de varincia:
Var Cor r ( f m1)
Para obter os efeitos de aleatrios ou fixos:
r anef ( f m1) #par a ef ei t os al eat r i os
f i xef ( f m1) #par a ef ei t os f i xos
Para ter informaes adicionais como o AIC (Akaike's An Information Criterion):
AI C( f m1)
Para dados dos quais no se especificou a frmula, pode-se usar:
expm<- l me( r es~t r at ament os, dat a=dados, r andom=~1| bl ocos)
Este seria um modelo em blocos casualizados com efeitos de tratamentos fixos e
blocos aleatrios. E sempre que necessrio utilize dos comandos de ajuda do R.
Referncias e Bibliografias consultadas
CRAWLEY, M.J. Statistical Computing to Data Analysis using S-plus. New York:
Wiley, 761p. 2002.
FREUND, J. E. Estatstica Aplicada: Economia, Administrao e Contabilidade.
Traduo de Alfredo Alves de Farias. 9. ed. Porto Alegre: Editora Bookman,. 404 p. 2000.
R DEVELOPMENT CORE TEAM. R: A language and environment for statistical
computing. R Foundation for Statistical Computing, Vienna, Austria. ISBN 3-900051-07-
0, URL http://www.R-project.org. 2005.
VENABLES, W. N., SMITH, D. M. and the R DEVELOPMENT CORE TEAM. An
Introduction to R. Notes on R: Programming Environment for Data Analysis and
Graphics. Version 2.2.0. ustria: 2005.