Sei sulla pagina 1di 90

Programa R: Aplicaes no Melhoramento de Plantas

Prof. Luiz Alexandre Peternelli 2011


Departamento de Estatstica UFV Pesquisador do PMGCA UFV

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Objetivo do mini curso


O objetivo deste curso no to somente ensinar um software ou rever conceitos de estatstica e seus mtodos, mas proporcionar um ponto de partida para pessoas que desejam comear a utilizar o R e suas ferramentas estatsticas

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Contedo
Instalao entrada de dados; funes bsicas; operaes com matrizes anlises descritivas testes de hipteses delineamentos experimentais esquemas experimentais anlise de regresso dicas de organizao dos comandos e de elaborao dos relatrios de anlise
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 3

Material de consulta
Internet Inmeros livros (veja www.amazon.com) Estatstica bsica, grficos, anlises especficas etc Conhecendo o R: uma viso estatstica Peternelli e Pupin, 2011. disponvel na Editora UFV (www.editoraufv.com.br)

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Editores para o R
No caso do Windows
Descrio detalhada em: www.sciviews.org/_rgui/projects/Editors.html Word: uma opo. CUIDADO! Script do R e notepad. Bons e simples! Tinn-R (www.sciviews.org/Tinn-R/)
Colorido e interativo. Problema: verses do Windows.

RWindEdt (pacote do R) - ???

(RStudio)
5

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Instalao
Programa disponvel em: www.r-project.org Etapas: Baixar programa Atualizar pacotes Baixar pacotes de interesse e usar suas funes, ou cri-las, conforme interesse especfico.
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 6

Informaes Bsicas do Programa R


Entrando com dados
comandosR - entrando com dados

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Comandos R
#Entrando com dados #scan(), edit(), read.table() e data(). x<-3 x<-c(1,2,3) y<-edit(x) x<-scan() x<-read.table(argumentos) #veremos oportunamente #Uso da funo scan() teste<-scan() #usado para entrada de dados #Uso da funo edit() teste<-c(10,20,30,40,50) teste teste2<-edit(teste) teste2

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Informaes Bsicas do Programa R


Operaes com matrizes
comandosR operaes com matrizes

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Comandos R
#Operaes com vetores e matrizes coluna1<-c(2,1,0) coluna2<-c(1,3,1) coluna3<-c(1,1,2) A<-cbind(coluna1,coluna2,coluna3) #obtendo a transposta de A t(A) #clculos interessantes t(A)%*%A #AA #Produto de vetores coluna1%*%coluna1 #cuidado! coluna1*coluna1 #determinante da matriz A det(A) #dando nomes s linhas e colunas dimnames(A)<list(c("linha1","linha2","linha3" ),c("col1","col2","col3")) row.names(A)<-c("l1","l2","l3") #criando matriz de outra forma B<-matrix(1:12,nrow=3,ncol=4) B<matrix(1:12,nrow=3,ncol=4,byrow=F ) B<matrix(1:12,nrow=3,ncol=4,byrow=T )

#selecionando partes de uma matriz #Inversa de uma matriz no singular B[1,3]; B[c(1,2),3];B[c(1,3),c(2,4)] quadrada: solve(A) #inversa da matriz A solve(A)%*%A #verificao #Para outras funes associadas a matrizes, veja round(solve(A)%*%A,5) ??matrix solve(t(A)%*%A) Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Informaes Bsicas do Programa R


Outras funes bsicas
comandosR funes bsicas (tabelas a seguir)

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

11

Algumas funes
Ao Fazer com que o R ignore o que ser digitado* Sair do programa Salva o trabalho realizado # q() save.image() Comando

Lista todos os objetos da rea de trabalho atual ls() Remove o objeto x Remove os objetos x e y Dado ausente Verdadeiro se existir dados ausentes Mostra todos os pacotes instalados** Carregar (por exemplo) o pacote nlme rm(x) rm(x,y) NA is.na library() library(nlme)
12

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Mais funes
Ao de ajuda Obter ajuda sobre o comandoX Iniciar ajuda no browser padro instalado Obter ajuda sobre (p.ex.) o pacote mva Procurar por multivariate em todos os pacotes instalados Comando que procura objetos (p.ex.) pelo nome modelo Mostrar exemplos do comandoX Listar as funes e operaes contidas no pacote base do R Comando help(comandoX) help.start() help(package=mva) help.search(multivariate) apropos(modelo) example(comandoX) ls(package:base)
13

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Mais funes
Funo log(x) exp(x) log(x,n) log10(x) sqrt(x) choose(n,x) cos(x), sin(x), tan(x)
acos(x), asin(x), atan(x)

