mini curso-prof-peternelli
TRANSCRIPT
Curso R - Prof. Luiz A. Peternelli - CBMP, 20111
Programa R: Aplicações no Melhoramento de Plantas
Prof. Luiz Alexandre Peternelli2011
Departamento de Estatística – UFVPesquisador do PMGCA – UFV
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Objetivo do mini curso
• O objetivo deste curso não é tão somente ensinar um software ou rever conceitos de estatística e seus métodos, mas proporcionar um ponto de partida para pessoas que desejam começar a utilizar o R e suas ferramentas estatísticas
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 3
Conteúdo
• Instalação• entrada de dados; funções básicas; operações
com matrizes• análises descritivas• testes de hipóteses• delineamentos experimentais• esquemas experimentais• análise de regressão• dicas de organização dos comandos e de
elaboração dos relatórios de análise
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 4
Material de consulta• Internet• Inúmeros livros (veja
www.amazon.com)– Estatística básica, gráficos,
análises específicas etc• Conhecendo o R: uma visão
estatísticaPeternelli e Pupin, 2011.disponível na Editora UFV(www.editoraufv.com.br)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 5
Editores para o R
• No caso do Windows– Descrição detalhada em:
www.sciviews.org/_rgui/projects/Editors.html– Word: uma opção. CUIDADO!– Script do R e notepad. Bons e simples!– Tinn-R (www.sciviews.org/Tinn-R/)
• Colorido e interativo.• Problema: versões do Windows.
– RWindEdt (pacote do R) - ??? (RStudio)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 6
Instalação
• Programa disponível em:www.r-project.org
Etapas:• Baixar programa• Atualizar pacotes• Baixar pacotes de interesse e usar suas
funções, ou criá-las, conforme interesseespecífico.
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 7
Informações Básicas do ProgramaR
• 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 função scan()teste<-scan() #usado para entrada de dados
#Uso da função edit()teste<-c(10,20,30,40,50)teste
teste2<-edit(teste)teste2
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 9
Informações Básicas do ProgramaR
• Operações com matrizes– comandosR – operações com matrizes
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Comandos R#Operações com vetores e matrizescoluna1<-c(2,1,0)coluna2<-c(1,3,1)coluna3<-c(1,1,2)A<-cbind(coluna1,coluna2,coluna3)
#obtendo a transposta de At(A)
#cálculos interessantest(A)%*%A #A’A
#Produto de vetorescoluna1%*%coluna1
#cuidado!coluna1*coluna1
#Inversa de uma matriz não singular quadrada:
solve(A) #inversa da matriz Asolve(A)%*%A #verificaçãoround(solve(A)%*%A,5)solve(t(A)%*%A)
#determinante da matriz Adet(A)
#dando nomes às linhas e colunasdimnames(A)<-
list(c("linha1","linha2","linha3"),c("col1","col2","col3"))
row.names(A)<-c("l1","l2","l3")
#criando matriz de outra formaB<-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 matrizB[1,3]; B[c(1,2),3];B[c(1,3),c(2,4)]
#Para outras funções associadas a matrizes, veja
??matrix
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 11
Informações Básicas do ProgramaR
• Outras funções básicas– comandosR – funções básicas (tabelas a
seguir)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 12
Algumas funçõesAção Comando
Fazer com que o R ignore o que será digitado* #
Sair do programa q()
Salva o trabalho realizado save.image()
Lista todos os objetos da área de trabalho atual ls()
Remove o objeto x rm(x)
Remove os objetos x e y rm(x,y)
Dado ausente NA
Verdadeiro se existir dados ausentes is.na
Mostra todos os pacotes instalados** library()
Carregar (por exemplo) o pacote nlme library(nlme)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 13
Mais funçõesAção de ajuda Comando
Obter ajuda sobre o comandoX help(comandoX)
Iniciar ajuda no browser padrão instalado
help.start()
Obter ajuda sobre (p.ex.) o pacote mva
help(package=mva)
Procurar por multivariate em todos os pacotes instalados
help.search(“multivariate”)
Comando que procura objetos (p.ex.) pelo nome modelo
apropos(“modelo”)
Mostrar exemplos do “comandoX”
example(comandoX)
Listar as funções e operações contidas no pacote base do R
ls(“package:base”)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 14
Mais funções
Função Significado
log(x) Log de base e de x
exp(x) Antilog de x (e^x)
log(x,n) Log de base n de x
log10(x) Log de base 10 de x
sqrt(x) Raiz quadrada de x
choose(n,x) n!/(x!(n-x)!)
cos(x), sin(x), tan(x)Funções trigonométricas de x em
radianos
acos(x), asin(x), atan(x)Funções trig. inversas de x em
radianos
abs(x) Valor absoluto de x
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 15
Análises Descritivas
• Medidas de posição (OBS)
– Média (mean())– Mediana: (median())
• n ímpar → Xmd = X(n + 1)/2 do rol• n par → Xmd = ½(Xn/2 + Xn/2 +1) do rol
– Moda: (table())• Xmo : é o valor mais frequente num conjunto de
dados
– Máximo (max())– Mínimo (min())
n
x
x
n
i
i∑== 1
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 16
Cont...
Q1 Q3
– Quantis (quartis, decis, percentis) (quantile())
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 17
Análises Descritivas
• Medidas de dispersão– Amplitude total → AT = max(X) – min(X)
– Variância (var())
– Desvio padrão →
– Erro padrão da média →
– Coeficiente de variação →
2s
1
)(1
2
2
−
−
=∑
=
n
xx
s
n
i
i
1−n
SQDx=
n
s
100×x
s
Usando o R 1Usando o R 2
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) #média
median(x) #mediana
table(x) #dica para obter a moda (ou modas)
max(x) #máximo
min(x) #mínimo
quantile(x,c(.25,.5,.75)) #três quantis diferentes
#OBS: ver o que sai da função summary(x)
max(x)-min(x) #amplitude total
var(x) #variância
sqrt(var(x)) #ou sd(x). Desvio padrão
sd(x)/sqrt(n) #erro padrão da média
sd(x)/mean(x)*100 #coeficiente de variação
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Comandos R#medidas descritivas - criando função
meu.estat.descr<-function(conj.de.dados,quantis=c(.25,.5,.75)){
x<-conj.de.dadosn<-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))}#testandoteste<-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 20
Análises Descritivas
• Análises gráficas– Importância– Gráficos mais comuns:
• Histograma• Boxplot• Diagrama de dispersão
Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Comandos R#comandos para graficos
x<-1:20y<-x**3plot(x,y) #plota os pares (x,y).
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 gráficosplot(x,y)points(rev(x),y)#adicionando pontoslines(x,8000-y)
#adicionando linhas
#mudando o padrão de pontosplot(x,y)points(rev(x),y,pch=3) #adiciona
cruzespoints(x,8000-y,pch="$") #símbolo
cifrão
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) #linha grossa
lines(rev(x),y,lty=2) #linha tracejada
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Comandos R#definindo os intervalos dos eixosplot(c(0,20),c(-
8000,8000),type='n')lines(x,y) #lembre-se:
x<-1:20; y<-x**3lines(x,-y)
#adicionando segmentos de reta
plot(c(0,20),c(0,30),type='n')#gráfico em branco
segments(5,3,15,20) #um segmento de reta
lines(c(12,15,7,20),c(3,10,8,15), #duas
pequenas linhascol="red", #vermelhaslty=3) #pontilhadas
abline(30,-2,lty=2,col=4)#linha tracejada azul
#adicionando textoplot(x,y,xlab="Eixo X
aqui",ylab="Eixo Y aqui")title("Título aqui \n (e repare a
acentuação!!!)")text(6,4000,"Texto em qualquer
lugar")
#gráficos múltiplosx<-1:20y<-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))
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Comandos R#personalizando o gráficox<-1:10
#criando xy<-c(2,5,9,6,7,8,4,1,3,10)
#criando yx;y
plot(x,y) #plota x e yplot(x, y, #plota x e y
xlab="Eixo x",#nomeia o eixo xylab="Eixo y",#nomeia o eixo ymain="Personalizando um gráfico",#títuloxlim=c(0,10), #limites eixo xylim=c(0,10), #limites eixo ycol="red", #cor dos pontospch=22, #formato dos pontosbg="blue", #cor de preenchimentotcl=0.4, #tamanho de traços dos
eixoslas=1, #orientação do texto em ycex=1.5, #tamanho do pontobty="l") #altera as bordas
#histogramasx<-
c(2,2,2,2,2,3,3,3,4,4,5,5,6) #vetor qualquer
hist(x)
table(x)
hist(x, #histograma de xright=T, #intervalos fechados à direitainclude.lowest=F, #não soma extremos do vetorbreaks=c(1,2,3,4,5,6))
#int. das classes
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Comandos Rx<-rchisq(1000,10); hist(x)hist(x, #histograma de x
main="Histograma\nQui-quadrado",#títuloxlab="Valores", #texto do eixo das abscissasylab="Prob", #texto do eixo das ordenadasbr=c(c(0,5),c(5,15),5*3:7), #int das classesxlim=c(0,30), #limites do eixo de xylim=c(0,0.1), #limites do eixo ycol="lightblue", #cor das colunasborder="white", #cor das bordas das colunasprob=T, #mostrar probabilidades.right=T, #int fechados à direitaadj=0, #alinhamento dos textoscol.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, #número de classes igual a 6right=F, #int fechado à esquerdamain="Histograma", #título do histogramaxlab="tempo (em minutos)",#texto do eixo xylab="frequencia", #texto do eixo ycol=2) #usa a cor cinza nas barras
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Comandos R#gráfico de barrasbarplot(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)#disposição horizontal das categorias
#boxplotx<-rnorm(100,10)y<-rchisq(100,10)boxplot(x,y)
#gráfico de setores: veja ?pie
demo(graphics)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 26
Testes de Hipóteses
• Entendendo os princípios básicos usandosimulação
• Ideia geral
Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 27
Ideia geral
• regra decisória que nos permite rejeitar ou não rejeitar uma hipótese estatística com base nos resultados de uma amostra
• Parâmetro, estimador, estimativa• Hipótese estatística:
– É uma suposição quanto ao valor de um parâmetro populacional, ou uma afirmaçãoquanto à natureza da população
• H0 e Ha
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 28
Ideia geral – cont...
• Erros nas conclusões obtidas
Por causa das flutuações amostrais, ao testar certa hipótese e tomar uma decisão, pode-se tomar a decisão errada.
Dois tipos de erro:
� Erro Tipo I: Rejeitar a hipótese nula quando na realidade ela é verdadeira.
� Erro Tipo II: Não rejeitar a hipótese nula quando na realidade ela é falsa.
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 29
Ideia geral – cont...
• P(erro tipo I) = α
• P(erro tipo II) = β
• Em geral podemos controlar apenas o erro tipo I, definindo o valor α (nível de significância do teste)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 30
Passo 1.Passo 1. Definir uma hipótese H0 a ser testada e
uma hipótese alternativa HA;
Passo 2.Passo 2. Usar a teoria estatística e as informações
disponíveis para decidir qual estatística
(estimador) será usada para testar a
hipótese H0. Definir a distribuição
amostral dessa estatística.
Passos usuais para a Construção de um Teste de Hipóteses
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 31
Passos para a Construção de um Teste de Hipóteses
Passo 3.Passo 3. Fixar a probabilidade α de cometer o erro tipo
I e usar este valor para construir a região
crítica (regra de decisão);
Passo 4.Passo 4. Usar as observações da amostra para calcular
o valor da estatística de teste;
Passo 5.Passo 5. Se o valor da estatística calculado com os
dados da amostra não pertencer à região
crítica, não rejeite H0 ; caso contrário, rejeite
H0.
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 32
Esquemas baseados na Ha
Valor crítico
α/2α/2
Valor crítico
Valor hipotético
R.C. R.C.
Ha : θ ≠ θ0
Ha : θ > θ0
Ha : θ < θ0
α
R.C.
Valor crítico
Valor hipotético
α
Valor crítico
R.C.
Valor hipotético
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 33
Usando o p-valor
• O procedimento para o teste seria:– Formular H0 e Ha (e definir α, se for de interesse);– Especificar a estatística do teste;– Determinar o valor da estatística do teste e o p-value
correspondente baseado na amostra; e
– Comparar p-value com α• Se p-value α rejeição de H0;• Se p-value > α não-rejeição de H0.• Obs.: Ou permita que o julgamento seja particularizado.
≤ ⇒
⇒
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 34
Teste t
Hipóteses
HA: µ > µ0
H0: µ = µ0 vs HA: µ < µ0
HA: µ ≠ µ0
Estatística de Teste:
n
s
Xtcalc
µ−=
Regra decisória: Se |tcalc| > ttab → rejeitamos H0
n ≤ 30
~ t (n – 1 g.l.)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 35
Exemplo:Exemplo: Foi afirmado que o crescimento de certa planta, num certo período, é de 140 cm (ou mais). Um pesquisador deseja testar a credibilidade da declaração. Para isso mediu a capacidade de uma amostra aleatória de 20 dessas plantas, durante aquele período declarado. Os resultados em cm, são 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
138,47=X
H0: µ = 140 n = 20 α = 0,05 Ha: µ < 140 s2= 7,0706 s = 2,66
ASSIM:
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 36
Conclusão:Rejeita-se H0, ou seja, há evidências de que a declaração é falsa, ao nível de significância de 5%.
Estatísticado teste:
57,2
20
66,2
14047,138−=
−=
−=
n
s
Xtcalc
µ
Esquema
ttab = -1,729 µ = 140 ≡ t = 0
α
Valor crítico
R.C.
Valor hipotético
Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
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,2141,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,1t.test(x,alternative="less",mu=140)qt(.05,19)?ptpt(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 38
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”Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Comandos R#Kolmogorov-Smirnovpesos<-scan()46.88 47.17 64.46 67.84 85.76 65.41 60.1075.84 61.21 61.65 63.87 53.95 63.66 69.0676.41 75.56 69.04 35.18 66.42 58.78 73.0251.69 90.88 53.01 64.31 61.91 79.42 57.7862.73 60.63 63.29 46.53 84.64 61.76 85.0859.66 54.89 94.18 59.89 68.56 75.66 72.0662.00 43.43 73.38 73.31 66.37 73.72 66.1567.79hist(pesos)ks.test(pesos, #amostra a ser testada
"pchisq", #”p” e depois nome da distribuição49) #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-Wilksshapiro.test(pesos)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 40
O MODELO ESTATÍSTICO
• Y = f( X1, X2, ..., Xp) = f(X, e)
• Utilizando a notação matricial
• Pode-se usar representação algébrica
Variável de interesse Variáveis queexplicam variaçãoem Y
Variáveisexplicativasefetivamenteusadas
resto
ε+Xθ=Y
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 41
Exemplo
• Usando representação algébrica
• Ver esse exemplo para i = 1 a 3 e j = 1 a 2
ijiij e+t+m=y
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 42
Desenvolvimento e restrições do modelo
• Pressuposições básicas– Aditividade dos efeitos– Normalidade dos erros– Independência dos erros– Homogeneidade de variâncias dos
tratamentos
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 43
DELINEAMENTO INTEIRAMENTE CASUALIZADO
DIC
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 44
Modelo
• é o valor observado para a variável em estudo referente ao i-ésimo tratamento na j-ésimarepetição
• é a constante inerente ao modelo • é o efeito do tratamento i no valor observado • é o erro associado à observação
jiiji etmy ++=Jj
Ii
,,2,1
,,2,1
…
…
=
=
jiy
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 45
Construção de estimadores
• Montar quadro da ANOVA
FV g.l. SQ QM F
Tratamento I – 1 SQTrat
Resíduo IJ – I SQRes
Total IJ – 1 SQTotal
IJ
y
ySQTotalji
ji
ji
ji
2
2
−=
∑∑ ∑
∑
−=i
ji
ji
iIJ
y
TJ
SQTrat
2
21
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
• QMTrat =
• QMRes =
• F = QMTrat/QMres
FVFixo
EQMAleat
Trat
Res
Total
1−I
SQTrat
( )1
Re
−JI
sSQtJΦ+2σ 22
tJσσ +
2σ2σ
I2i
i 1t
t
I 1
=∑
Φ =−
2t
QMTrat QM Re sˆ
J
−σ =
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 47
DIC – Modelo fixo
• Hipóteses testadas
• Regra decisória– se Fcalculado ≥ Ftabelado → rejeita-se H0
– Ou avalia o “p-valor”
mm...mm:H I210 ====
0a Hnão:H
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Exemplo DIC 1
• GOMES (1984): experimento de competição de 4 cultivares de cana-de-açúcar (A, B, C e D), utilizando o DIC com 6 repetições
246321357279Totais
446061486
426254505
484961364
344466513
334755402
455960541
DCBARepetição
Cultivares
Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Comandos RArquivo: 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
( ) ( )
62,200038,603006230124
120362301
64
444054444054
2
2
222
2
2
=−=−=
=+++
−+++=
−=
∑∑
xIJ
y
ySQTotalji
ji
ji
ji
…
…
( )
12,117438,603005,61474
24
1203246279
6
112
22
2
2
=−=
−++=
−= ∑∑
…
i
ji
ji
iIJ
y
TJ
SQTrat
Re 2000,62 1174,12 826,50SQ s SQTotal SQTrat= − = − =
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
32,4120
50,826
Re
ReRe
37,3913
12,1174
===
===
sGL
sSQsQM
GLTrat
SQTratQMTrat
47,932,41
37,391
Re===
sQM
QMTratFcalc
( ) 10,320,3%5 == FFtab
%82,12100125,50
32,41100
ˆ
Re(%).. === ••
m
sQMVC
2000,6223Total
41,32826,5020Res
9,47 *391,371174,123Trat
FQMSQGLFV
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 54
Exemplo DIC 2
Total Média
A 25 26 20 23 21 115 23
B 31 25 28 27 24 135 27
C 22 26 28 25 29 130 26
D 22 28 27 23 20 120 24
Um pesquisador avaliou a altura de colmos (média do sulco, em dm) de quatro famílias de cana de açúcar organizados segundo o DIC, obtendo os seguintes dados numa escala apropriada
Realizar a ANOVA para testar a hipótese de igualdade dos efeitos de tratamentos
Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
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 futurosrm(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)#Não significativo ... para por
aqui. Voltar para os slides#model.tables(saida,"means")
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 56
PROCEDIMENTOS PARA COMPARAÇÃO DE MÉDIAS
• Ou testes para comparação de médias, ou testes de comparações múltiplas– DMS, Bonferroni, Scheffé, Tukey, Duncan,
Dunnett
• Complemento ao teste F • detectar diferenças entre tratamentos• Situações ou uso específico para cada
teste
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 57
Contrastes • Funções do tipo
• Onde
• Exemplo:Y = 2x1 – x2 – x3
• Se X ≡ média → contraste de média
nn xaxaxaxfY +++== …2211)(
∑=
=n
i
ia1
0
∑=
−=−===4
1
321 1,1,2,0i
i aaaa
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 58
• para um contraste de médias em sua forma geral
• Podemos obter a estimativa
nnmcmcmcmcY ++++= …332211 ∑=
=n
i
ic1
0
nnmcmcmcY ˆˆˆˆ2211 +++= …
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 59
• Para aplicar testes precisamos conhecer o estimador da variância do estimador do contraste
nnmcmcmcY ˆˆˆˆ2211 +++= …
)ˆ(ˆ)ˆ(ˆ)ˆ(ˆ)ˆ(ˆ 2
2
2
21
2
1 nn mVcmVcmVcYV +++= …
r
sc
r
sccccYV
n
i
in
2
1
22
22
3
2
2
2
1 )()ˆ(ˆ ∑=
=++++= …
Se “médias” independentes.
Se variâncias “iguais”, e mesmo no repetições:
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 60
Teste da Diferença Mínima Significativa (DMS)
• A DMS ao nível α de significância para comparar mi com mj é:
• DMS =
• Concluir que mi ≠ mj se > DMS
)11
(Re,2/
ji
vnn
sQMt +α
ji mm ˆˆ −
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 61
Generalizando
• ao nível α de probabilidade, concluir que
se
Número de g.l. resíduoNúmero de trat
Número de repetições do trat i
∑ ≠ 0iimc ∑∑=
>I
i i
i
viin
csQMtmc
1
2
,2/ Reˆ α
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 62
Teste de Bonferroni
• bom quando se quer fazer um pequeno número de comparações
• mantém o nível de significância conjunto igual ou menor que α, quando aplicado a um grupo de contrastes de interesse
• Se p contrastes estão sendo comparados:– para cada contraste → usar α′ = α/p.
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 63
• se quisermos fazer p comparações, concluiremos que a q-ésima comparação
• se0≠∑ iiqmc
∑∑=
>I
i i
iq
vpiiqn
csQMtmc
1
2
),2/( Reˆα
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 64
Teste de Scheffé
• Pode testar todo e qualquer contraste de médias, mesmo quando sugerido pelos dados
• muito utilizado para testar contrastes que envolvem grupos de médias
• Não 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 65
O teste
• Estatística do teste
• Regra decisória:
Se contraste é significativo ao nível α
)ˆ(ˆ)1( YVFIS −=
SY ≥ˆ
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 66
Teste de Tukey• Testa todo e qualquer contraste entre 2 médias • Não permite comparar grupos de médias• Estatística do teste:
• Se contraste é significativo ao nível α∆≥Y
)ˆ(ˆ2
1YVq=∆
Tabela de Tukey
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 67
Teste de Duncan
• fornece resultados mais discriminados que os do teste de Tukey
• de aplicação mais trabalhosa • exige que as médias sejam colocadas em
ordem decrescente• Teste é exato quando todos os
tratamentos possuírem o mesmo número de repetições
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 68
O teste
• Estatística do teste
• Se → contraste não significativo
• Se → médias diferem → repetirprocedimento para abrangência i - 1
iDY <ˆ
iDY ≥ˆ
Tabela de Duncan
)ˆ(ˆ2
1YVZD ii =
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 69
Teste de Dunnett
• Comparar um tratamento padrão com osdemais tratamentos
• Estatística do teste:
• Se → contraste é significativo
)ˆ(' YVtd d=
Tabela de Dunnett
f(g.l. trat.; g.l. res.)
'ˆ dY ≥
Curso R - Prof. Luiz A. Peternelli - CBMP, 201170
Exemplos
• Exemplos diversos usando– Função aov() e anova()
– Pacote “agricolae”
Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Comandos R#Alterando os dados agoradados2<-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 ANÁLISES A MÃO#Os totais de tratamentos podem ser
obtidos portapply(dados2$y,dados2$trat,sum)#ourowsum(dados2$y,dados2$trat)#ourowsum(dados2,dados2$trat)
#As médias de tratamentos podem ser obtidas por
tapply(dados2$y,dados2$trat,mean)#ou dividindo os totais pelo número de
repetiçõesrowsum(dados2$y,dados2$trat)/5
#comparando as médiasTukeyHSD(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 72
EXPERIMENTOS EM BLOCOS CASUALIZADOS
DBC
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 73
modelo estatístico
• A variação total é dividida em:Tratamentos + Blocos + Resíduo
• Obtem-se:– G.l. de cada F.V.– Somas de Quadrados– Quadrados médios– Valor F para a F.V. tratamentos
ijjiji ebtmY +++=
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 74
DBC – Modelo fixo
• Hipóteses testadas
• Regra decisória– se Fcalculado ≥ Ftabelado → rejeita-se H0
– Ou avalia o “p-valor”
mm...mm:H I210 ====
0a Hnão:H
Usando o R 1 ; 2
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
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 automaticamenteglres<-saida$df.residualqmres<-deviance(saida)/glresduncan.test(dados$y,dados$trat,glres,qmres)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 76
Esquemas Experimentais
• Experimentos Fatoriais
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 77
Conceituação
• Dois ou mais fatores são estudados simultaneamente
• Cada Fator apresenta dois ou mais níveis • É um tipo de esquema e não um
delineamento– Ex.: podemos ter experimento fatorial no DIC
ou no DBC
• Os tratamentos são obtidos pelas combinações dos níveis dos fatores
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 78
Aplicações • Sejam dois fatores
– fator A com I níveis e o fator B com J níveis, com k repetições
• instalado segundo o DIC
• Instalado segundo o DBC
( ) ijkijjiijk emY ++++= αββα
( )ijk
ekijjim
ijkY +++++= ωαββα
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 79
Quadros da ANOVA
• Fatorial no DIC
FV G.l. SQ QM F
A I – 1
B J – 1
AxB (I – 1)(J – 1)
(Trat) IJ – 1
Resíduo Por dif.
Total IJK – 1
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011 80
Quadros da ANOVA
• Fatorial no DBC
FV G.l. SQ QM F
Bloco K – 1
A I – 1
B J – 1
AxB (I – 1)(J – 1)
(Trat) IJ – 1
Resíduo (IJ – 1)(K – 1)
Total IJK – 1
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Exemplo – Exp. Fatorialdados<-read.table("curso R
slides/dados curso R/fatorial.txt",h=T)
Af<-factor(dados$A)Bf<-factor(dados$B)#agora solicitando a ANOVAsaida<-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)
Usando o R
#no DBCblocof<-factor(dados$rep)#agora solicitando a ANOVAsaida<-
aov(y~blocof+Af+Bf+Af:Bf,data=dados)
#ou simplesmente: saida<-aov(y~blocof+Af*Bf,data=dados)
#quadro informativo da ANOVAsummary(saida); anova(saida)interaction.plot(Bf,Af,dados$y)
model.tables(saida) # efeitosmodel.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
Outros experimentos
• Parcela subdividida– O termo “parcelas subdivididas”, assim como
o “fatorial”, refere-se à maneira como os tratamentos são organizados e atribuídos às unidades experimentais.
– Definimos, aqui, os fatores primários e secundários, ou seja, parcelas e subparcelasrespectivamente.
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Exemplo
1818201717161714151613144
2119182019171112151316173
2021211919181212171616152
1916202219211615141512121
B3B2B1B3B2B1Bloco
A2A1
• 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)
> #variável 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=dados)
> #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")
36Resíduo
2A x B
2B
3Resíduo(a)
1A
3Bloco
GLFV
Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Blocos incompletos
• Blocos Aumentados de Federer• Blocos Incompletos Balanceados• Blocos Incompletos não Balanceados
• Veja possibilidades no pacote agricolae: help(package=“agricolae”)
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Esquema ilustrativo - Blocos Aumentados
A C
Bloco 1 Bloco 2
B A C A B
B A C5 4 36 1 2
A C B11 9 1210 7 8Blocos 1 e 2
aumentados
+ 12 trat
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)
Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
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
Usando o R Ex: Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Comparando Pacotes
• Comparando o agricolae com o ExpDes
Usando o R
Curso R - Prof. Luiz A. Peternelli - CBMP, 2011
Modelos mistos
• Para a análise de modelos mistos, o R apresenta uma biblioteca muito versátil e extremamente poderosa chamada nlme – nonlinear mixed effects model, que permite a avaliação de modelos mistos lineares e nãolineares.
• Para acessá-la basta entrar com o seguinte comando:– > library(nlme)
• Uma vez carregada essa biblioteca, digite help(package=nlme) para maiores informações e exemplo de aplicação.
• Veja, por exemplo: – > ?lme