Significado Log de base e de x Antilog de x (e^x) Log de base n de x Log de base 10 de x Raiz quadrada de x n!/(x!(n-x)!) Funes trigonomtricas de x em radianos Funes trig. inversas de x em radianos Valor absoluto de x
14

abs(x)

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Anlises Descritivas
Medidas de posio (OBS)
Mdia (mean()) Mediana: (median())
n mpar Xmd = X(n + 1)/2 do rol n par Xmd = (Xn/2 + Xn/2 +1) do rol

x
x=
i =1

Moda: (table())
Xmo : o valor mais frequente num conjunto de dados Mximo (max())

Mnimo (min())
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 15

Cont...
Quantis

(quartis, decis, percentis) (quantile())

Q1

Q3

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

16

Anlises Descritivas
Medidas de disperso
Amplitude total AT = max(X) min(X) n Varincia (var()) ( xi x ) 2 SQDx s 2 = i =1 = n 1 n 1 Desvio padro
s2

Erro padro da mdia Coeficiente de variao

s n
s 100 x
Usando o R 1 Usando o R 2
17

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Comandos R
#medidas descritivas - comandos simples x<-sample(1:10,10,r=T) #entrando com um conjunto de dados qualquer. Nossa amostra. n<-length(x) #obtendo o tamanho da amostra mean(x) #mdia median(x) #mediana sd(x)/sqrt(n) #erro padro da mdia table(x) #dica para obter a moda (ou modas) max(x) #mximo min(x) #mnimo sd(x)/mean(x)*100 #coeficiente de variao quantile(x,c(.25,.5,.75)) #trs quantis diferentes #OBS: ver o que sai da funo summary(x) max(x)-min(x) #amplitude total var(x) #varincia sqrt(var(x)) #ou sd(x). Desvio padro

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Comandos R
#medidas descritivas - criando funo meu.estat.descr<-function(conj.de.dados,quantis=c(.25,.5,.75)) { x<-conj.de.dados n<-length(x) mx<-mean(x) medx<-median(x) maxx<-max(x) minx<-min(x) #qx<-quantile(x,c(.25,.5,.75)) qx<-quantile(x,quantis) vx<-var(x) epmx<-sd(x)/sqrt(n) return(list(media=mx,mediana=medx,maximo=maxx,minimo=minx ,quantis=qx,var.de.x=vx,erro.padrao=epmx)) } #testando teste<-sample(1:10,10,r=T) meu.estat.descr(teste) meu.estat.descr(teste,c(.05,.95)) j<-meu.estat.descr(teste,c(.05,.95)) j$media Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Anlises Descritivas
Anlises grficas
Importncia Grficos mais comuns:
Histograma Boxplot Diagrama de disperso

Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 20

Comandos R
#comandos para graficos x<-1:20 y<-x**3 plot(x,y) #plota os pares (x,y). #mudando o padro de pontos plot(x,y) points(rev(x),y,pch=3) #adiciona cruzes points(x,8000-y,pch="$") #smbolo cifro plot(x,y) plot(x,y,pch="@") plot(x,y,pch=1:3) plot(0:20,0:20,pch=0:20) #mudando as linhas plot(x,y) lines(x,y,lwd=4) grossa lines(rev(x),y,lty=2) tracejada

plot(x,y,type="l") plot(x,y,type="b") plot(x,y,type="o") plot(x,y,type="s") plot(x,y,type="c") plot(x,y,type="h") par(mfrow=c(3,2)) #adicionando mais dados aos grficos plot(x,y) points(rev(x),y) #adicionando pontos lines(x,8000-y) #adicionando linhas

#linha #linha

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Comandos R
#definindo os intervalos dos eixos plot(c(0,20),c(8000,8000),type='n') lines(x,y) #lembre-se: x<-1:20; y<-x**3 lines(x,-y) #adicionando segmentos de reta plot(c(0,20),c(0,30),type='n')#grfi co em branco segments(5,3,15,20) #um segmento de reta lines(c(12,15,7,20), c(3,10,8,15), #duas pequenas linhas col="red", #vermelhas lty=3) #pontilhadas abline(30,-2,lty=2,col=4)#linha tracejada azul #grficos mltiplos x<-1:20 y<-x**3 par(mfrow=c(2,2)) #arranjamento 2 por 2 plot(x,y) plot(rev(x),y) plot(x,2*y) plot(x,log(y)) #adicionando texto plot(x,y,xlab="Eixo X aqui",ylab="Eixo Y aqui") title("Ttulo aqui \n (e repare a acentuao!!!)") text(6,4000,"Texto em qualquer lugar")

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Comandos R
#personalizando o grfico x<-1:10 #criando x y<-c(2,5,9,6,7,8,4,1,3,10) #criando y x;y plot(x,y) #plota x e y plot(x, y, #plota x e y xlab="Eixo x",#nomeia o eixo x ylab="Eixo y",#nomeia o eixo y main="Personalizando um grfico",#ttulo xlim=c(0,10), #limites eixo x ylim=c(0,10), #limites eixo y col="red", #cor dos pontos pch=22, #formato dos pontos bg="blue", #cor de preenchimento tcl=0.4, #tamanho de traos dos eixos las=1, #orientao do texto em y cex=1.5, #tamanho do ponto bty="l") #altera as bordas #histogramas x<c(2,2,2,2,2,3,3,3,4,4,5,5,6 ) #vetor qualquer hist(x) table(x) hist(x, #histograma de x right=T, #intervalos fechados direita include.lowest=F, #no soma extremos do vetor breaks=c(1,2,3,4,5,6)) #int. das classes

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Comandos R
x<-rchisq(1000,10); hist(x) hist(x, #histograma de x main="Histograma\nQui-quadrado",#ttulo xlab="Valores", #texto do eixo das abscissas ylab="Prob", #texto do eixo das ordenadas br=c(c(0,5),c(5,15),5*3:7), #int das classes xlim=c(0,30), #limites do eixo de x ylim=c(0,0.1), #limites do eixo y col="lightblue", #cor das colunas border="white", #cor das bordas das colunas prob=T, #mostrar probabilidades. right=T, #int fechados direita adj=0, #alinhamento dos textos col.axis="red") #cor do texto nos eixos dados<-c(25,27,18,16,21,22,21,20,18,23,27,21,19,20,21,16) hist(dados, #histograma de dados nc=6, #nmero de classes igual a 6 right=F, #int fechado esquerda main="Histograma", #ttulo do histograma xlab="tempo (em minutos)",#texto do eixo x ylab="frequencia", #texto do eixo y col=2) #usa a cor cinza nas barras Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Comandos R
#grfico de barras barplot(table(c( "a","a","a","a","a","b","b","b","c","c","v","v"))) dados<-c("a"=4,"b"=7) barplot(dados) barplot(table(c( "a","a","a","a","a","b","b","b","c","c","v","v")), hor=T)#disposio horizontal das categorias #boxplot x<-rnorm(100,10) y<-rchisq(100,10) boxplot(x,y) #grfico de setores: veja ?pie demo(graphics)

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Testes de Hipteses
Entendendo os princpios bsicos usando simulao Ideia geral

Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 26

Ideia geral
regra decisria que nos permite rejeitar ou no rejeitar uma hiptese estatstica com base nos resultados de uma amostra Parmetro, estimador, estimativa Hiptese estatstica:
uma suposio quanto ao valor de um parmetro populacional, ou uma afirmao quanto natureza da populao

H0 e Ha
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 27

Ideia geral cont...


Erros nas concluses obtidas Por causa das flutuaes amostrais, ao testar certa hiptese e tomar uma deciso, pode-se tomar a deciso errada. Dois tipos de erro: Erro Tipo I: Rejeitar a hiptese nula quando na realidade ela verdadeira. Erro Tipo II: No rejeitar a hiptese nula quando na realidade ela falsa.
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 28

Ideia geral cont...


P(erro tipo I) = P(erro tipo II) = Em geral podemos controlar apenas o erro tipo I, definindo o valor (nvel de significncia do teste)

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

29

Passos usuais para a Construo de um Teste de Hipteses


Passo 1. Definir uma hiptese H0 a ser testada e uma hiptese alternativa HA; Passo 2. Usar a teoria estatstica e as informaes disponveis para decidir qual estatstica (estimador) ser usada para testar a hiptese H0. Definir a distribuio amostral dessa estatstica.
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 30

Passos para a Construo de um Teste de Hipteses


Passo 3. Fixar a probabilidade de cometer o erro tipo I e usar este valor para construir a regio crtica (regra de deciso); Passo 4. Usar as observaes da amostra para calcular o valor da estatstica de teste; Passo 5. Se o valor da estatstica calculado com os dados da amostra no pertencer regio crtica, no rejeite H0 ; caso contrrio, rejeite H0.
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 31

Esquemas baseados na Ha
Ha : 0
R.C. R.C.

/2
Valor crtico Valor hipottico

/2
Valor crtico

Ha : > 0
Valor hipottico

R.C.

Valor crtico

R.C.

Ha : < 0

Curso R - Prof. Luiz A. Valor Peternelli - CBMP, 2011 Valor 32

crtico

hipottico

Usando o p-valor
O procedimento para o teste seria:
Formular H0 e Ha (e definir , se for de interesse); Especificar a estatstica do teste; Determinar o valor da estatstica do teste e o p-value correspondente baseado na amostra; e Comparar p-value com
Se p-value rejeio de H0; Se p-value > no-rejeio de H0. Obs.: Ou permita que o julgamento seja particularizado.

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

33

Teste t
Hipteses H0: = 0 vs HA: > 0 HA: < 0 HA: 0 n 30

Estatstica de Teste:

tcalc

X = s n

~ t (n 1 g.l.)

Regra decisria: Se |tcalc| > ttab rejeitamos H0


Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 34

Exemplo: Foi afirmado que o crescimento de certa


planta, num certo perodo, de 140 cm (ou mais). Um pesquisador deseja testar a credibilidade da declarao. Para isso mediu a capacidade de uma amostra aleatria de 20 dessas plantas, durante aquele perodo declarado. Os resultados em cm, so os seguintes: (use = 5%)

137,4 140,0 138,8 139,1 144,4 139,2 141,8 137,3 133,5 138,2 141,1 139,7 136,7 136,3 135,6 138,0 140,9 140,6 136,7 134,1
ASSIM:

H0: = 140 Ha: < 140

n = 20

= 0,05
s2= 7,0706 s = 2,66
35

X = 138,47

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Estatstica do teste:

tcalc

X 138,47 140 = = = 2,57 s 2,66 n 20


R.C.

Esquema
ttab = -1,729

Valor crtico Valor hipottico

= 140 t = 0

Concluso: Rejeita-se H0, ou seja, h evidncias de que a declarao falsa, ao nvel de significncia de 5%.
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Usando o R 36

Comandos R
?t.test #t.test(x, y = NULL, # alternative = c("two.sided", "less", "greater"), # mu = 0, paired = FALSE, var.equal = FALSE, # conf.level = 0.95, ...) x<-scan(dec=",") 137,4 140,0 138,8 139,1 144,4 139,2 141,8 137,3 133,5 138,2 141,1 139,7 136,7 136,3 135,6 138,0 140,9 140,6 136,7 134,1 t.test(x,alternative="less",mu=140) qt(.05,19) ?pt pt(2.5734,19) pt(-2.5734,19) 1-pt(2.5734,19) qt(.05,19) saida.t<-t.test(x,alternative="less",mu=140) mode(saida.t) names(saida.t)

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Outros testes
Depende dos dados e/ou interesse do pesquisador
Teste F Teste de Qui-quadrado Teste de Kolmogorov-Smirnov Teste de Shapiro-Wilks

Veja ??test
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Usando o R
38

Comandos R
#Kolmogorov-Smirnov pesos<-scan() 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 hist(pesos) ks.test(pesos, #amostra a ser testada "pchisq", #p e depois nome da distribuio 49) #graus de liberdade da amostra curve(dchisq(x,49),30,100,add=T) hist(pesos,prob=T) curve(dchisq(x,49),30,100,add=T) mean(pesos) sd(pesos) ks.test(pesos,"pnorm",65,12) curve(dnorm(x,65,12),30,100,add=T,col="blue") ######################## #Shapiro-Wilks shapiro.test(pesos) Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

O MODELO ESTATSTICO
Y = f( X1, X2, ..., Xp) = f(X, e)
resto Varivel de interesse Variveis que explicam variao em Y Variveis explicativas efetivamente usadas

Utilizando a notao matricial

Y = X +
Pode-se usar representao algbrica
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 40

Exemplo
Usando representao algbrica

y ij = m + t i + eij
Ver esse exemplo para i = 1 a 3 e j = 1 a 2

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

41

Desenvolvimento e restries do modelo


Pressuposies bsicas
Aditividade dos efeitos Normalidade dos erros Independncia dos erros Homogeneidade de varincias dos tratamentos

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

42

DELINEAMENTO INTEIRAMENTE CASUALIZADO

DIC

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

43

Modelo
y i j = m + t i + ei j
i = 1, 2,, I j = 1, 2,, J

o valor observado para a varivel em estudo referente ao i-simo tratamento na j-sima repetio a constante inerente ao modelo o efeito do tratamento i no valor observado o erro associado observao y i j
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 44

Construo de estimadores
Montar quadro da ANOVA FV g.l. SQ Tratamento I1 SQTrat Resduo IJ I SQRes Total IJ 1 SQTotal
yi j ij 2 SQTotal = y i j IJ ij
2

QM

yi j 1 2 ij SQTrat = Ti J i IJ

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

45

SQTrat QMTrat = I 1
SQ Re s QMRes = I ( J 1)

FV Fixo Trat Res Total


t2 =
2 + J t

EQM Aleat
2 + J t2

F = QMTrat/QMres
ti
I 2

t =

i =1

I 1

QMTrat QM Re s J

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

DIC Modelo fixo


Hipteses testadas H 0 : m 1 = m 2 = ... = m I = m

H a : no H 0
Regra decisria
se Fcalculado Ftabelado rejeita-se H0 Ou avalia o p-valor
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 47

Exemplo DIC 1
GOMES (1984): experimento de competio de 4 cultivares de cana-deacar (A, B, C e D), utilizando o DIC com 6 repeties
Cultivares Repetio 1 2 3 4 5 6 Totais A 54 40 51 36 50 48 279 B 60 55 66 61 54 61 357 C 59 47 44 49 62 60 321 D 45 33 34 48 42 44 246

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Usando o R

Comandos R
Arquivo: comandosR/comandosR DIC exemplo1.r A<-scan() 54 40 51 36 50 48 B<-scan() 60 55 66 61 54 61 C<-scan() 59 47 44 49 62 60 D<-scan() 45 33 34 48 42 44 totais<-c(sum(A),sum(B),sum(C),sum(D)) dados<-data.frame(repet=rep(1:6,4) ,cult=sort(rep(c("A","B","C","D"),6)) ,y=c(A,B,C,D))

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

yi j (54 + 40 + + 44 )2 = ij = 54 2 + 40 2 + + 44 2 SQTotal = y i2j IJ 4x6 ij

1203 2 = 62301 = 62301 60300,38 = 2000,62 24

yi j 2 1 2 ij = 1 2792 + + 2462 1203 SQTrat = Ti J i IJ 6 24

= 61474,5 60300,38 = 1174,12

SQ Re s = SQTotal SQTrat = 2000, 62 1174,12 = 826,50


Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Comandos R
> attach(dados) > SQy<-sum(y^2) > Sy<-sum(y) > SQTTrat<-sum(totais^2)/6 > #obtendo as somas de quadrados > SQTotal<-SQy-Sy^2/(4*6) > SQTotal [1] 2000.625 > SQTrat<-SQTTrat-Sy^2/(4*6) > SQTrat [1] 1174.125 > SQRes<-SQTotal-SQTrat > SQRes [1] 826.5 > detach(dados)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

QMTrat =

SQTrat 1174,12 = = 391,37 GLTrat 3

SQ Re s 826,50 QM Re s = = = 41,32 GL Re s 20

Fcalc =

QMTrat 391,37 = = 9,47 QM Re s 41,32


FV GL SQ 3 20 23 QM F Trat Res Total 1174,12 391,37 9,47 * 826,50 41,32 2000,62

Ftab = F5% (3 , 20) = 3,10

C.V . (%) =

QM Re s 41,32 100 = 100 = 12,82 % m 50,125


Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Comandos R
> QMTrat<-SQTrat/(4-1) > QMTrat [1] 391.375 > QMRes<-SQRes/(4*(6-1)) > QMRes [1] 41.325 > Fcalc<-QMTrat/QMRes > Fcalc [1] 9.470659 > Ftab<-qf(0.95,3,20) > Ftab [1] 3.098391 > CV<-sqrt(QMRes)/mean(dados$y)*100 > CV [1] 12.82484 > #Fazendo o quadro da ANOVA diretamente: > anova(aov(y~cult,data=dados)) > #obtendo o pvalor > 1-pf(Fcalc,3,20) [1] 0.0004232293
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Exemplo DIC 2
Um pesquisador avaliou a altura de colmos (mdia do sulco, em dm) de quatro famlias de cana de acar organizados segundo o DIC, obtendo os seguintes dados numa escala apropriada
A B C D 25 31 22 22 26 25 26 28 20 28 28 27 23 27 25 23 21 24 29 20 Total 115 135 130 120 Mdia 23 27 26 24

Realizar a ANOVA para testar a hiptese de igualdade dos efeitos de tratamentos


Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Usando o R
54

Comandos R
#anova DIC - referente a arquivo na pasta de dados trat<-scan() #copiar e colar os valores da coluna trat diretamente no console do R y<-scan() #copiar e colar os valores da coluna y diretamente no console do R dados<-cbind(trat,y) #para evitar erros futuros rm(y); rm(trat) #ver outras formas de entrar com dados d1<-read.table("curso R slides/dados curso R/DIC 1.txt",h=T) d2<-read.csv("curso R slides/dados curso R/DIC 1.csv") #cuidado! aov(y~trat,dados) saida<-aov(y~factor(trat),dados) is.data.frame(dados) dados<-data.frame(dados) #ou dados<-as.data.frame(dados) saida<-aov(y~factor(trat),dados) saida summary (saida) anova(saida) #No significativo ... para por aqui. Voltar para os slides #model.tables(saida,"means")

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

PROCEDIMENTOS PARA COMPARAO DE MDIAS


Ou testes para comparao de mdias, ou testes de comparaes mltiplas
DMS, Bonferroni, Scheff, Tukey, Duncan, Dunnett

Complemento ao teste F detectar diferenas entre tratamentos Situaes ou uso especfico para cada teste
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 56

Contrastes
Funes do tipo Onde
Y = f ( x) = a1 x1 + a2 x2 + + an xn

a
i =1
4

=0

Exemplo:Y = 2x1 x2 x3

a
i =1

= 0 , a1 = 2 , a 2 = 1 , a3 = 1

Se X mdia contraste de mdia


Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 57

para um contraste de mdias em sua forma geral


Y = c1m1 + c2 m2 + c3 m3 + + cn mn

c
i =1

=0

Podemos obter a estimativa


Y = c1 m1 + c 2 m2 + + c n mn
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 58

Para aplicar testes precisamos conhecer o estimador da varincia do estimador do contraste


Y = c1 m1 + c 2 m2 + + c n mn
2 2 2 V (Y ) = c1 V (m1 ) + c 2 V (m2 ) + + c n V (mn )

Se mdias independentes. Se varincias iguais, e mesmo no repeties:


s2 (Y ) = (c 2 + c 2 + c 2 + + c 2 ) V = 1 2 3 n r

c
i =1

s2 r
59

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Teste da Diferena Mnima Significativa (DMS)


A DMS ao nvel de significncia para comparar mi com mj : DMS = t / 2,v

1 1 QM Re s ( + ) ni n j

Concluir que mi mj se mi m j > DMS


Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 60

Generalizando
ao nvel de probabilidade, concluir que

c m
i

0 se

c m
i

> t / 2,v

ci2 QM Re s i =1 ni
I

Nmero de g.l. resduo Nmero de trat Nmero de repeties do trat i

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

61

Teste de Bonferroni
bom quando se quer fazer um pequeno nmero de comparaes mantm o nvel de significncia conjunto igual ou menor que , quando aplicado a um grupo de contrastes de interesse Se p contrastes esto sendo comparados:
para cada contraste usar = /p.

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

62

se quisermos fazer p comparaes, concluiremos que a q-sima comparao se

iq

mi 0
I

iq

mi > t ( / 2 p ),v QM Re s
i =1

2 iq

ni

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

63

Teste de Scheff
Pode testar todo e qualquer contraste de mdias, mesmo quando sugerido pelos dados muito utilizado para testar contrastes que envolvem grupos de mdias No exige a ortogonalidade e nem que os contrastes sejam estabelecidos a priori exige apenas que, na ANOVA, o teste F para tratamentos seja significativo
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 64

O teste
Estatstica do teste

S = ( I 1) F V (Y )
Regra decisria:

Se Y S contraste significativo ao nvel

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

65

Teste de Tukey
Testa todo e qualquer contraste entre 2 mdias No permite comparar grupos de mdias Estatstica do teste:

1 =q V (Y ) 2
Tabela de Tukey

Se Y contraste significativo ao nvel


Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 66

Teste de Duncan
fornece resultados mais discriminados que os do teste de Tukey de aplicao mais trabalhosa exige que as mdias sejam colocadas em ordem decrescente Teste exato quando todos os tratamentos possurem o mesmo nmero de repeties
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 67

O teste
Estatstica do teste

Di = Z i

1 V (Y ) 2

Tabela de Duncan

Se Y < Di contraste no significativo Se Y Di mdias diferem repetir procedimento para abrangncia i - 1


Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 68

Teste de Dunnett
Comparar um tratamento padro com os demais tratamentos Estatstica do teste:

d ' = t d V (Y )
Tabela de Dunnett f(g.l. trat.; g.l. res.)

Se Y d ' contraste significativo


Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 69

Exemplos
Exemplos diversos usando
Funo aov() e anova() Pacote agricolae

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Usando o R
70

Comandos R
#Alterando os dados agora dados2<-edit(dados) #acrescentando 6 a cada valor do trat 4 saida2<-aov(y~factor(trat),dados2) summary (saida2) anova(saida2) res<-resid(saida2) sum(res) sum(res*res) #PARA REALIZAR AS ANLISES A MO #Os totais de tratamentos podem ser obtidos por tapply(dados2$y,dados2$trat,sum) #ou rowsum(dados2$y,dados2$trat) #ou rowsum(dados2,dados2$trat) #As mdias de tratamentos podem ser obtidas por tapply(dados2$y,dados2$trat,mean) #ou dividindo os totais pelo nmero de repeties rowsum(dados2$y,dados2$trat)/5 #comparando as mdias TukeyHSD(saida2,"factor(trat)",ordered=T) plot(TukeyHSD(saida2,"factor(trat)",order ed=T)) library(agricolae) args(HSD.test) HSD.test(dados2$y,dados2$trat,16,8.25) args(duncan.test) duncan.test(dados2$y,dados2$trat,16,8.25) args(bar.err) comparacao<HSD.test(dados2$y,dados2$trat,16,8.25) bar.err(comparacao) bar.group(comparacao)

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

EXPERIMENTOS EM BLOCOS CASUALIZADOS

DBC

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

72

modelo estatstico Yi j = m + ti + b j + e ij
A variao total dividida em: Tratamentos + Blocos + Resduo Obtem-se:
G.l. de cada F.V. Somas de Quadrados Quadrados mdios Valor F para a F.V. tratamentos
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 73

DBC Modelo fixo


Hipteses testadas H 0 : m 1 = m 2 = ... = m I = m

H a : no H 0
Regra decisria
se Fcalculado Ftabelado rejeita-se H0 Ou avalia o p-valor
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Usando o R 74 1;2

Comandos R
#SE USAR O R DE DENTRO DA PASTA DE TRABALHO DO "PROJETO" dir() dados<-read.table("curso R slides/dados curso R/DBC 1.txt",h=T) dados saida<-aov(y~trat+rep,data=dados) anova(saida) saida<-aov(y~factor(trat)+factor(rep),data=dados) anova(saida) library(agricolae) args(duncan.test) #function (y, trt, DFerror, MSerror, alpha = 0.05, group = TRUE, # main = NULL) duncan.test(dados$y,dados$trat,9,0.00889) HSD.test(dados$y,dados$trat,saida$df.residual,anova(saida)[3,3]) #fazendo automaticamente glres<-saida$df.residual qmres<-deviance(saida)/glres duncan.test(dados$y,dados$trat,glres,qmres) Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Esquemas Experimentais
Experimentos Fatoriais

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

76

Conceituao
Dois ou mais fatores so estudados simultaneamente Cada Fator apresenta dois ou mais nveis um tipo de esquema e no um delineamento
Ex.: podemos ter experimento fatorial no DIC ou no DBC

Os tratamentos so obtidos pelas combinaes dos nveis dos fatores


Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 77

Aplicaes
Sejam dois fatores
fator A com I nveis e o fator B com J nveis, com k repeties

instalado segundo o DIC

Yijk = m + i + j + ( )ij + eijk


Instalado segundo o DBC Y = m + i + j + ( )ij + + e ijk k ijk
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 78

Quadros da ANOVA
Fatorial no DIC
FV A B AxB (Trat) Resduo Total G.l. I1 J1 (I 1)(J 1) IJ 1 Por dif. IJK 1
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 79

SQ

QM

Quadros da ANOVA
Fatorial no DBC
FV Bloco A B AxB (Trat) Resduo Total G.l. K1 I1 J1 (I 1)(J 1) IJ 1 (IJ 1)(K 1) IJK 1
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 80

SQ

QM

Exemplo Exp. Fatorial


dados<-read.table("curso R slides/dados curso R/fatorial.txt",h=T) Af<-factor(dados$A) Bf<-factor(dados$B) #agora solicitando a ANOVA saida<-aov(y~Af+Bf+Af:Bf,data=dados) #ou simplesmente: saida<aov(y~Af*Bf,data=dados) #pedindo o quadro informativo da ANOVA summary(saida) interaction.plot(Bf,Af,dados$y) #interaction.plot(Af,Bf,dados$y) #dados2<-edit(dados) #no DBC blocof<-factor(dados$rep) #agora solicitando a ANOVA saida<aov(y~blocof+Af+Bf+Af:Bf,data=dados ) #ou simplesmente: saida<aov(y~blocof+Af*Bf,data=dados) #quadro informativo da ANOVA summary(saida); anova(saida) interaction.plot(Bf,Af,dados$y) model.tables(saida) # efeitos model.tables(saida,"means") dados.A1<-dados[which(dados$A==1),] dados.A2<-dados[which(dados$A==2),] #totais.A<rowsum(dados.A1$y,dados.A1$B) HSD.test(dados.A1$y,dados.A1$B,7,1.92) HSD.test(dados.A2$y,dados.A2$B,7,1.92)

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Usando o R

Outros experimentos
Parcela subdividida
O termo parcelas subdivididas, assim como o fatorial, refere-se maneira como os tratamentos so organizados e atribudos s unidades experimentais. Definimos, aqui, os fatores primrios e secundrios, ou seja, parcelas e subparcelas respectivamente.

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Exemplo
A1 Bloco 1 2 3 4 12 15 17 14 B1 12 16 16 13 15 16 13 16 B2 14 17 15 15 15 12 12 14 B3 16 12 11 17 21 18 17 16 B1 19 19 19 17 22 19 20 17 A2 B2 20 21 18 20 16 21 19 18 B3 19 20 21 18

Entrar com os comandos


Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Comandos R
> > > > > > > > #cria o fator das parcelas A<-gl(2,24,label=paste("A",1:2,sep="")) #fator das subparcelas B<rep(gl(3,8,label=paste("B",1:3,sep="") ),2) #blocos bl<rep(gl(4,2,label=paste("bl",1:4,sep="" )),6) #varivel resposta 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) #juntando tudo num data.frame tabela<data.frame(A=A,B=B,bloco=bl,dados=dado s) #fazendo a anova

> #fazendo a anova > saida<-aov( dados~bloco+A+B+A*B+Error(bloco/A),tabe la) > summary(saida) > model.tables(saida,"means")

FV Bloco A Resduo(a) B AxB Resduo

GL 3 1 3 2 2 36 Usando o R

> > >

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Blocos incompletos
Blocos Aumentados de Federer Blocos Incompletos Balanceados Blocos Incompletos no Balanceados Veja possibilidades no pacote agricolae: help(package=agricolae)

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Esquema ilustrativo - Blocos Aumentados


Bloco 1 B A C
+ 12 trat

Bloco 2 A C B

5 B

4 A 6 1 3 C 2

Blocos 1 e 2 aumentados

11 A

9 C 10 7 12 B 8

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Blocos Aumentados
#Criando o delineamento (design.dau())
library(agricolae) # 3 tratamentos and 2 blocos T1<-c("A","B","C") ; T2<-letters[1:12] dau <-design.dau(T1,T2, r=2) # livro de campo: dau by(dau,dau[2],function(x) paste(x[,1],"-",as.character(x[,3]))) # escrevendo no HD: # write.table(dau,"dau.txt", row.names=FALSE, sep="\t") # file.show("dau.txt") # Delineamento aumentado no DIC: trt<-c(T1,T2); r<-c(4,4,4,1,1,1,1,1,1,1,1,1,1,1,1) livro <- design.crd(trt,r)

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Usando o R

Gerando e analisando dados


> #Exemplo DBA > #Gerar y = rnorm(18,30,2) > args(DAU.test): function (block, trt, y, method = c("lsd", "tukey")) > cbind(dau,y) > DAU.test(dau$block,dau$trt,y, "lsd") > saida<- DAU.test(dau$block,dau$trt,y, "lsd") > saida

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Usando o R

Ex: Usando o R

Comparando Pacotes
Comparando o agricolae com o ExpDes

Curso R - Prof. Luiz A. Peternelli - CBMP, 2011

Usando o R

Modelos mistos
Para a anlise de modelos mistos, o R apresenta uma biblioteca muito verstil e extremamente poderosa chamada nlme nonlinear mixed effects model, que permite a avaliao de modelos mistos lineares e nolineares. Para acess-la basta entrar com o seguinte comando:
> library(nlme)

Uma vez carregada essa biblioteca, digite help(package=nlme) para maiores informaes e exemplo de aplicao. Veja, por exemplo:
> ?lme
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011