Você está na página 1de 149

ANÁLISE DE DADOS POR MEIO DE

ESTATÍSTICA UNI E MULTIVARIADA

PROGRAMA ESTATÍSTICO

Carlos Alberto da Silva Ledo


Pesquisador em Métodos Quantitativos em P&D
Embrapa Mandioca e Fruticultura

Cruz das Almas – BA


Fevereiro de 2021
APRESENTAÇÃO

2
Sumário
Trabalhando com o R...................................................................................................................6
Manipulação de Conjunto de Dados............................................................................................8
Análise Exploratória de Dados....................................................................................................11
1. Variáveis quantitativas.......................................................................................................11
a) Estatística descritiva e teste de normalidade.................................................................11
b) Variância e covariância, correlação linear e diagnóstico de multicolinearidade............13
c) Correlação parcial...........................................................................................................15
d) Importância de variáveis segundo Singh (1981).............................................................16
e) Detecção de valores discrepantes ou outliers................................................................17
2. Variáveis qualitativas..........................................................................................................18
a) Índice de entropia de Shannon.......................................................................................18
Análise de Variância...................................................................................................................20
1. Análise de variância para modelos fixos.............................................................................20
a) DIC com tratamento qualitativo.....................................................................................20
b) DIC com tratamento qualitativo e tratamento controle................................................22
c) DIC com tratamento qualitativo e várias observações por parcela................................24
d) DBC com tratamento qualitativo....................................................................................26
e) DBC com tratamento quantitativo e ajuste de regressão linear.....................................28
f) DBC com tratamento quantitativo e ajuste de regressão quadrática.............................30
g) DQL com tratamento qualitativo....................................................................................32
h) Fatorial duplo em DIC (dois fatores qualitativos)...........................................................34
i) Fatorial duplo em DBC (fator qualitativo e fator quantitativo)........................................36
j) Parcela subdividida no espaço em DBC (parcela com fator qualitativo e subparcela com
fator quantitativo)..............................................................................................................38
k) Parcela subsubdividida no espaço em DBC....................................................................40
l) Fatorial triplo em DBC (três fatores qualitativos)............................................................41
m) Fatorial duplo com um tratamento adicional em DIC (fator qualitativo e fator
quantitativo).......................................................................................................................43
n) Delineamento em blocos aumentados...........................................................................44
2. Análise de variância para modelos mistos..........................................................................45
3. Transformação de dados....................................................................................................46
Genética Quantitativa................................................................................................................48
1. Interação genótipos por ambientes...................................................................................48
a) Análise conjunta para grupos de experimentos.............................................................48
b) Análise de adaptabilidade e estabilidade.......................................................................49

3
Regressão Linear e Não-Linear...................................................................................................52
1. Regressão linear.................................................................................................................52
a) Regressão segmentada...................................................................................................52
Análise Multivariada...................................................................................................................53
1. Análise de agrupamento....................................................................................................53
a) Análise de agrupamento para variáveis quantitativas sem repetição............................53
b) Análise de agrupamento para variáveis quantitativas com repetição............................55
c) Análise de agrupamento para variáveis qualitativas categóricas...................................57
d) Análise de agrupamento para variáveis qualitativas binárias.........................................58
e) Análise de agrupamento para variáveis quantitativas e qualitativas..............................59
2. Análise de componentes principais....................................................................................63
a) Análise de componentes principais para variáveis quantitativas...................................63
b) Análise de componentes principais para variáveis quantitativas e qualitativas.............66
3. Análise de Fatores..............................................................................................................68
a) Análise de fatores para variáveis quantitativas..............................................................68
b) Análise de fatores para variáveis quantitativas e qualitativas simultaneamente...........70
Pacotes necessários: PCAmixdata......................................................................................70
4. Análise de correspondência...............................................................................................71
5. Análise discriminante.........................................................................................................72
a) Análise discriminante de Mahalanobis...........................................................................72
6. Análise de variância multivariada.......................................................................................73
a) Teste T2 de Hotelling para duas amostras......................................................................73
b) Análise de variância multivariada...................................................................................74
Estatística Não-Paramétrica.......................................................................................................76
1. Teste de qui-quadrado para dados de contagens..............................................................76
a) Análise de frequências...................................................................................................76
b) Teste de proporção para duas categorias......................................................................77
c) Teste de aderência.........................................................................................................78
2. Análise de variância não-paramétrica................................................................................80
a) Entre dois grupos...........................................................................................................80
b) Entre três ou mais grupos..............................................................................................81
Criação e Edição de Gráficos......................................................................................................82
1. Criação de gráficos.............................................................................................................82
a) Gráfico de dispersão.......................................................................................................82
b) Gráfico de box-plot........................................................................................................83
c) Gráfico de barras............................................................................................................85

4
d) Gráfico com modelo de regressão de efeito linear........................................................87
e) Gráfico com modelo de regressão de efeito linear e intervalo de confiança.................89
f) Gráfico com modelo de regressão de efeito quadrático.................................................91
g) Gráfico com modelos de regressão de efeitos linear e quadrático.................................93
h) Editando gráficos de uma forma mais simples...............................................................95
i) Salvando gráficos.............................................................................................................96
j) Cores no R.......................................................................................................................96
Arquivos de Dados.....................................................................................................................97
Comandos Básicos....................................................................................................................126
Referências...............................................................................................................................128
Índice Remissivo.......................................................................................................................130
Contato....................................................................................................................................131

5
Trabalhando com o R

Trabalhando com o R

1) Ao executar uma análise no R, criar um diretório de trabalho em local conhecido.


Após isso, abrir o programa R.

2) Com o comando getwd() é possível verificar o diretório de trabalho que o R está


usando. Para mudar o diretório de trabalho basta digitar o comando setwd("G:/Curso
R"). Observe que as barras devem ser no padrão Linux ”/”. O diretório de trabalho
pode também ser alterado em “Arquivo/ Mudar dir...”. Para verificar os arquivos
disponíveis no diretório de trabalho digitar dir().

3) Ao iniciar o R é aberta uma área de trabalho, chamada também de workspace em


que os objetos de uma determinada sessão são salvos. Para salvar uma área de
trabalho clicar em “Arquivo/ Salvar área de trabalho...” ou digitar “Ctrl-s”.

4) No processamento das análises, não digitar os comandos diretamente no console


do R, e sim em um arquivo texto que chamamos de script.

5) Clicar em “Arquivo/ Abrir script...”, caso já tenha um script salvo com extensão
“.R” ou “.txt” ou clicar em “Arquivo/ Novo script...”, caso deseje criar um novo script.

6) Clicar em “Janelas/ Dividir na Horizontal”. Na janela superior é apresentado o


script, que pode ser editado e salvo a qualquer momento. A janela inferior é o console
do R que receberá os comandos, os quais serão processados para gerar os
resultados.

6
Trabalhando com o R

7) Para salvar o script, clique em qualquer lugar da janela de script para ativá-la e
clique em “Arquivo/ Salvar” ou digite “Ctrl-s”. Para salvar os comandos e resultados
apresentados no console do R, clique em qualquer lugar da janela do console do R
para ativá-la e clique em “Arquivo/ Salvar em arquivo...”.

8) Para enviar os comandos da janela de script para a janela do console do R, basta


selecioná-los ou marcá-los na janela de script e teclar “Ctrl-r” ou a tecla “F5” para
enviá-los para o console do R. Para enviar todo o script, basta digitar “Ctrl-a” e depois
“Ctrl-r” ou a tecla “F5”.

9) Não criar um nome de objeto que coincida com o nome de uma das variáveis do
arquivo de dados.

7
Manipulação de Conjunto de Dados

Manipulação de Conjunto de Dados

#=======================================================================
# Manipulação de conjunto de dados
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alterar diretório de trabalho
setwd("D:/Curso R/Arquivos")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Verificar diretório de trabalho
getwd()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualizar arquivos do diretório de trabalho
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Salvar resultados à medida que são gerados (Salvar apenas resultados)
sink("resultados_exemplo1.txt", append=TRUE, split=TRUE)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importar arquivo de dados (data frame)
exemplo1<-read.table("exemplo1.txt", header=TRUE, dec=",")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualizar as seis primeiras linhas do arquivo
head(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definir nome dos elementos
row.names(exemplo1) <- as.character(exemplo1$acessos)
exemplo1$acessos <- NULL
head(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualizar as duas primeiras linhas do arquivo de dados
head(exemplo1, 2)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualizar as seis últimas linhas do arquivo de dados
tail(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualizar o arquivo de dados

8
Manipulação de Conjunto de Dados

View(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Editar arquivo de dados
fix(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Listar número de linhas do arquivo de dados
nrow(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Listar número de colunas do arquivo de dados
ncol(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Dimensão do arquivo de dados
dim(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Listar nome dos elementos
rownames(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Listar nome das variáveis do arquivo de dados
colnames(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Listar nome da variável da segunda coluna
colnames(exemplo1[2])

#-----------------------------------------------------------------------------------------------------------------------------
-
# Selecionar um dado da primeira linha e da segunda coluna do arquivo de dados
exemplo1[1, 2]

#-----------------------------------------------------------------------------------------------------------------------------
-
# Selecionar uma determinada coluna ou variável do arquivo de dados
alt1<-exemplo1$alt
alt1
alt2<-exemplo1[,1]
alt2
alt3<-subset(exemplo1, select=alt)
alt3

#-----------------------------------------------------------------------------------------------------------------------------
-
# Selecionar colunas ou variáveis
quant1<-exemplo1[,1:3]
quant1
quant2<-subset(exemplo1, select=c(alt, diam, nf))
quant2

9
Manipulação de Conjunto de Dados

#-----------------------------------------------------------------------------------------------------------------------------
-
# Excluindo colunas ou variáveis do arquivo de dados
qual1<-exemplo1[,-c(1,2,3)] # qual1<-exemplo1[,c(4,5,6)]
qual1
qual2<-subset(exemplo1, select=-c(alt, diam, nf))
qual2

#-----------------------------------------------------------------------------------------------------------------------------
-
# Estrutura do arquivo de dados
str(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Modificação das variáveis do arquivo de dados
exemplo1$nf<-as.integer(exemplo1$nf)
exemplo1$resist<-as.ordered(exemplo1$resist)
exemplo1$ff<-as.factor(exemplo1$ff)
str(exemplo1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Combinar arquivos pelas colunas
quant1
qual1
dados1<-cbind(quant1, qual1)
dados1

#-----------------------------------------------------------------------------------------------------------------------------
-
# Criar um vetor numérico
quant3<-c(3.56, 2.43, 6)
quant3

#-----------------------------------------------------------------------------------------------------------------------------
-
# Combinar arquivos pelas linhas
quant2
quant3
dados2<-rbind(quant2, quant3)
dados2

#-----------------------------------------------------------------------------------------------------------------------------
-
# Modificar ou acrescentar nome dos elementos
rownames(dados2)[9]="BGA101"
dados2

#-----------------------------------------------------------------------------------------------------------------------------
-
# Exportação de um objeto (arquivo de dados) em arquivo texto
write.table(dados2, "dados2.txt", row.names=TRUE, col.names=TRUE)

#-----------------------------------------------------------------------------------------------------------------------------
-
# listar objetos da área de trabalho
ls()

10
Manipulação de Conjunto de Dados

#-----------------------------------------------------------------------------------------------------------------------------
-
# Remover um objeto
rm(alt1)
ls()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Salvar área de trabalho (Salvar objetos)
# Ctrl+S
save.image("exemplo1.RData")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Salvar histórico (Salvar comentários e comandos)
# Clicar em Arquivo/ Salvar Histórico

#-----------------------------------------------------------------------------------------------------------------------------
-
# Salvar resultados (Salvar comentários e resultados)
# Clicar em Arquivo/ Salvar em arquivo...

#-----------------------------------------------------------------------------------------------------------------------------
-
# Limpar memória
rm(list=ls(all=TRUE))

11
Análise Exploratória de Dados

Análise Exploratória de Dados

1. Variáveis quantitativas

a) Estatística descritiva e teste de normalidade


Pacotes necessários: ds

#=======================================================================
# Estatística descritiva e teste de normalidade
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo17.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do nome dos elementos
row.names(dados) <- as.character(dados$acessos)
dados$acessos <- NULL
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Estatísticas descritivas e teste de normalidade de Shapiro-Wilks
library(ds)
desc<-gds(dados)
desc
desc[c(1,2,3,4,17,20,21,22,25),]

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de Shapiro-Wilks por meio de uma função
for(i in 1:ncol(dados))
{
print(colnames(dados[i]))
teste<-shapiro.test(dados[,i])
print(teste)
}

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráficos de box-plot
par(mfrow=c(2,3))
boxplot(dados$alt, col="lightblue", xlab="Altura")
boxplot(dados$diam, col="lightblue", xlab="Diâmetro")
boxplot(dados$comp, col="lightblue", xlab="Comprimento")
boxplot(dados$peso, col="lightblue", xlab="Peso")

12
Análise Exploratória de Dados

boxplot(dados$ac, col="lightblue", xlab="Acidez")


boxplot(dados$rat, col="lightblue", xlab="Ratio")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráficos de box-plot por meio de função
x11()
par(mfrow=c(2,3))
for(i in 1:ncol(dados))
{
boxplot(dados[,i], col="lightblue", xlab=colnames(dados[i]))
}

#-----------------------------------------------------------------------------------------------------------------------------
-
# Histogramas
x11()
par(mfrow=c(2,3))
hist(dados$alt, main=NULL, col="lightblue", xlab="Altura")
hist(dados$diam, main=NULL, col="lightblue", xlab="Diâmetro")
hist(dados$comp, main=NULL, col="lightblue", xlab="Comprimento")
hist(dados$peso, main=NULL, col="lightblue", xlab="Peso")
hist(dados$ac, main=NULL, col="lightblue", xlab="Acidez")
hist(dados$rat, main=NULL, col="lightblue", xlab="Ratio")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Histogramas por meio de função
x11()
par(mfrow=c(2,3))
for(i in 1:ncol(dados))
{
hist(dados[,i], main=NULL, col="lightblue", xlab=colnames(dados[i]))
}

13
Análise Exploratória de Dados

b) Variância e covariância, correlação linear e diagnóstico de multicolinearidade


Pacotes necessários: agricolae, usdm, FactoMineR

#=======================================================================
# Matriz de variância e covariância, correlação linear e diagnóstico de multicolinearidade
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo17.txt", header=TRUE, dec=",")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização das seis primeiras linhas do arquivo
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do nome dos elementos
row.names(dados) <- as.character(dados$acessos)
dados$acessos <- NULL
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Matriz de variância e covariância
cov(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Matriz de correlação
cor(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Correlação de Pearson com teste t
library(agricolae)
mcorr<-correlation(dados, y=NULL, method="pearson", alternative="two.sided")
mcorr

#-----------------------------------------------------------------------------------------------------------------------------
-
# Salvar a matriz de correlação em arquivo texto
write.table(mcorr$correlation, "mcorrel.txt", row.names=TRUE, col.names=TRUE)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Fatores de inflação da variância (VIF) e diagnóstico de multicolinearidade
library(usdm)
vifcor(dados)

14
Análise Exploratória de Dados

vifstep(dados, th=10) # Exclui variáveis com VIF maior que 10


vifcor(dados, th=0.85) # Exclui variáveis com correlação maior que 0,85 e maior VIF

#-----------------------------------------------------------------------------------------------------------------------------
-
# Número de condição (Montgomery e Peck, 1981 - NC<100-multicolinearidade fraca;
100<NC<1000-multicolinearidade de moderada a forte; NC>1000-multicolinearidade severa)
library(FactoMineR)
pca<-PCA(dados, scale.unit=TRUE, graph=FALSE)
NC = max(pca$eig$eigenvalue)/min(pca$eig$eigenvalue)
NC

#-----------------------------------------------------------------------------------------------------------------------------
-
# Número de condição excluindo a variável diam
dados<-subset(dados, select=-diam) # Pode ser usado o comando dados<-dados[,-2]
head(dados)
pca2<-PCA(dados, scale.unit=TRUE, graph=FALSE)
NC2 = max(pca2$eig$eigenvalue)/min(pca2$eig$eigenvalue)
NC2

Observação 1: Segundo Montgomery e Peck (1981) número de condição (NC) < 100,
multicolinaridade é fraca, não constituindo problema sério; 100 < NC < 1000, multicolinearidade
de moderada a forte; NC > 1000, multicolinearidade severa.

15
Análise Exploratória de Dados

c) Correlação parcial
Pacote necessário: agricolae

#=======================================================================
# Correlação parcial entre variáveis avaliadas em delineamento exeperimental a partir da
# matriz de soma de quadrados e produtos do erro obtido a partir de análise de variância
# multivariada (manova)
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo3.txt", header=TRUE, dec=",")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização das seis primeiras linhas do arquivo
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Matriz contendo as variáveis que serão analizadas
mvar<-as.matrix(dados[,3:ncol(dados)])
mvar

#-----------------------------------------------------------------------------------------------------------------------------
-
# Realização da Manova e obtenção da matriz de somas de quadrados e produtos do erro
mav <- manova(mvar~trat, data=dados)
sqpe<-mav$residuals
sqpe

#-----------------------------------------------------------------------------------------------------------------------------
-
# Correlação parcial com teste t
library(agricolae)
mcorr<-correlation(sqpe, y=NULL, method="pearson", alternative="two.sided")
mcorr

16
Análise Exploratória de Dados

d) Importância de variáveis segundo Singh (1981)


Pacote necessário: biotools

#=======================================================================
# Importância de variáveis segundo Singh (1981)
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo17.txt", header=TRUE, dec=",")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização das seis primeiras linhas do arquivo
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do nome dos elementos
row.names(dados) <- as.character(dados$acessos)
dados$acessos <- NULL
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Matriz de variância e covariância
cov<-cov(dados)
cov

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importância de variáveis segundo Singh (1981)
library(biotools)
sij<-singh(dados, cov, inverted=TRUE)
sij

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico da importância de variáveis segundo Singh (1981)
plot(sij)

17
Análise Exploratória de Dados

e) Detecção de valores discrepantes ou outliers


Pacote necessário: univOutl

#=======================================================================
# Detecção de valores discrepantes ou outliers baseado em boxplot
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Criação de um vetor numérico
A<-c(12.4, 15.2, 13.3, 13.1, 2.1, 19.3, 14.2, 13.7, 14.2, 15.3, 12.5)
A

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de box-plot
boxplot(A, col="lightblue")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade de Shapiro-Wilks
shapiro.test(A)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Detecção de valores discrepantes
library(univOutl)
out<-boxB(x = A, k = 1.5, method = 'asymmetric')
out

#-----------------------------------------------------------------------------------------------------------------------------
-
# Limites inferiores e superiores para detecção valores discrepantes
out$fences

#-----------------------------------------------------------------------------------------------------------------------------
-
# Ordem dos valores discrepantes detectados
out$outliers

#-----------------------------------------------------------------------------------------------------------------------------
-
# Valores discrepantes detectados
A[out$outliers]

#-----------------------------------------------------------------------------------------------------------------------------
-
# Eliminação dos valores discrepantes do conjunto de dados
B<-A[-out$outliers]
B

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade de Shapiro-Wilks
shapiro.test(B)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de box-plot

18
Análise Exploratória de Dados

x11()
boxplot(B, col="lightblue")

19
Análise Exploratória de Dados

2. Variáveis qualitativas

a) Índice de entropia de Shannon


Pacotes necessários: dplyr, vegan, entropy

#=======================================================================
# Frequências absolutas, frequências relativas e índice de entropia de Shannon (H) para
# variáveis categóricas utilizando os pacotes dplyr e vegan
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo18.txt", header=TRUE, dec=",")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização das seis primeiras linhas do arquivo de dados
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Tabela com frequência absoluta e relativa para as classes de cf
library(dplyr)
cf<-dados$cf
tabelcf <- data.frame(t(table(cf)))[,-1]
tabelcf <- tabelcf %>% mutate(Fr = Freq/sum(Freq), Fp=100*Fr)
tabelcf

#-----------------------------------------------------------------------------------------------------------------------------
-
# Tabela com frequência absoluta e relativa para todas as variáveis por meio de função
library(dplyr)
for(i in 2:ncol(dados))
{
print(colnames(dados[i]))
tabel <- data.frame(t(table(dados[i])))[,-1]
tabel <- tabel %>% mutate(Fr = Freq/sum(Freq), Fp=100*Fr)
print(tabel)
}

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do nível de entropia de Shannon para cf
library(vegan)
hcf<-diversity(tabelcf$Freq)
hcf

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do nível de entropia de Shannon para todas as variáveis por meio de função

20
Análise Exploratória de Dados

library(vegan)
for(i in 2:ncol(dados))
{
print(colnames(dados[i]))
tabel <- data.frame(t(table(dados[i])))[,-1]
tabel <- tabel %>% mutate(Fr = Freq/sum(Freq), Fp=100*Fr)
h<-diversity(tabel$Freq)
print(h)
}
#=======================================================================
# Frequências absolutas, frequências relativas e índice de entropia de Shannon (H) para
# variáveis categóricas utilizando o pacote entropy
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo18.txt", header=TRUE, dec=",")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Frequências absolutas para as classes de cf
cf<-as.factor(dados$cf)
facf<-tabulate(cf)
facf

#-----------------------------------------------------------------------------------------------------------------------------
-
# Frequências relativas para as classes de cf
library(entropy)
frcf<-freqs(facf)
frcf

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do nível de entropia de Shannon para cf
hcf<- entropy(facf, method="ML")
hcf

Observação 1: O pacote entropy apresenta diversos métodos de cálculo do índice de entropia


de Shannon, method=c("ML", "MM", "Jeffreys", "Laplace", "SG", "minimax", "CS", "NSB",
"shrink").

21
Análise de Variância

Análise de Variância

1. Análise de variância para modelos fixos

a) DIC com tratamento qualitativo


Pacote necessário: ExpDes.pt, agricolae, lmtest

#=======================================================================
# Análise de variância de experimentos no DIC com tratamento qualitativo, considerando o
# modelo fixo
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Salvando resultados em arquivo texto
sink("saida_exemplo2.txt", append=TRUE, split=TRUE)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo2.txt", header=TRUE, dec=",")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização das seis primeiras linhas do arquivo
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Boxplot de cada tratamento
boxplot(prod~cult, xlab="Cultivares", names=c("Prata Anã", "Pacovan Ken", "FHIA 18",
"Tropical"), ylab="Produção", col="gray", data=dados)

#=======================================================================
# Anava e testes de médias com o pacote ExpDes.pt
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava e teste de Tukey com o pacote ExpDes.pt
attach(dados)
library(ExpDes.pt)
dic(cult, prod, quali=TRUE, mcomp="tukey")

#=======================================================================

22
Análise de Variância

# Anava com a função lm


#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm
anava<-lm(prod~cult, data=dados)
names(anava)
anova(anava)

#=======================================================================
# Teste de médias e gráficos com o pacote agricolae
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de Tukey com o pacote agricolae
library(agricolae)
tukey <- HSD.test(anava,"cult", alpha=0.05, group=TRUE)
names(tukey)
tukey$groups
cv.model(anava)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de barras das médias com desvio padrão
x11()
bar.err(tukey$means, variation="SD", ylim=c(0, 38), names=c("FHIA 18", "Pacovan Ken", "Prata
Anã", "Tropical"), horiz=FALSE, angle=125, density=12, ylab="Produção", xlab="Cultivares",
col="red")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de barras das médias com resultados do teste de Tukey
x11()
bar.group(tukey$groups, ylim=c(0, 38), names=c("FHIA 18", "Pacovan Ken", "Prata Anã",
"Tropical"), horiz=FALSE, angle=125, density=12, ylab="Produção", xlab="Cultivares",
col="red")

#=======================================================================
# Pressuposições da análise de variância
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de resíduos
x11()
par(mfrow=c(2,2))
plot(anava)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
residuo<-anava$residuals
shapiro.test(residuo)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
bartlett.test(residuo, cult)
23
Análise de Variância

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de independência dos erros
library(lmtest)
dwtest(prod~cult, data=dados, alternative="two.sided")

24
Análise de Variância

b) DIC com tratamento qualitativo e tratamento controle


Pacote necessário: easyanova, DescTools

#=======================================================================
# Análise de variância de experimentos no DIC com tratamento qualitativo e tratamento
# controle, considerando o modelo fixo, e análise de várias variáveis por meio de função
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo3.txt", header=TRUE, dec=",")
head(dados)

#=======================================================================
# Anava e teste de médias com o pacote ExpDes.pt
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava e teste de Tukey com o pacote ExpDes.pt para a variável dc
attach(dados)
library(ExpDes.pt)
dic(trat, dc, quali=TRUE, mcomp="tukey")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava e teste de Tukey com o pacote ExpDes.pt para todas as variáveis
for(i in 3:ncol(dados))
{
print(colnames(dados[i]))
anava<- dic(trat, dados[,i], quali=TRUE, mcomp="tukey")
print(anava)
}

#=======================================================================
# Anava com a função lm
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm para a variável dc
str(dados)
anava<-lm(dc~trat, data=dados)
anova(anava)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm para todas as variáveis
for(i in 3:ncol(dados))
{
print(colnames(dados[i]))
25
Análise de Variância

anava<- lm(dados[,i]~trat, data=dados)


print(anova(anava))
}

#=======================================================================
# Teste de Dunnett para comparar os tratamentos com o tratamento controle
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de Dunnett para a variável dc
library(DescTools)
DunnettTest(dc ~ trat, control="D", data=dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de Dunnett para todas as variáveis
for(i in 3:ncol(dados))
{
print(colnames(dados[i]))
dunnett<-DunnettTest(dados[,i] ~ trat, control="D", data=dados)
print(dunnett)
}

26
Análise de Variância

c) DIC com tratamento qualitativo e várias observações por parcela


Pacote necessário: ExpDes.pt, lmtest

#=======================================================================
# Análise de variância de experimentos no DIC com tratamento qualitativo e várias
# observações por parcela, considerando o modelo fixo
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo4.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo das médias para cada tratamento e repetição
dados<-aggregate(alt~trat:rep, data = dados, mean)
head(dados)

#=======================================================================
# Anava e testes de médias com o pacote ExpDes.pt
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava e teste de Tukey com o pacote ExpDes.pt
attach(dados)
library(ExpDes.pt)
dic(trat, alt, quali=TRUE, mcomp="tukey")

#=======================================================================
# Anava com a função lm
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm
str(dados)
dados$trat<-as.factor(dados$trat)
str(dados)
anava<-lm(alt~trat, data=dados)
anova(anava)

#=======================================================================
# Pressuposições da análise de variância
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
residuo<-anava$residuals
shapiro.test(residuo)
27
Análise de Variância

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
bartlett.test(residuo, trat)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de independência dos erros
library(lmtest)
dwtest(alt~trat, data=dados, alternative="two.sided")

28
Análise de Variância

d) DBC com tratamento qualitativo


Pacote necessário: ExpDes.pt, lmtest, asbio

#=======================================================================
# Análise de variância de experimentos no DBC com tratamento qualitativo, considerando o
# modelo fixo
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo5.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Boxplot de cada tratamento
plot(prod~trat, xlab="Tratamentos", ylab="Produção", col="gray", data=dados)

#=======================================================================
# Anava e testes de médias com o pacote ExpDes.pt
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava e teste de Scott-Knott com o pacote ExpDes.pt
attach(dados)
library(ExpDes.pt)
dbc(trat, bloco, prod, quali=TRUE, mcomp="sk")

#=======================================================================
# Anava com a função lm
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm
str(dados)
dados$bloco<-as.factor(dados$bloco)
str(dados)
anava<-lm(prod~bloco+trat, data=dados)
anova(anava)

#=======================================================================
# Pressuposições da análise de variância
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
residuo<-anava$residuals
shapiro.test(residuo)

29
Análise de Variância

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
bartlett.test(residuo, trat)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de independência dos erros
library(lmtest)
dwtest(prod~bloco+trat, data=dados, alternative="two.sided")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de aditividade do modelo
library(asbio)
tukey.add.test(prod, trat, bloco)

30
Análise de Variância

e) DBC com tratamento quantitativo e ajuste de regressão linear


Pacote necessário: ExpDes.pt, lmtest, asbio

#=======================================================================
# Análise de variância de experimentos no DBC com tratamento quantitativo e ajuste de
# regressão linear, considerando o modelo fixo
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo6.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Boxplot de cada tratamento
boxplot(peso~dose, xlab="Doses", ylab="Peso", col="lightblue", data=dados)

#=======================================================================
# Anava e testes de médias com o pacote ExpDes.pt
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava e regressão polinomial com o pacote ExpDes.pt
attach(dados)
library(ExpDes.pt)
dbc(dose, bloco, peso, quali = FALSE)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Médias dos tratamentos
media<-aggregate(peso~dose, data=dados, mean)
media

#=======================================================================
# Regressão linear com a função lm
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Ajuste de equação de 1 grau
linear<-lm(peso~dose, data=dados)
summary(linear)
anova (linear)
cf<-as.numeric(coef(linear))
cf

#=======================================================================
# Anava com a função lm
#=======================================================================

31
Análise de Variância

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm
str(dados)
dados$dose<-as.factor(dados$dose)
dados$bloco<-as.factor(dados$bloco)
str(dados)
anava<-lm(peso~bloco+dose, data=dados)
anova(anava)

#=======================================================================
# Pressuposições da análise de variância
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
residuo<-anava$residuals
shapiro.test(residuo)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
bartlett.test(residuo~dose)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de independência dos erros
library(lmtest)
dwtest(peso~bloco+dose, data=dados, alternative="two.sided")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de aditividade do modelo
library(asbio)
tukey.add.test(peso, dose, bloco)

Observação 1: No pacote ExpDes.pt, caso haja algum fator quantitativo, deve ser informado
como o código FALSE em quali = c(TRUE, FALSE). O pacote ajusta modelos de regressão
polinomial para esse fator.
Observação 2: Para o teste de homogeneidade de variância, como se utilizou a função lm, foi
necessário a modificação de dose e bloco para fator visando a obtenção da análise de
variância. Convém lembrar que para a execução do pacote ExpDes.pt, dose não pode ser do
tipo fator e sim do tipo numérico para ajuste da regressão.

32
Análise de Variância

f) DBC com tratamento quantitativo e ajuste de regressão quadrática


Pacote necessário: ExpDes.pt, lmtest, asbio

#=======================================================================
# Análise de variância de experimentos no DBC com tratamento quantitativo e ajuste de
# regressão quadrática, considerando o modelo fixo
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo7.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Boxplot de cada tratamento
boxplot(altura~dose, xlab="Doses", ylab="Altura", col="lightblue", data=dados)

#=======================================================================
# Anava e testes de médias com o pacote ExpDes.pt
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava e regressão polinomial com o pacote ExpDes.pt
attach(dados)
library(ExpDes.pt)
dbc(dose, bloco, altura, quali = FALSE)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Médias dos tratamentos
media<-aggregate(altura~dose, data=dados, mean)
media

#=======================================================================
# Regressão linear com a função lm
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Ajuste de equação 2 grau
quad<-lm(altura~(dose+I(dose^2)))
summary(quad)
anova(quad)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do nível ótimo
cf<-as.numeric(coef(quad))
cf
otimo<-(-cf[2]/(2*cf[3]))
33
Análise de Variância

otimo

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do valor máximo estimado
vmax<- cf[1] + cf[2]*otimo + cf[3]*otimo^2
vmax

#=======================================================================
# Anava com a função lm
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm
str(dados)
dados$dose<-as.factor(dados$dose)
dados$bloco<-as.factor(dados$bloco)
str(dados)
anava<-aov(altura~bloco+dose, data=dados)
anova(anava)

#=======================================================================
# Pressuposições da análise de variância
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
residuo<-anava$residuals
shapiro.test(residuo)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
bartlett.test(residuo~dose)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de independência dos erros
library(lmtest)
dwtest(altura~bloco+dose, data=dados, alternative="two.sided")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de aditividade do modelo
library(asbio)
tukey.add.test(altura, dose, bloco)

34
Análise de Variância

g) DQL com tratamento qualitativo


Pacote necessário: ExpDes.pt, lmtest

#=======================================================================
# Análise de variância de experimentos no DQL com tratamento qualitativo, considerando o
# modelo fixo
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table ("exemplo8.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Boxplot de cada tratamento
plot(cm~racao, xlab="Rações", ylab="Consumo médio", col="lightblue", data=dados)

#=======================================================================
# Anava e teste de médias com o pacote ExpDes.pt
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava e teste de comparações de médias de Scott-Knott
attach(dados)
library(ExpDes.pt)
dql(racao, periodo, animal, cm, quali=TRUE, mcomp="sk")

#=======================================================================
# Anava com a função lm
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm
str(dados)
dados$periodo<-as.factor(dados$periodo)
dados$animal<-as.factor(dados$animal)
str(dados)
anava<-lm(cm~periodo+animal+racao, data=dados)
anova(anava)

#=======================================================================
# Pressuposições da análise de variância
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
residuo<-anava$residuals

35
Análise de Variância

shapiro.test(residuo)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
bartlett.test(residuo~racao)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de independência dos erros
library(lmtest)
dwtest(cm~periodo+animal+racao, data=dados, alternative="two.sided")

36
Análise de Variância

h) Fatorial duplo em DIC (dois fatores qualitativos)


Pacote necessário: ExpDes.pt, lmtest

#=======================================================================
# Análise de variância de experimentos no DIC em esquema fatorial, com dois fatores
# qualitativos, considerando o modelo fixo
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table ("exemplo9.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Boxplot de cada tratamento
par(mfrow=c(1, 2))
boxplot(prod~var, xlab="Variedades", ylab="Produção", col="gray", data=dados)
boxplot(prod~met, xlab="Métodos", ylab="Produção", col="gray", data=dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização gráfica da interação
attach(dados)
x11()
interaction.plot(var, met, prod, xlab="Variedades", ylab="Produção", col=1:3)
x11()
interaction.plot(met, var, prod, xlab="Métodos", ylab="Produção", col=1:4)

#=======================================================================
# Anava e teste de médias com o pacote ExpDes.pt
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava e teste de comparações de médias
attach(dados)
library(ExpDes.pt)
fat2.dic(var, met, prod, quali = c(TRUE, TRUE), mcomp="tukey", fac.names = c("Variedades",
"Métodos"))

#=======================================================================
# Anava com a função lm
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm
anava<-lm(prod~var*met)
anova(anava)

37
Análise de Variância

#=======================================================================
# Pressuposições da análise de variância
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
residuo<-anava$residuals
shapiro.test(residuo)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de independência dos erros
library(lmtest)
dwtest(prod~var*met, data=dados, alternative="two.sided")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
residuo<-anava$residuals
bartlett.test(residuo, var)
bartlett.test(residuo, met)

Observação 1: Caso haja algum fator quantitativo deve ser informado como o código FALSE
em quali = c(TRUE, FALSE). O pacote ajusta modelos de regressão polinomial para esse fator.

38
Análise de Variância

i) Fatorial duplo em DBC (fator qualitativo e fator quantitativo)


Pacote necessário: ExpDes.pt, lmtest

#=======================================================================
# Análise de variância de experimentos no DBC em esquema fatorial, com um fator
# qualitativo e um fator quantitativo, considerando o modelo fixo
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table ("exemplo10.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Boxplot de cada tratamento
par(mfrow=c(1, 2))
boxplot(prod~acess, xlab="Acessos", ylab="Produção", col="lightblue", data=dados)
boxplot(prod~dose, xlab="Doses", ylab="Produção", col="lightblue", data=dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização gráfica da interação
attach(dados)
x11()
interaction.plot(acess, dose, prod, xlab="Acessos", ylab="Produção", col=1:4)
x11()
interaction.plot(dose, acess, prod, xlab="Doses", ylab="Produção", col=1:2)

#=======================================================================
# Anava, teste de média e regressão com o pacote ExpDes.pt
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com teste de Tukey e regressão polinomial
attach(dados)
library(ExpDes.pt)
fat2.dbc(acess, dose, bloco, prod, quali = c(TRUE, FALSE), mcomp="tukey",
fac.names=c("Acessos", "Doses"))

#-----------------------------------------------------------------------------------------------------------------------------
-
# Médias dos tratamentos
media<-aggregate(prod~dose*acess, data=dados, mean)
media

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do nível ótimo para o modelo quadrático

39
Análise de Variância

otimo<-(-0.13568750/(2*-0.00092575))
otimo

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do valor máximo estimado para o modelo quadrático
vmaxq<- 48.75687500 + 0.13568750*otimo + -0.00092575 *otimo^2
vmaxq

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do valor máximo estimado para o modelo linear
vmaxl<- 45.781500 + 0.044805*150
vmaxl

#=======================================================================
# Anava com a função lm
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm
str(dados)
dados$dose<-as.factor(dados$dose)
dados$bloco<-as.factor(dados$bloco)
str(dados)
anava<-lm(prod~bloco+acess*dose, data=dados)
anova(anava)

#=======================================================================
# Pressuposições da análise de variância
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
residuo<-anava$residuals
shapiro.test(residuo)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
bartlett.test(residuo, acess)
bartlett.test(residuo, dose)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de independência dos erros
library(lmtest)
dwtest(prod~ bloco+acess*dose, data=dados, alternative="two.sided")

40
Análise de Variância

j) Parcela subdividida no espaço em DBC (parcela com fator qualitativo e


subparcela com fator quantitativo)
Pacote necessário: ExpDes.pt, lmtest

#=======================================================================
# Análise de variância de experimentos no DBC em esquema de parcela subdividida, com um
# fator qualitativo na parcela e um fator quantitativo na subparcela, considerando o modelo fixo
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table ("exemplo11.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Boxplot de cada tratamento
par(mfrow=c(1, 2))
boxplot(altura~cult, xlab="Cultivares", ylab="Altura", col="lightblue", data=dados)
boxplot(altura~niv, xlab="Níveis", ylab="Altura", col="lightblue", data=dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização gráfica da interação
attach(dados)
x11()
interaction.plot(cult, niv, altura, xlab="Cultivares", ylab="Altura", col=1:4)
x11()
interaction.plot(niv, cult, altura, xlab="Níveis", ylab="Altura", col=1:3)

#=======================================================================
# Anava, teste de média e regressão com o pacote ExpDes.pt
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com teste de Tukey e regressão polinomial
attach(dados)
library(ExpDes.pt)
psub2.dbc(cult, niv, bloco, altura, quali = c(TRUE, FALSE), mcomp="tukey", fac.names =
c("Cultivar", "Niveis"), sigT=0.05, sigF=0.05)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do valor máximo estimado
vmaxA<- 1.06850000 + -0.00204167*12 + 0.00276042*12^2
vmaxA
vmaxB<- 1.06866667 + 0.01841667*12
vmaxB
vmaxC<- 1.08733333 + 0.01308333*12

41
Análise de Variância

vmaxC

#=======================================================================
# Anava com a função aov
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função aov
str(dados)
dados$niv<-as.factor(dados$niv)
dados$bloco<-as.factor(dados$bloco)
str(dados)
anava<-aov(altura~bloco+cult + Error(bloco*cult) + niv + cult*niv, data=dados)
summary(anava)

#=======================================================================
# Pressuposições da análise de variância
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
anava1<-lm(altura~bloco+cult+bloco*cult+niv+cult*niv, data=dados)
residuo<-anava1$residuals
shapiro.test(residuo)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
bartlett.test(residuo, cult)
bartlett.test(residuo, niv)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de independência dos erros
library(lmtest)
dwtest(altura~bloco+cult+bloco*cult+niv+cult*niv, data=dados, alternative="two.sided")

(em desenvolvimento)

ps <- expand.grid(BL=c("I", "II", "III", "IV"),


ES=c("e1", "e2"),
AD=c("a1", "a2", "a3"))
ps$alt <- c(58,77,38,52,44,59,30,34,85,90,73,77,
59,68,45,55,66,93,67,64,54,75,53,48)
str(ps)

## modelo para experimento de parcelas subsdividas


m0 <- aov(alt~BL+AD*ES+Error(BL:AD), data=ps)

## criando o fator parcela fora da aov


ps$parcela <- with(ps, interaction(BL, AD))

## mesmo modelo
m1 <- aov(alt~BL+AD*ES+Error(parcela), data=ps)

## a mesma anova
summary(m0)

42
Análise de Variância

summary(m1)

a <- model.matrix(~BL:AD, ps)


dim(a)
b <- model.matrix(~parcela, ps)
dim(b)

43
Análise de Variância

k) Parcela subsubdividida no espaço em DBC


Pacote necessário: ExpDes.pt, lmtest

(em desenvolvimento)

da <- expand.grid(bloc=gl(4,1), A=gl(3,1), B=gl(4,1), C=gl(2,1))


da
da$y <- rnorm(nrow(da), 100, 1)
da
str(da)
da <- transform(da, parc=interaction(bloc, A), subp=interaction(bloc, A, B))
da
str(da)
m0 <- aov(y~bloc+A*B*C+Error(bloc:A/B), data=da)
summary(m0)
m0 <- aov(y~bloc+A*B*C+Error(bloc:A+bloc:A:B), data=da)
summary(m0)
m0 <- aov(y~bloc+A*B*C+Error(parc/B), data=da)
summary(m0)
m0 <- aov(y~bloc+A*B*C+Error(parc+subp), data=da)
summary(m0)
m0 <- aov(y~bloc+A*B*C+Error(parc/subp), data=da)
summary(m0)

44
Análise de Variância

l) Fatorial triplo em DBC (três fatores qualitativos)


Pacote necessário: ExpDes.pt, lmtest

#=======================================================================
# Análise de variância de experimentos no DBC em esquema fatorial, com três fatores
# qualitativos, considerando o modelo fixo
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table ("exemplo12.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Boxplot de cada tratamento
par(mfrow=c(1, 3))
boxplot(alt~cult, xlab="Cultivares", ylab="Altura", col="gray", data=dados)
boxplot(alt~met, xlab="Métodos", ylab="Altura", col="gray", data=dados)
boxplot(alt~trat, xlab="Tratamentos", ylab="Altura", col="gray", data=dados)

#=======================================================================
# Anava e testes de médias com o pacote ExpDes.pt
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava e teste de Tukey com o pacote ExpDes.pt
attach(dados)
library(ExpDes.pt)
fat3.dbc(cult, met, trat, bloco, alt, quali = c(TRUE, TRUE, TRUE), mcomp="tukey", fac.names =
c("Cultivares", "Métodos", "Tratamentos"), sigT=0.05, sigF=0.05)

#=======================================================================
# Anava com a função lm
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm
str(dados)
dados$bloco<-as.factor(dados$bloco)
dados$cult<-as.factor(dados$cult)
dados$met<-as.factor(dados$met)
dados$trat<-as.factor(dados$trat)
str(dados)
anava<-lm(alt~bloco+cult*met*trat, data=dados)
anova(anava)

45
Análise de Variância

#=======================================================================
# Pressuposições da análise de variância
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
residuo<-anava$residuals
shapiro.test(residuo)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
bartlett.test(residuo, cult)
bartlett.test(residuo, met)
bartlett.test(residuo, trat)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de independência dos erros
library(lmtest)
dwtest(alt~bloco+cult*met*trat, data=dados, alternative="two.sided")

46
Análise de Variância

m) Fatorial duplo com um tratamento adicional em DIC (fator qualitativo e fator


quantitativo)
Pacote necessário: ExpDes.pt

#=======================================================================
# Análise de variância de experimentos no DIC em esquema fatorial com um tratamento
# adicional, com um fator qualitativo e um fator quantitativo, considerando o modelo fixo
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados do fatorial
dados<-read.table ("exemplo13.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados com as observações do tratamento adicional
dadosAd <- scan ("exemplo13Ad.txt", dec=",")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização do arquivo
dadosAd

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava e teste de comparações de médias
attach(dados)
library(ExpDes.pt)
fat2.ad.dic (inoc, biod, rep, mfresca, dadosAd, quali = c(TRUE, FALSE), mcomp="tukey",
fac.names = c("Inóculo", "Biodiesel"), sigT=0.05, sigF=0.05)

Observação 1: O arquivo de dados deve conter apenas as observações relativas aos


tratamentos do fatorial (exemplo13.txt). Deve-se criar um arquivo separado apenas com as
observações do tratamento adicional (exemplo13Ad.txt).
Observação 2: Para importar o arquivo com as observações do tratamento adicional
(exemplo9Ad.txt) foi usado o comando scan para criar o objeto no formato de vetor numérico e
não no formato data frame.

47
Análise de Variância

n) Delineamento em blocos aumentados


Pacote necessário: easyanova, agricolae

#=======================================================================
# Análise de variância de experimentos no delineamento em blocos aumentados com o pacote
# easyanova
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados do fatorial
dados<-read.table ("exemplo14.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Análise de variância, médias ajustadas e teste para as médias ajustadas
library(easyanova)
dba<-ea1(dados, design=8)
dba

#=======================================================================
# Análise de variância de experimentos no delineamento em blocos aumentados com o pacote
# agricolae
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Médias ajustadas, erros padrões e teste para as médias ajustadas
library(agricolae)
dba<-DAU.test(dados$bloco, dados$trat, dados$prod, method="tukey", group=TRUE)
dba

48
Análise de Variância

2. Análise de variância para modelos mistos


Pacote necessário: nlme

(em desenvolvimento)

49
Análise de Variância

3. Transformação de dados
Pacotes necessários: MASS

#=======================================================================
# Transformação de dados usando Box-Cox (1964)
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo15.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava com a função lm
anava<-lm(alt~trat, data=dados)
anova(anava)
residuo<-anava$residuals

#-----------------------------------------------------------------------------------------------------------------------------
-
# Histograma, densidade de probabilidade e curva normal
hist(residuo, main=NULL, xlab="Resíduos", ylab="Frequência", col="gray", prob=TRUE)
lines(density(residuo), col="red")
curve(expr = dnorm(x,mean=mean(residuo),sd=sd(residuo)),add=T, col="blue")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
shapiro.test(residuo)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
attach(dados)
bartlett.test(residuo, trat)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Verossimilhança do parâmetro 
library(MASS)
x11()
boxcox(alt~trat, data=dados, plotit=T)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Localizar coordenadas do ponto de máximo da função (colocar o cursor “+” no ponto de
# interceptação da linha pontilhada do pico da curva, clicar com o botão esquerdo do mouse,
#em seguida clicar com o botão direito e clicar em “Parar”)
locator()

50
Análise de Variância

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção dos dados transformados
dados$altt<-(dados$alt^(-0.22)-1)/-0.22

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava dos dados transformados
anavat<-lm(altt~trat, data=dados)
anova(anavat)
residuot<-anavat$residuals

#-----------------------------------------------------------------------------------------------------------------------------
-
# Histograma, densidade de probabilidade e curva normal
x11()
hist(residuot, main=NULL, xlab="Resíduos", ylab="Frequência", col="gray", prob=TRUE)
lines(density(residuot), col="red")
curve(expr = dnorm(x,mean=mean(residuot),sd=sd(residuot)),add=T, col="blue")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade dos erros
shapiro.test(residuot)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de homogeneidade de variância
bartlett.test(residuot, trat)

51
Regressão Linear e Não-Linear

Genética Quantitativa

1. Interação genótipos por ambientes

a) Análise conjunta para grupos de experimentos


Pacotes necessários: lattice, agricolae
(em desenvolvimento)
# ANÁLISE CONJUNTA - (P/ MODELO FIXO)
# ==================================
exp1 <- read.table (file="C:/Users/Joao/Desktop/Estat_Experim_I
(2015)/An_conj_fat.csv", sep=",",
header=TRUE,colClasses=c("factor","factor","factor","numeric") )
#Nota: Identificar todos os blocos sequencialmente (Ex. Local1:
1,2,3,4; Local2: 5,6,7,8; etc.)
exp1
head(exp1)
class(exp1)
str(exp1)
names(exp1)
summary(exp1)
attach(exp1)
is.numeric(PROD)
is.factor(LOCAL)
is.factor(BL_LOC)
is.factor(GENOT)
plot(exp1)
hist(PROD)
boxplot(PROD)
plot(PROD ~ GENOT)
interaction.plot(LOCAL, GENOT, PROD)

# ANÁLISE DE VARIÂNCIA CONJUNTA (Modelo Fixo)

modelo1 <- aov(PROD ~ LOCAL+LOCAL/BL_LOC+GENOT+GENOT*LOCAL, data=exp1)


anova(modelo1)
# A opção "aov" somente presta-se para conjuntos de dados balanceados

modelo2 <- lm(PROD ~ LOCAL+LOCAL/BL_LOC+GENOT+GENOT*LOCAL, data=exp1)


anova(modelo2)
# A opção "lm" é mais geral para modelos fixos (acomoda
desbalanceamento)

# Para modelos mistos (ex. Tratamentos e/ou Locais aleatórios),


# deve-se buscar outras funções do R (ex. lme, lme4, lmer ...).

52
Regressão Linear e Não-Linear

b) Análise de adaptabilidade e estabilidade


Pacotes necessários: lattice, agricolae

(em desenvolvimento)

SCRIPT ANAVA E TESTE DE MÉDIA

dados <- read.table('DFPC_ano2.txt', h=T, sep = '\t', dec=',')


head(dados)
require(lattice)
xyplot(dg~Genotipo|Local, groups=Ano, data=dados, type="o")
str(dados)
names(dados)
levels(dados$Genotipo)
levels(factor(dados$Ano))
levels(factor(dados$Local))
levels(factor(dados$dia))

require(ExpDes.pt)
with(dados, fat3.dbc(fator1=Genotipo, fator2=Ano,
fator3=Local, bloco=Bloco,
resp=dg, quali = c(TRUE, TRUE, TRUE),
mcomp = 'sk'),
fac.names = c("Genotipo", "Ano", "Local"),
sigT = 0.05, sigF = 0.05)

fat3.dbc(Local, Ano, Genotipo, bloco, dg, quali = c(TRUE, FALSE,


TRUE), mcomp = "sk",
fac.names = c("Local", "Ano", "Genotipo"), sigT = 0.05, sigF = 0.05)

######################################
#########análise de variância##################
####################################

dadosA <- read.table("DFPC_ano2.txt", header=TRUE, sep="", dec=".",


strip.white=TRUE)
dadosA$Local<-as.factor(dadosA$Local)
dadosA$Ano<-as.factor(dadosA$Ano)
dadosA$Genotipo<-as.factor(dadosA$Genotipo)
dadosA$bloco<-as.factor(dadosA$bloco)
dadosA$dia<-as.factor(dadosA$dia)
str(dadosA)

library(agricolae)

quatro fatores#

g <-aov (dg ~ Ano*Local*Genotipo*dia + bloco, data = dadosA)


anova (g)

três fatores#
g1 <-aov (dg ~ Ano*Local*Genotipo + bloco, data = dadosA)
anova (g1)

53
Regressão Linear e Não-Linear

teste de médias#
HSD.test(g,"Ano", group=TRUE,console=TRUE)
HSD.test(g,"Local", group=TRUE,console=TRUE)
HSD.test(g,"Genotipo", group=TRUE,console=TRUE)

SCRIPT ADAPTABILIDADE E ESTABILIDADE AMMI E GGE

##########################################################
############### Análises GGE BIPLOT ######################
##########################################################

library(MASS)
library(GGEBiplotGUI)

rm(list=ls())

############
### PTR ####
############
setwd("C:\\Users\\juraci.filho\\Desktop\\Nova pasta")
dir()
PTR<-read.table("Ms_gge.txt",header=TRUE, sep="", na.strings="NA",
dec=".", strip.white=TRUE)
PTR
summary(PTR)
ds<-GGEBiplot(PTR)

PTR[1]<-NULL
acpcor <- prcomp(PTR, scale = TRUE)
acpcor

acpcor <- prcomp(PTR, scale = TRUE, retx = TRUE)

######################################################################
##########################
############## Análise AMMI - Adaptabilidade e Estabilidade de
Genótipos elites ################
######################################################################
##########################

library(agricolae)
data(plrv)
head(plrv)

rm(list=ls())
ls()
juraci3<-read.table("C:\\Users\\juraci.filho\\Desktop\\Nova pasta\\
amido1_Biplot.txt",header=TRUE, sep="", na.strings="NA", dec=".",
strip.white=TRUE)
juraci3[,1:3]<-NULL
head(juraci3)
summary(juraci3)
juraci3$env<-as.factor(juraci3$env)
juraci3$bloc<-as.factor(juraci3$bloc)

54
Regressão Linear e Não-Linear

########################################################
###### Produtividade Total de Raízes ###################
########################################################

ammi<- with(juraci3,AMMI(env, gen, bloc, amido, console=FALSE))


ammi
ammi$ANOVA

plot(ammi)

plot(ammi, type=2, number=TRUE)

plot(ammi, first=0, second=1, number=FALSE)

55
Regressão Linear e Não-Linear

Regressão Linear e Não-Linear

1. Regressão linear

a) Regressão segmentada
Pacotes necessários: easynls

#=======================================================================
# Regressão segmentada (linear response plateau)
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Entrada dos dados
idade<-c(8,12,24,36,48,60,72,84,96,108)
peso<-c(280,340,430,480,550,580,590,600,590,600)
dados<-data.frame(idade, peso)
dados

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de dispersão
plot(peso~idade, xlab="Idade", ylab="Peso", data= dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Ajuste da regressão segmentada
library(easynls)
nlsfit(dados, model=3)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de regressão segmentada pelo pacote easynls
x11()
nlsplot(dados, model=3, xlab="Idade", ylab="Peso", position=1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de regressão segmentada
x11()
cf<-c(592.0000, 6.3873, 53.1548, 0.9869)
plot(peso~idade, xlab="Idade", ylab="Peso", data= dados)
curve((cf[1]+cf[2]*(x-cf[3])*(x<=cf[3])), min(idade), max(idade), col="blue", lwd=1, add=T)
abline(v=cf[3], col="gray")
text(70,440,label=substitute (hat(y)==a+b%.%x~~(x<c), list(a=(cf[1]-cf[2]*cf[3]), b=cf[2],
c=cf[3])))
text(70, 420, label=substitute (hat(y)==a~~(x>c), list(a=cf[1], c=cf[3])))
text(70, 400, label=substitute (R^2==d, list(d=cf[4])))

56
Regressão Linear e Não-Linear

57
Análise Multivariada

Análise Multivariada

1. Análise de agrupamento

a) Análise de agrupamento para variáveis quantitativas sem repetição


Pacotes necessários: cluster, NbClust, ade4, agricolae, factoextra

#=======================================================================
# Análise de agrupamento para variáveis quantitativas sem repetição utilizando como medida
# de dissimilaridade a distância euclidiana e método de agrupamento UPGMA
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo17.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do nome dos elementos a serem agrupados
row.names(dados) <- as.character(dados$acessos)
dados$acessos <- NULL
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de distância
library(cluster)
mdiss<-daisy(dados, metric="euclidean", stand=TRUE)
mdiss
min(mdiss)
max(mdiss)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização gráfica da matriz de dissimilaridade
library(factoextra)
fviz_dist(mdiss, gradient = list(low = "red", mid = "white", high = "blue"))

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de agrupamento a partir do método UPGMA
magrup<-hclust(mdiss, method="average")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do coeficiente de correlação cofenético com teste de Mantel
library(ade4)

58
Análise Multivariada

mcof<-cophenetic(magrup)
mantel.rtest(mdiss, mcof, nrepet = 1000)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do número ótimo de grupos pelo pacote NbClust
library(NbClust)
bnc<-NbClust(mdiss, min.nc=2, max.nc=9, method="average", index = "pseudot2")
bnc$Best.nc

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição dos acessos dentro de cada grupo considerando número de grupos k = 3
cutree(magrup, k=3)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Dendrograma com ponto de corte
x11()
plot(magrup, xlab="Acessos", ylab="Distância de ligação", cex=0.9, hang=-1, main=NULL,
sub=" ", yaxt="n")
axis(2, at=seq(0, 7, by=1))
abline(h=3.9, col="blue", lty=2)
text(1.3, 3.55, "G1", col="blue")
text(3.7, 3.55, "G2", col="blue")
text(8.8, 3.55, "G3", col="blue")
abline(h=0)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Dendrograma com retângulos nos grupos formados
x11()
plot(magrup, xlab="Acessos", ylab="Distância de ligação", cex=0.9, hang=-1, main=NULL,
sub=" ", yaxt="n")
axis(2, at=seq(0, 7, by=1))
rect.hclust(magrup, k=3, border=c("red", "blue", "darkgreen"))
text(1.3, 4.3, "G1", col="red")
text(4.5, 4.3, "G2", col="blue")
text(9, 4.3, "G3", col="darkgreen")
abline(h=0)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Dendrograma com bootstrap
library(agricolae)
x11()
consensus(scale(dados), distance="euclidean", method="average", nboot=500,
duplicate=TRUE, xlab="Acessos", ylab="Distância de ligação", cex.text=1.2, col.text="red",
hang=-1, main=NULL, sub=" ", yaxt="n")
axis(2, at=seq(0, 7, by=1))
abline(h=0)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Análise de agrupamento pelo método k-means
require(factoextra)
x11()
agrup<-eclust(dados, k = 3, stand=TRUE)

59
Análise Multivariada

Observação 1: No comando NbClust, o max.nc é o número de elementos a serem agrupados


menos um (n – 1). Os seguintes métodos podem ser usados (index=): "kl", "ch", "hartigan",
"ccc", "scott", "marriot", "trcovw", "tracew", "friedman", "rubin", "cindex", "db", "silhouette",
"duda", "pseudot2", "beale", "ratkowsky", "ball", "ptbiserial", "gap", "frey", "mcclain", "gamma",
"gplus", "tau", "dunn", "hubert", "sdindex", "dindex", "sdbw".

60
Análise Multivariada

b) Análise de agrupamento para variáveis quantitativas com repetição


Pacotes necessários: ade4, NbClust

#=======================================================================
# Análise de agrupamento para variáveis quantitativas com repetição utilizando como medida
# de dissimilaridade a distância de Mahalanobis e método de agrupamento UPGMA
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo19.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Matriz contendo as variáveis que serão analizadas
mvar<-as.matrix(dados[,3:ncol(dados)])
mvar

#-----------------------------------------------------------------------------------------------------------------------------
-
# Realização da Manova para obtenção da matriz de covariância residual (S)
dados$bloco<-as.factor(dados$bloco)
mav <- manova(mvar~bloco+acessos, data=dados)
quadro = summary(mav, test="Wilks")
glr<-df.residual(mav)
S<-quadro$SS$Residuals/glr
S

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção das médias dos tratamentos
macess <- aggregate(mvar, list(acessos=dados$acessos), mean)
row.names(macess) <- as.character(macess$acessos)
macess$acessos <- NULL
macess<- as.matrix(macess)
macess

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz D2 de Mahalanobis (mmahal) em função da matriz da média dos
# acessos (macess) e matriz de variância e covariância residual (S)
nla = numeric(0)
nlb = numeric(0)
acd = (nrow(macess)-1):1
acc=1:(nrow(macess)-1)
acc1=2:nrow(macess)
mmahal<-mat.or.vec(nrow(macess),nrow(macess))

61
Análise Multivariada

for(i in 1:length(acd)){
nla <- c(nla, rep( acc[i],each=acd[i] ))
nlb <- c(nlb, acc1[i]:nrow(macess) )
}
for(i in 1:length(nla)){
mmahal[nla[i], nlb[i]]<- t(macess[nla[i],] - macess[nlb[i],]) %*%solve(S)%*%
(macess[nla[i],] - macess[nlb[i],])
mmahal[nlb[i], nla[i]] <- mmahal[nla[i], nlb[i]]
}
mmahal

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de agrupamento a partir do método UPGMA
row.names(mmahal)<-row.names(macess)
mmahal<-as.dist(mmahal)
mmahal
magrup<-hclust(mmahal, method="average")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do coeficiente de correlação cofenético com teste de Mantel
library(ade4)
mcof<-cophenetic(magrup)
mantel.rtest(mmahal, mcof, nrepet = 1000)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do número ótimo de grupos pelo pacote NbClust
library(NbClust)
NbClust(macess, diss=mmahal, distance = NULL, min.nc=2, max.nc=9, method = "average",
index = "pseudot2")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Dendrograma com ponto de corte
plot(magrup, xlab="Acessos", ylab="Distância de ligação", cex=0.8, hang=-1, main=NULL,
yaxt="n", sub=" ")
abline(h=35, col="red")
axis(2, at=seq(0, 45, by=5))
abline(h=0)
text(2, 37, "G1", col="red")
text(7.4, 37, "G2", col="red")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Dendrograma com retângulos nos grupos formados
plot(magrup, yaxt="n", xlab="Acessos", ylab="Distância de ligação", cex=0.8, hang=-1,
main=NULL)
axis(2, at=seq(0, 45, by=5))
abline(h=0)
rect.hclust(magrup, k=2, border="red")

Observação 1: No comando NbClust, o max.nc é o número de elementos a serem agrupados


menos um (n – 1). Os seguintes métodos podem ser usados (index=): "kl", "ch", "hartigan",

62
Análise Multivariada

"ccc", "scott", "marriot", "trcovw", "tracew", "friedman", "rubin", "cindex", "db", "silhouette",
"duda", "pseudot2", "beale", "ratkowsky", "ball", "ptbiserial", "gap", "frey", "mcclain", "gamma",
"gplus", "tau", "dunn", "hubert", "sdindex", "dindex", "sdbw".

63
Análise Multivariada

c) Análise de agrupamento para variáveis qualitativas categóricas


Pacotes necessários: qlcMatrix, ade4, NbClust

#=======================================================================
# Análise de agrupamento para variáveis qualitativas utilizando como medida
# de dissimilaridade o complemento do coeficiente de similaridade e método de agrupamento
# UPGMA
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo18.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do nome dos elementos a serem agrupados
row.names(dados) <- as.character(dados$acessos)
dados$acessos <- NULL
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de distância
library(qlcMatrix)
msim <- sim.obs(dados)
mdiss<-(1-msim)
mdiss<-as.dist(mdiss)
mdiss

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de agrupamento a partir do método UPGMA
magrup<-hclust(mdiss, method="average")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do coeficiente de correlação cofenético com teste de Mantel
library(ade4)
mcof<-cophenetic(magrup)
mantel.rtest(mdiss, mcof, nrepet = 1000)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do número ótimo de grupos pelo pacote NbClust
library(NbClust)
bnc<-NbClust(mdiss, min.nc=2, max.nc=8, method="average", index = "pseudot2")
bnc$Best.nc

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição dos acessos dentro de cada grupo considerando número de grupos k = 2

64
Análise Multivariada

cutree(magrup, k=2)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Dendrograma com ponto de corte
plot(magrup, xlab="Acessos", ylab="Distância de ligação", cex=0.9, hang=-1, main=NULL,
sub=" ", yaxt="n")
axis(2, at=seq(0, 0.8, by=0.1))
abline(h=0.72, col="blue", lty=2)

65
Análise Multivariada

d) Análise de agrupamento para variáveis qualitativas binárias


Pacotes necessários: prabclus

#=======================================================================
# Análise de agrupamento para variáveis qualitativas binárias (0 e 1) utilizando como medida
# de dissimilaridade o complemento do índice de Jaccard e método de agrupamento UPGMA
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo20.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do nome dos elementos a serem agrupados
row.names(dados) <- as.character(dados$acessos)
dados$acessos <- NULL
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de distância
library(prabclus)
mdiss<-jaccard(t(dados))
mdiss<-as.dist(mdiss)
mdiss

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de agrupamento a partir do método UPGMA
magrup<-hclust(mdiss, method="average")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do coeficiente de correlação cofenético com teste de Mantel
library(ade4)
mcof<-cophenetic(magrup)
mantel.rtest(mdiss, mcof, nrepet = 1000)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do número ótimo de grupos pelo pacote NbClust
library(NbClust)
bnc<-NbClust(mdiss, min.nc=2, max.nc=9, method="average", index = "pseudot2")
bnc$Best.nc

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição dos acessos dentro de cada grupo considerando número de grupos k = 2
cutree(magrup, k=2)

66
Análise Multivariada

#-----------------------------------------------------------------------------------------------------------------------------
-
# Dendrograma com ponto de corte
plot(magrup, xlab="Acessos", ylab="Distância de ligação", cex=0.9, hang=-1, main=NULL,
sub=" ", yaxt="n")
axis(2, at=seq(0, 0.8, by=0.1))
abline(h=0.72, col="blue", lty=2)

67
Análise Multivariada

e) Análise de agrupamento para variáveis quantitativas e qualitativas


Pacotes necessários: StatMatch, cluster, ade4, NbClust, ClustOfVar, qlcMatrix

#=======================================================================
# Análise de agrupamento para variáveis quantitativas e qualitativas simultaneamente
# utilizando como medida de dissimilaridade a distância de Gower e método de agrupamento
# UPGMA
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo21.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do nome dos elementos a serem agrupados
row.names(dados) <- as.character(dados$acessos)
dados$acessos <- NULL
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Modificações das variáveis categóricas nominais para fator caso as mesmas estejam
# codificadas por números e tenham mais de duas classes
dados$cf<-as.factor(dados$cf)
dados$ff<-as.factor(dados$ff)
dados$cp<-as.factor(dados$cp)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de dissimilaridade conjunta pela distância de Gower
library(StatMatch)
mdisscj<-gower.dist(dados)
rownames(mdisscj)<-rownames(dados)
colnames(mdisscj)<-rownames(dados)
mdisscj

#-----------------------------------------------------------------------------------------------------------------------------
-
# Salvar a matriz de dissimilaridade conjunta em arquivo texto
write.table(mdisscj, "matriz dissimilaridade conjunta.txt", row.names=TRUE, col.names=TRUE)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de agrupamento a partir do método UPGMA
library(cluster)
mdisscj <-as.dist(mdisscj)
magrupcj<-hclust(mdisscj, method="average")

68
Análise Multivariada

#-----------------------------------------------------------------------------------------------------------------------------
-
# Coeficiente de correlação cofenético com teste de Mantel
library(ade4)
mcofcj<-cophenetic(magrupcj)
mantel.rtest(mdisscj, mcofcj, nrepet = 1000)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do número ótimo de grupos pelo pacote NbClust
library(NbClust)
mdisscj<-as.matrix(mdisscj)
bnc<-NbClust(mdisscj, min.nc=2, max.nc=9, method="average", index = "pseudot2")
bnc$Best.nc

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição dos acessos dentro de cada grupo considerando número de grupos k = 2
cutree(magrupcj, k=2)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Dendrograma com ponto de corte
plot(magrupcj, sub=" ", yaxt="n", xlab="Acessos", ylab="Distância de ligação", cex=0.8, hang=-
1, main=NULL)
axis(2, at=seq(0, 0.6, by=0.1))
abline(h=0.55, col="blue", lty=2)

#=======================================================================
# Análise de agrupamento para as variáveis quantitativas ([,1:3]) utilizando como medida de
# dissimilaridade a distância euclidiana e método de agrupamento UPGMA
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição das variáveis quantitativas
quant<-dados[,1:3]

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização das seis primeiras linhas do arquivo de dados
head(quant)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de dissimilaridade pela distância euclidiana
library(cluster)
mdissqt<-daisy(quant, metric="euclidean", stand=TRUE)
mdissqt

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de agrupamento a partir do método UPGMA
library(cluster)
magrupqt<-hclust(mdissqt, method="average")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Coeficiente de correlação cofenético com teste de Mantel
mcofqt<-cophenetic(magrupqt)

69
Análise Multivariada

mantel.rtest(mdissqt, mcofqt, nrepet = 1000)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Coeficiente de correlação entre a matriz de dissimilaridade conjunta e matriz
# de dissimilaridade quantitativa
mdisscj<-as.dist(mdisscj)
mantel.rtest(mdisscj, mdissqt, nrepet = 1000)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Coeficiente de correlação entre a matriz de agrupamento conjunta e matriz
# de agrupamento quantitativa
mantel.rtest(mcofcj, mcofqt, nrepet = 1000)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do número ótimo de grupos pelo pacote NbClust
library(NbClust)
mdissqt
bnc<-NbClust(as.matrix(mdquant), min.nc=2, max.nc=9, method="average", index =
"pseudot2")
bnc$Best.nc

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição dos acessos dentro de cada grupo considerando número de grupos k = 2
cutree(magrupqt, k=2)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Dendrograma com ponto de corte
plot(magrupqt, sub=" ", yaxt="n", xlab="Acessos", ylab="Distância de ligação", cex=0.8, hang=-
1, main=NULL)
axis(2, at=seq(0, 0.6, by=0.1))
abline(h=0.55, col="blue", lty=2)
abline(h=0)

#=======================================================================
# Análise de agrupamento para as variáveis qualitativas ([,4:6]) utilizando como medida de
# dissimilaridade o complemento do coeficiente de similaridade e método de agrupamento
UPGMA
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição das variáveis quantitativas
quali<-dados[,4:6]

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização das seis primeiras linhas do arquivo de dados
head(quali)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de distância
library(qlcMatrix)
msim <- sim.obs(quali)

70
Análise Multivariada

mdiss<-(1-msim)
mdiss<-as.dist(mdiss)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção da matriz de agrupamento a partir do método UPGMA
magrup<-hclust(mdiss, method="average")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do coeficiente de correlação cofenético com teste de Mantel
library(ade4)
mcof<-cophenetic(magrup)
mantel.rtest(mdiss, mcof, nrepet = 1000)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição do número ótimo de grupos pelo pacote NbClust
library(NbClust)
bnc<-NbClust(mdiss, min.nc=2, max.nc=8, method="average", index = "pseudot2")
bnc$Best.nc

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição dos acessos dentro de cada grupo considerando número de grupos k = 2
cutree(magrup, k=2)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Dendrograma com ponto de corte
plot(magrup, xlab="Acessos", ylab="Distância de ligação", cex=0.9, hang=-1, main=NULL,
sub=" ", yaxt="n")
axis(2, at=seq(0, 0.8, by=0.1))
abline(h=0.72, col="blue", lty=2)
Observação 1: Para a análise conjunta, no caso de variáveis qualitativas ordinais, as mesmas
devem ser transformadas para variáveis ordenáveis através do comando as.ordered. Para o
caso de variáveis qualitativas binárias (nominais ou ordinais) não é necessário a transformação
para nominal (as.factor) ou ordinal (as.ordered) pois a aplicação da fórmula de Gower para
variáveis quantitativas ou para qualitativas binárias conduzem ao mesmo resultado.

71
Análise Multivariada

2. Análise de componentes principais

a) Análise de componentes principais para variáveis quantitativas


Pacotes necessários: FactoMineR

#=======================================================================
# Análise de componentes principais
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo17.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Comando para definir nome dos elementos a serem agrupados
row.names(dados) <- as.character(dados$acessos)
dados$acessos <- NULL
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Análise de componentes principais
library(FactoMineR)
pca<-PCA(dados, scale.unit=TRUE, graph=TRUE, axes=c(1,2))

#-----------------------------------------------------------------------------------------------------------------------------
-
# Autovalores
pca$eig

#-----------------------------------------------------------------------------------------------------------------------------
-
# Peso das variáveis ou loadings
pca$var$coord

#-----------------------------------------------------------------------------------------------------------------------------
-
# Contribuição das variáveis
pca$var$contrib

#-----------------------------------------------------------------------------------------------------------------------------
-
# Peso dos indivíduos ou escores
pca$ind$coord

#-----------------------------------------------------------------------------------------------------------------------------
-

72
Análise Multivariada

# Autovetores e desvios padrões pela função prcomp


prcomp(dados, scale = TRUE)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Autovetores a partir da matriz de correlação e a função eigen
r<-cor(dados)
r
eigen(r)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico com escores e loadings
biplot(prcomp(dados, scale = TRUE))

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico dos loadings com contribuição das variáveis utilizando o pacote factoextra
library(factoextra)
x11()
fviz_pca_var(pca, col.var="contrib")

73
Análise Multivariada

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico dos indivíduos (loadings)utilizando o pacote factoextra
x11()
fviz_pca_ind(pca)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico com escores e loadings utilizando o pacote factoextra
x11()
fviz_pca_biplot(pca, geom = "text")

74
Análise Multivariada

#-----------------------------------------------------------------------------------------------------------------------------
-
# Análise de agrupamento a partir da análise de PCA
hc <- HCPC(pca, nb.clust=-1, consol=TRUE, iter.max=10, min=3,
max=NULL, metric="euclidean", method="average", order=TRUE,
graph.scale="inertia", nb.par=5, graph=TRUE, proba=0.05,
cluster.CA="rows", kk=Inf, description=TRUE)
hc

75
Análise Multivariada

b) Análise de componentes principais para variáveis quantitativas e qualitativas


Pacotes necessários: PCAmixdata

#=======================================================================
# Análise de componentes principais para variáveis quantitativas e qualitativas
# simultaneamente
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo21.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Comando para definir nome dos elementos
row.names(dados) <- as.character(dados$acessos)
dados$acessos <- NULL
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Definição dos arquivos de dados das variáveis quantitativas e qualitativas
quant<-dados[,1:3]
quant
quali<-dados[,4:10]
quali

#-----------------------------------------------------------------------------------------------------------------------------
-
# Modificação das variáveis qualitativas para fator por meio de função
str(quali)
for(i in 1:ncol(quali))
{
quali[,i]<-as.factor(quali[,i])
}
str(quali)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Análise de componentes principais para variáveis quantitativas e qualitativas
library(PCAmixdata)
pca<-PCAmix(quant, quali, ndim=4, rename.level=TRUE)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Autovalores, percentagem da variância e percentagem acumulada da variância
pca$eig

#-----------------------------------------------------------------------------------------------------------------------------
-

76
Análise Multivariada

# Escores dos indivíduos


pca$ind$coord

#-----------------------------------------------------------------------------------------------------------------------------
-
# Contribuição relativa das variáveis quantitativas
pca$quanti$contrib.pct

#-----------------------------------------------------------------------------------------------------------------------------
-
# Contribuição relativa das variáveis qualitativas
pca$quali$contrib.pct

#-----------------------------------------------------------------------------------------------------------------------------
-
# Contribuição relativa dos níveis das variáveis qualitativas
pca$levels$contrib.pct

#-----------------------------------------------------------------------------------------------------------------------------
-
# Quadrado dos pesos das variáveis ou loadings das variáveis quantitativas e qualitativas
pca$sqload

#-----------------------------------------------------------------------------------------------------------------------------
-
# Coeficientes das combinações lineares
pca$coef

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico biplot dos escores dos indivíduos e loadings das variáveis
x11()
biplot(pca$ind$coord, pca$sqload)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico dos escores dos indivíduos
x11()
plot(pca, choice="ind")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico dos loadings das variáveis
x11()
plot(pca, choice="sqload")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico dos loadings dos níveis
x11()
plot(pca, choice="levels")

77
Análise Multivariada

3. Análise de Fatores

a) Análise de fatores para variáveis quantitativas


Pacotes necessários: FactoMineR, psych, vegan

#=======================================================================
# Análise de fatores exploratória
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo22.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Comando para definir nome dos elementos
row.names(dados) <- as.character(dados$acessos)
dados$acessos <- NULL
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Matriz de correlação e autovetores da matriz de correlação
mcorr<-cor(dados)
mcorr
autovet<-eigen(mcorr)
autovet

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de autovalores em função dos componentes principais
cp<-prcomp(dados, scale=TRUE)
summary(cp)
autoval<-cp$sdev^2
autoval
plot(autoval, type="b", xlab="Componente principal", ylab="Autovalores", pch=20, cex.axis=1.3,
cex.lab=1.3)
abline(h=1, col="blue", lty=2) # Critério de Kaiser (λ>1)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de KMO para verificação da adequação da amostra por meio da verificação da
# variância que pode ser explicada pelas variáveis (ideal KMO > 0,8)
library(psych)
KMO(mcorr)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de esfericidade de Bartlett para verificação se a matriz de correlação é similar a uma

78
Análise Multivariada

# matriz identidade
cortest.bartlett(mcorr, nrow(dados))

#-----------------------------------------------------------------------------------------------------------------------------
-
# Análise de fatores
factanal(dados, factors=3)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Análise de fatores com o pacote psych
require(psych)
af<-fa(r=mcorr, nfactors=3, n.obs=nrow(dados), rotate="varimax")
af

#-----------------------------------------------------------------------------------------------------------------------------
-
# Escores
escores<-factanal(~dados$cf + dados$lf + dados$cp + dados$ap + dados$dc + dados$pf +
dados$df + dados$dcc + dados$pfs + dados$vc + dados$sst, factors=3, scores="Bartlett")
$scores
escores

79
Análise Multivariada

b) Análise de fatores para variáveis quantitativas e qualitativas


simultaneamente
Pacotes necessários: PCAmixdata

#=======================================================================
# Análise de fatores para variáveis quantitativas e qualitativas
# simultaneamente
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo21.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Comando para definir nome dos elementos
row.names(dados) <- as.character(dados$acessos)
dados$acessos <- NULL
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Análise de fatores para variáveis quantitativas e qualitativas
library(PCAmixdata)
mfa<-MFAmix

(em desenvolvimento)

80
Análise Multivariada

4. Análise de correspondência
Pacotes necessários:

81
Análise Multivariada

5. Análise discriminante

a) Análise discriminante de Mahalanobis


Pacotes necessários: biotools

#=======================================================================
# Análise discriminante de Mahalanobis
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo19.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Variáveis que serão analizadas
var<-dados[,3:ncol(dados)]
head(var)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Variáveis que codifica os grupos
grupo<-dados[,1]
head(grupo)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Análise discriminante
library(biotools)
adm<-D2.disc(data=var, grouping=grupo)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Distância das observações (D2) ao centro de cada grupo
adm$D2

#-----------------------------------------------------------------------------------------------------------------------------
-
# Média de cada grupo
adm$means

#-----------------------------------------------------------------------------------------------------------------------------
-
# Matriz de variâncias e covariâncias combinadas
adm$pooled

82
Análise Multivariada

#-----------------------------------------------------------------------------------------------------------------------------
-
# Matriz com as classificações corretas e incorretas
adm$confusion.matrix

83
Análise Multivariada

6. Análise de variância multivariada

a) Teste T2 de Hotelling para duas amostras


Pacotes necessários: Hotelling

#=======================================================================
# Teste T2 de Hotelling para duas amostras
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo23.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste T2 de Hotelling para duas amostras
library(Hotelling)
fit<-hotelling.test(.~gp, data=dados, perm=TRUE)
fit

#-----------------------------------------------------------------------------------------------------------------------------
-
# Histograma da distribuição do teste T2 de Hotelling
plot(fit, col = "lightblue")

84
Análise Multivariada

b) Análise de variância multivariada


Pacotes necessários: mvnormtest, biotools

#=======================================================================
# Análise de variância multivariada - MANOVA
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo19.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Matriz contendo as variáveis que serão analizadas
mvar<-as.matrix(dados[,3:ncol(dados)])
mvar

#-----------------------------------------------------------------------------------------------------------------------------
-
# Obtenção das médias dos tratamentos
macess <- aggregate(mvar, list(acessos=dados$acessos), mean)
row.names(macess) <- as.character(macess$acessos)
macess$acessos <- NULL
macess

#-----------------------------------------------------------------------------------------------------------------------------
-
# Realização da Manova
str(dados)
dados$bloco<-as.factor(dados$bloco)
mav <- manova(mvar~bloco+acessos, data=dados)
summary(mav, test="Pillai")
summary(mav, test="Wilks")
summary(mav, test="Hotelling-Lawley")
summary(mav, test="Roy")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Realização das análises de variância univariada
summary.aov(mav)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de normalidade multivariado de Shapiro-Wilks
library(mvnormtest)
shapiro.test(t(mav$residuals))

85
Análise Multivariada

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de M box para homogeneidade da matriz de variância e covariância
library(biotools)
mbox<-boxM(mvar,, grouping=dados$acessos)
mbox

#-----------------------------------------------------------------------------------------------------------------------------
-
# Contrastes para comparação dos acessos dois a dois
summary(manova(mvar~bloco+acessos, data=dados, subset=acessos %in% c("bga02",
"bga15")))
summary(manova(mvar~bloco+acessos, data=dados, subset=acessos %in% c("bga02",
"bga41")))
summary(manova(mvar~bloco+acessos, data=dados, subset=acessos %in% c("bga02",
"bga50")))
summary(manova(mvar~bloco+acessos, data=dados, subset=acessos %in% c("bga02",
"bga75")))
summary(manova(mvar~bloco+acessos, data=dados, subset=acessos %in% c("bga15",
"bga41")))
summary(manova(mvar~bloco+acessos, data=dados, subset=acessos %in% c("bga15",
"bga50")))
summary(manova(mvar~bloco+acessos, data=dados, subset=acessos %in% c("bga15",
"bga75")))
summary(manova(mvar~bloco+acessos, data=dados, subset=acessos %in% c("bga41",
"bga50")))
summary(manova(mvar~bloco+acessos, data=dados, subset=acessos %in% c("bga41",
"bga75")))
summary(manova(mvar~bloco+acessos, data=dados, subset=acessos %in% c("bga50",
"bga75")))

Observação 1: Para o teste de M Box, o número de observações para cada tratamento


(repetições) tem que ser maior que o número de variáveis (n > p).

86
Estatística Não-Paramétrica

Estatística Não-Paramétrica

1. Teste de qui-quadrado para dados de contagens

a) Análise de frequências

#=======================================================================
# Análise de frequências
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Criação do arquivo de dados
esp<-c("a"=35, "b"=17, "c"=15, "d"=23)
esp

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico das frequências
barplot(esp, xlab="Espécies", ylab="Frequência")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de qui-quadrado
qui<-chisq.test(esp)
qui

#-----------------------------------------------------------------------------------------------------------------------------
-
# Frequências esperadas
qui$expected

87
Estatística Não-Paramétrica

b) Teste de proporção para duas categorias

#=======================================================================
# Teste de proporção para duas categorias
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Criação do arquivo de dados
a<-matrix(c(12, 3), nc=2)
a
#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de qui-quadrado com correção de Yates
prop.test(a, correct=TRUE)

88
Estatística Não-Paramétrica

c) Teste de aderência

#=======================================================================
# Teste de aderência de dados para distribuição de Poisson
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Número de insetos
n<-c(0:6)
n

#-----------------------------------------------------------------------------------------------------------------------------
-
# Frequências observadas
oi<-c(3,12, 17, 13, 9, 3, 3)
oi
names(oi)<-c(n[-7], ">6")
oi

#-----------------------------------------------------------------------------------------------------------------------------
-
# Estimativa do lambda ()
lambda<-sum(oi*n)/sum(oi) # lambda<- weighted.mean(n, obs)
lambda

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo da probabilidade em função da distribuição de probabilidade de Poisson (p)
pi<-dpois(n[-7], lambda=lambda) # calcula p(n<=5)
pi<-c(pi, 1-sum(pi)) # calcula p(n>=0)
pi

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo da frequência esperada
ei<-pi*sum(oi)
ei

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do 2 calculado
x2<-sum((oi-ei)^2/ei)
x2

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do grau de liberdade
gl<-length(oi)-1-1
gl

#-----------------------------------------------------------------------------------------------------------------------------
-
# Valor p do teste de qui-quadrado
pc<-pchisq(x2, df=gl, lower.tail=FALSE)

89
Estatística Não-Paramétrica

pc

#-----------------------------------------------------------------------------------------------------------------------------
-
# Usando a função chis.test
chisq.test(oi, p=pi) # O grau de liberdade não considera a estimação de lamba

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de barras das frequências absolutas
barplot(oi, beside=TRUE, ylab="Frequência absoluta", xlab="Número de insetos", ylim=c(0, 20))
text(7, 18, substitute(italic(X)^2==x~~~~~~italic(valor-p)==P, list(x=round(x2, 2), P=round(pc,
2))))

90
Estatística Não-Paramétrica

2. Análise de variância não-paramétrica


Pacotes necessários: PMCMR

a) Um fator e dois grupos

#=======================================================================
# Teste de Mann-Whitney
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
#

#-----------------------------------------------------------------------------------------------------------------------------
-
#

#-----------------------------------------------------------------------------------------------------------------------------
-
#

91
Estatística Não-Paramétrica

b) Um fator e três ou mais grupos

#=======================================================================
# Teste de Kruskal-Wallis e teste de comparação múltipla de Nemenyi
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo25.txt", header=TRUE, dec=",")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização das seis primeiras linhas do arquivo
head(dados)

#=======================================================================
# Anava não-paramétrica e teste de médias
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava
kruskal.test(peso~factor(cultivo), data=dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de comparação múltipla de Nemenyi
library(PMCMR)
attach(dados)
posthoc.kruskal.nemenyi.test(peso~factor(cultivo), dist="Tukey")

Observação 1: O teste de Kruskal-Wallis é uma extensão do teste de Wilcoxon-Mann-Whitney.


Enquanto o teste não paramétrico de Wilcoxon-Mann-Whitney consiste em comparar a
distribuição de duas amostras, o teste de Kruskal-Wallis permite realizar a comparação de três
ou mais grupos em amostras independentes.
Observação 2: O teste de Kruskal-Wallis é o método não-paramétrico alternativo à anava para
um fator, sendo utilizado nos casos em que as suposições exigidas pela ANOVA não são
atendidas.
Observação 3: Para o teste de Kruskal-Wallis deve-se considerar apenas a suposição de que
as observações sejam independentes e que as variáveis sejam do tipo contínuas ou ordinais.

92
Estatística Não-Paramétrica

c) Dois fatores e três ou mais grupos no DBC balanceado

#=======================================================================
# Teste de Friedman e teste de comparação múltipla de Nemenyi
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo25.txt", header=TRUE, dec=",")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Visualização das seis primeiras linhas do arquivo
head(dados)

#=======================================================================
# Anava não-paramétrica e teste de médias
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Anava
Friedman.test(peso)=, data=dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Teste de comparação múltipla de Nemenyi
library(PMCMR)
attach(dados)
posthoc.kruskal.nemenyi.test(peso~factor(cultivo), dist="Tukey"))

Observação 1: O teste de Kruskal-Wallis é uma extensão do teste de Wilcoxon-Mann-Whitney.


Enquanto o teste não paramétrico de Wilcoxon-Mann-Whitney consiste em comparar a
distribuição de duas amostras, o teste de Kruskal-Wallis permite realizar a comparação de três
ou mais grupos em amostras independentes.

93
Criação e Edição de Gráficos

Criação e Edição de Gráficos

1. Criação de gráficos

a) Gráfico de dispersão
Pacotes necessários: ggplot2

#=======================================================================
# Gráfico de dispersão
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo24.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de dispersão entre duas variáveis
p<-ggplot(dados, aes(x=pc, y=dp))+
geom_point()

#----------------------------------------------------------------------------------------- ------------------------------------
# Gráfico de dispersão entre duas variáveis em função de cult
x11()
p<-ggplot(dados, aes(x=pc, y=dp, colour = cult))+
geom_point()

#----------------------------------------------------------------------------------------- ------------------------------------
# Gráfico de dispersão entre duas variáveis em função de resist
x11()
p<-ggplot(dados, aes(x=pc, y=dp, colour = resist))+
geom_point()

94
Criação e Edição de Gráficos

b) Gráfico de box-plot
Pacotes necessários: ggplot2

#=======================================================================
# Gráfico de box-plot
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo24.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de box-plot
library(ggplot2)
p<-ggplot(dados, aes(x=cult, y=pc))+
geom_boxplot(outlier.colour="red", outlier.shape=1)+
xlab("Cultivares")+
ylab("Peso do cacho")
#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de box-plot com cor no contorno mapeado por variável
x11()
p<-ggplot(dados, aes(x=cult, y=pc, colour=cult))+
geom_boxplot(outlier.colour="red", outlier.shape=1)+
xlab("Cultivares")+
ylab("Peso do cacho")+
labs(fill="Cultivares")+
theme(legend.position="right")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de box-plot com cor no preenchimento mapeado por variável
x11()
p<-ggplot(dados, aes(x=cult, y=pc, fill=cult))
p+geom_boxplot(outlier.colour="red", outlier.shape=1)
xlab("Cultivares")+
ylab("Peso do cacho")+
labs("Cultivares")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de box-plot com cor no contorno e preenchimento
x11()

95
Criação e Edição de Gráficos

p<-ggplot(dados, aes(x=cult, y=pc))


p+geom_boxplot(colour="red", fill="pink")
xlab("Cultivares")+
ylab("Peso do cacho")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de box-plot com dados observados
x11()
p+
geom_boxplot(fill="white", colour="black", outlier.colour="red", outlier.shape=1)+
geom_jitter()

96
Criação e Edição de Gráficos

c) Gráfico de barras
Gráfico: Figura 1

#=======================================================================
# Gráfico de barras
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo17.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de barplot
options(OutDec=",")
barplot<-barplot(dados$alt, ylab="Altura (cm)", names.arg=dados$acessos, las=2, axis.lty=1,
cex.names=0.8, ylim=c(0,5))
text(barplot, dados$alt+0.2, paste(dados$alt), cex=1)

Observação 1: Maiores detalhes ver em: https://www.statmethods.net/graphs/bar.html,


https://www.r-graph-gallery.com/barplot/

97
Criação e Edição de Gráficos

Figura 1. Gráfico de barras para os dados do exemplo 17.

98
Criação e Edição de Gráficos

d) Gráfico com modelo de regressão de efeito linear


Gráfico: Figura 2

#=======================================================================
# Gráfico de regressão com efeito linear
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo6.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo das médias dos tratamentos
medias<-aggregate(peso~dose, data=dados, mean)
medias

#-----------------------------------------------------------------------------------------------------------------------------
-
# Ajuste do modelo de equação linear
linear<-lm(peso~dose, data=medias)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Armazenamento das estimativas dos parâmetros e R2
cf<-as.numeric(c(coef(linear), summary(linear)$r.squared))

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de dispersão
options(digits=4, OutDec=",")
plot(peso~dose, pch=16, xlab=expression(Dose~(Kg.parcela^-1)), ylab="Peso (Kg)",
col="black", data=medias)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção da reta de ajuste
curve((cf[1] + cf[2]*x), 0, 8, col="blue", lwd=2, add=T)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção da legenda
legend("bottomright", legend=c("Valores observados", "Valores ajustados"), lty=c(NA, 1),
col=c("black","blue"), lwd=c(1,2), bty="n", pch=c(16, NA))

99
Criação e Edição de Gráficos

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção das caixas de texto com a equação e R2
text(2, 11.5, label=substitute (hat(y)==a+b%.%x, list(a=cf[1], b=cf[2], c=cf[3])))
text(2, 11, label=substitute (R^2==c, list(a=cf[1], b=cf[2], c=cf[3])))

Observação 1: No script acima o valor de R 2 (Figura 1) difere do R2 apresentado no item 1.c)


DBC com tratamento quantitativo e ajuste de modelo linear, apresentado pelo pacote
ExpDes.pt, pois o ajuste foi realizado para as observações. No pacote ExpDes.pt, o ajuste do
modelo é feito com relação às médias por se tratar de regressão na análise de variância.
Alguns estatísticos consideram esse R2 não adequado por não associar os desvios das
observações e sim das médias. Caso se deseje incluir no gráfico o R 2 em relação às médias, o
mesmo pode ser feito com o comando text(2, 11, "R2=85,63").

Figura 2. Equação de regressão quadrática para os dados do exemplo4.

100
Criação e Edição de Gráficos

101
Criação e Edição de Gráficos

e) Gráfico com modelo de regressão de efeito linear e intervalo de confiança


Gráfico: Figura 3

#=======================================================================
# Gráfico de regressão com efeito linear e intervalo de confiança
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo6.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Ajuste do modelo de equação linear
linear<-lm(peso~dose, data=dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Armazenamento das estimativas dos parâmetros e R2
cf<-format(c(coef(linear), summary(linear)$r.squared), digits=4)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Predição da resposta
pred<-data.frame(dose=seq(min(dados$dose), max(dados$dose), length=50))
pred$peso<-predict(linear, newdata=pred, interval="confidence")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de dispersão, reta de ajuste e intervalo de confiança
options(OutDec=",")
plot(peso~dose, xlab="Doses (ml)", ylab=expression(Peso~(kg.parcela^-1)), data=dados)
with(pred, matlines(dose, peso, col=c(1, 4, 4), lty=c(1, 2, 2)))

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção da legenda
legend("bottomright", legend=c("Valores observados", "Valores preditos", "Intervalo de
confiança (95%)"), lty=c(NA, 1, 2), col=c(1, 1, 4), pch=c(1, NA, NA), bty="n")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção das caixas de texto com a equação e R2
text(2, 12, label=substitute (hat(y)==a+b%.%x, list(a=cf[1], b=cf[2], c=cf[3])))
text(2, 11.5, label=substitute (R^2==c, list(a=cf[1], b=cf[2], c=cf[3])))

102
Criação e Edição de Gráficos

Figura 3. Valores observados e preditos pelo modelo de regressão com o


intervalo de confiança a 95% para os dados do exemplo4.

103
Criação e Edição de Gráficos

f) Gráfico com modelo de regressão de efeito quadrático


Gráfico: Figura 4

#=======================================================================
# Gráfico de regressão com efeito quadrático
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table("exemplo7.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo das médias dos tratamentos
medias<-aggregate(altura~dose, data=dados, mean)
medias

#-----------------------------------------------------------------------------------------------------------------------------
-
# Ajuste do modelo quadrático
quad<-lm(altura~(dose+I(dose^2)), data=medias)
cf<-as.numeric(c(coef(quad), summary(quad)$r.squared))

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de dispersão
options(digits=4, OutDec=",")
plot(altura~dose, xlab="Doses (ml)", ylab="Altura (cm)", pch=16, col="black", xaxt="n",
data=medias)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração da escala do eixo x
axis(1, at=seq(0, 12.5, by=2.5))

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção da curva de regressão
curve((cf[1] + cf[2]*x + cf[3]*x*x), 0, 12.5, col="blue", lwd=2, add=T)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do nível ótimo e do máximo
otimo<-(-cf[2]/(2*cf[3]))
vmax<- cf[1] + cf[2]*otimo + cf[3]*otimo^2

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção das retas dos pontos de ótimo e de máximo

104
Criação e Edição de Gráficos

abline(v=otimo, col="gray")
abline(h=vmax, col="gray")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção da caixa de texto do ótimo e do máximo
mtext("Ótimo", side=1, at=otimo)
mtext("Máx.", side=2, at=vmax)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção das caixas de texto com a equação e R2
text(10, 11.5, label=substitute(hat(y)==a+b%.%x~c%.%x^2, list(a=cf[1], b=cf[2], c=cf[3]) ))
text(10, 11, label=substitute (R^2==d, list(d=cf[4])))

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção da legenda
legend("bottomleft", legend=c("Valores observados", "Valores ajustados"), lty=c(NA, 1),
col=c("black","blue"), lwd=c(1,2), bty="n", pch=c(16, NA))

#-----------------------------------------------------------------------------------------------------------------------------
-
# Resultado do nível ótimo
otimo

#-----------------------------------------------------------------------------------------------------------------------------
-
# Resultado do valor máximo estimado
vmax

105
Criação e Edição de Gráficos

Figura 4. Equação de regressão quadrática para o exemplo7.

106
Criação e Edição de Gráficos

g) Gráfico com modelos de regressão de efeitos linear e quadrático


Gráfico: Figura 5

#=======================================================================
# Gráfico de regressão com efeito linear e quadrático simultaneamente
#=======================================================================

#-----------------------------------------------------------------------------------------------------------------------------
-
# Alteração e visualização do diretório de trabalho
setwd("D:/Curso R/Arquivos")
dir()

#-----------------------------------------------------------------------------------------------------------------------------
-
# Importação do arquivo de dados
dados<-read.table ("exemplo10.txt", header=TRUE, dec=",")
head(dados)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo das médias para cada acesso e dose
medias<-aggregate(prod~acess:dose, data = dados, mean)
head(medias)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Gráfico de dispersão
plot(prod~dose, xlab="Acessos", ylab="Produção", col=ifelse(medias$acess=="BGA205", "red",
"blue"), pch=16, cex=1.3, ylim=c(46,55), data=medias)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção das curvas de regressão
curve((48.7569 + 0.1357*x + -0.0009*x*x), 0, 150, col="red", lwd=2, add=T)
curve((45.7815 + 0.0448*x), 0, 150, col="blue", lwd=2, add=T)

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção das caixas de texto com as equações e R2
text(75, 54.7, "y** = 48,76 + 0,14x - 0,0009x^2", col="red")
text(75, 54.2, "R^2=99,11%", col="red")
text(75, 47, "y** = 45,78 + 0,05x", col="blue")
text(75, 46.5, "R^2=99,11%", col="blue")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Inserção da legenda
legend("bottomright", legend=c("BGA205", "BGA312"), lty=c(1, 1), col=c("red","blue"),
lwd=c(2,2), bty="n")

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do nível ótimo para o modelo quadrático
otimo<-(-0.13568750/(2*-0.00092575))
otimo

107
Criação e Edição de Gráficos

#-----------------------------------------------------------------------------------------------------------------------------
-
# Cálculo do valor máximo estimado para o modelo quadrático
vmax<- 48.75687500 + 0.13568750*otimo + -0.00092575 *otimo^2
vmax

108
Criação e Edição de Gráficos

Figura 5. Equações de regressão polinomial para o desdobramento da


interação de doses dentro de acessos para o exemplo6.

109
Criação e Edição de Gráficos

h) Editando gráficos de uma forma mais simples

- Salvar a figura como metafile (*.emf) clicando com o botão direito do mouse em cima da
figura;
- Abrir o Powerpoint;
- Ir em inserir imagens;
- Clicar com o botão direito em cima da figura e ir em Agrupar/ Desagrupar;
Clicar em Sim na mensagem da tela;
Clicar novamente com o botão direito em cima da figura e ir em Agrupar/ Desagrupar;
Realizar as modificações necessárias.

110
Criação e Edição de Gráficos

i) Salvando gráficos

#=======================================================================
# Salvando gráficos
#=======================================================================

# Salvar gráfico no formato .jpg


jpeg(filename="arquivo.jpg", width=480, height=480, units="px", pointsize=12, quality=100,
bg="white", res=NA)
“códigos para criação do gráfico”
dev.off()

# Salvar gráfico no formato .pdf


pdf("arquivo.pdf")
“códigos para criação do gráfico”
dev.off()

j) Cores no R

cores <- function() {


par(mar = c(0, 0, 0, 0) ,mgp = c(0, 0, 0))
plot(c(0:24), type = 'n')
c <- 0
mouse <- function(b, x, y) {
x <- as.integer(x * 26)
y <- as.integer(y * 26)
print(colors()[(x + 26 *y) %% 657 + 1])
return()
}
k <- colours()[(1:26 ^ 2 - 1) %% 657 + 1]
for (i in 1:26) {
for (j in 1:26) {
c <- c + 1
polygon(c(j, j, j-1, j-1), c(i, i-1, i-1, i) - 1, col=k[(c - 1) %% 657 + 1])
}
}
getGraphicsEvent('Clique numa cor para saber o nome dela', onMouseDown = mouse)
}

111
Arquivos de Dados

Arquivos de Dados

1. exemplo1 – Avaliação de oito acessos a partir de 2 variáveis quantitativas


contínuas (alt e diam), 1 variável quantitativa discreta (nf), 1 variável qualitativa
ordinal (resist) e 2 variáveis qualitativas nominais (cf e ff).

acessos alt diam nf resist cf ff


BGA01 3,61 2,37 2 5 verm 1
BGA03 3,55 2,86 4 5 verm 1
BGA07 3,96 2,48 3 3 verde 2
BGA12 3,10 2,41 3 1 verm 1
BGA34 2,88 2,26 0 4 verde 3
BGA67 3,08 2,29 4 5 alar 1
BGA89 3,45 2,93 3 1 alar 2
BGA99 3,35 2,86 2 1 verde 3

112
Arquivos de Dados

2. exemplo2 – Experimento instalado no delineamento inteiramente


casualizado com 4 tratamentos qualitativos (cultivares de bananeira) e 6
repetições em que foi avaliado a variável produção.

cult rep prod


prata 1 32,22
prata 2 27,22
prata 3 28,33
prata 4 31,11
prata 5 27,78
prata 6 26,67
pacov 1 33,33
pacov 2 30,56
pacov 3 36,67
pacov 4 33,89
pacov 5 30,00
pacov 6 33,89
fhia 1 32,78
fhia 2 26,11
fhia 3 24,44
fhia 4 27,22
fhia 5 34,44
fhia 6 33,33
trop 1 25,00
trop 2 18,33
trop 3 18,89
trop 4 26,67
trop 5 23,33
trop 6 24,44

113
Arquivos de Dados

3. exemplo3 – Experimento instalado no delineamento inteiramente


casualizado com 3 tratamentos qualitativos (A, B, C) e 1 tratamento controle
(D), com 5 repetições, em que foi avaliado as variáveis diâmetro do caule (dc),
altura da planta (ap) e massa fresca da folha (mff).

trat rep dc ap mff


A 1 9,38 31,13 15,56
A 2 9,71 32,71 16,07
A 3 11,66 29,34 21,51
A 4 10,32 32,83 17,65
A 5 8,92 29,81 14,95
B 1 8,52 21,23 10,89
B 2 7,61 22,26 9,97
B 3 8,97 28,11 17,15
B 4 8,23 25,38 14,72
B 5 9,77 27,74 19,90
C 1 10,07 26,23 14,96
C 2 8,12 29,43 11,13
C 3 9,58 22,64 7,46
C 4 9,01 25,85 15,94
C 5 8,86 22,64 7,67
D 1 7,57 20,00 6,41
D 2 7,99 21,89 6,70
D 3 8,94 24,25 9,40
D 4 6,82 20,94 9,49
D 5 7,99 21,32 9,22

114
Arquivos de Dados

4. exemplo4 – Experimento instalado no delineamento inteiramente


casualizado com 4 tratamentos qualitativos e 4 repetições em que foi avaliado
a variável produção, sendo cada parcela experimental constituída por 3
plantas.

trat rep planta alt


1 1 1 2,30
1 1 2 2,20
1 1 3 2,10
1 2 1 2,15
1 2 2 2,14
1 2 3 2,08
1 3 1 NA
1 3 2 2,19
1 3 3 2,20
1 4 1 2,17
1 4 2 2,09
1 4 3 NA
2 1 1 3,12
2 1 2 3,08
2 1 3 2,98
2 2 1 3,07
2 2 2 3,14
2 2 3 2,98
2 3 1 3,07
2 3 2 3,02
2 3 3 3,15
2 4 1 3,20
2 4 2 3,45
2 4 3 3,15
3 1 1 1,95
3 1 2 2,02
3 1 3 NA
3 2 1 2,25
3 2 2 2,07
3 2 3 1,98
3 3 1 1,85
3 3 2 1,98
3 3 3 2,10
3 4 1 1,78
3 4 2 2,01
3 4 3 1,85
4 1 1 4,12
4 1 2 3,98
4 1 3 3,85
4 2 1 4,12
4 2 2 4,09

115
Arquivos de Dados

4 2 3 NA
4 3 1 4,15
4 3 2 4,25
4 3 3 3,98
4 4 1 3,85
4 4 2 4,17
4 4 3 3,98

116
Arquivos de Dados

5. exemplo5 - Experimento instalado no delineamento em blocos casualizados


com 5 tratamentos qualitativos e 4 blocos, em que foi avaliado a variável
produção.

trat bloco prod


A 1 142,36
A 2 144,78
A 3 147,19
A 4 138,88
B 1 139,28
B 2 137,77
B 3 144,44
B 4 130,61
C 1 140,73
C 2 134,06
C 3 144,11
C 4 133,50
D 1 142,54
D 2 135,83
D 3 150,88
D 4 136,36
E 1 153,49
E 2 149,45
E 3 165,02
E 4 150,22

117
Arquivos de Dados

6. exemplo6 – Experimento instalado no delineamento em blocos casualizados


com 5 tratamentos quantitativos e 5 blocos, em que foi avaliado a variável peso
e ajuste de um modelo de efeito linear.

dose bloco peso


0 1 6,50
0 2 6,95
0 3 5,60
0 4 6,65
0 5 7,00
2 1 7,79
2 2 8,13
2 3 8,59
2 4 8,17
2 5 7,66
4 1 10,63
4 2 10,93
4 3 10,85
4 4 11,23
4 5 9,89
6 1 11,90
6 2 11,56
6 3 12,51
6 4 11,63
6 5 12,93
8 1 13,71
8 2 13,83
8 3 13,77
8 4 14,11
8 5 13,54

118
Arquivos de Dados

7. exemplo7 - Experimento instalado no delineamento em blocos casualizados


com 6 tratamentos quantitativos e 4 blocos, em que foi avaliado a variável
altura e ajuste de um modelo de efeito quadrático.

dose bloco altura


0,0 1 8,14
0,0 2 7,23
0,0 3 6,98
0,0 4 6,12
2,5 1 9,56
2,5 2 8,87
2,5 3 7,56
2,5 4 8,25
5,0 1 13,85
5,0 2 10,98
5,0 3 11,45
5,0 4 11,60
7,5 1 11,74
7,5 2 9,85
7,5 3 9,14
7,5 4 9,12
10,0 1 9,54
10,0 2 7,96
10,0 3 7,87
10,0 4 7,89
12,5 1 7,12
12,5 2 6,12
12,5 3 5,87
12,5 4 5,12

119
Arquivos de Dados

8. exemplo8 - Experimento instalado no delineamento em quadrado latino com


5 rações, 5 períodos e 5 animais, em que foi avaliado a variável consumo
médio.

racao periodo animal cm


A 1 1 629,18
A 2 3 1597,09
A 3 5 500,10
A 4 4 1275,73
A 5 2 2101,41
B 1 2 1826,44
B 2 4 1733,20
B 3 3 588,94
B 4 1 268,02
B 5 5 909,63
C 1 3 1367,00
C 2 1 909,35
C 3 2 1229,09
C 4 5 1182,80
C 5 4 1274,25
D 1 4 1459,88
D 2 5 1685,54
D 3 1 359,82
D 4 2 2463,09
D 5 3 1366,48
E 1 5 1276,55
E 2 2 2188,63
E 3 4 679,10
E 4 3 1091,13
E 5 1 726,72

120
Arquivos de Dados

9. exemplo9 - Experimento instalado no delineamento inteiramente casualizado


em esquema fatorial 3 x 4, três variedades e quatro métodos de enxertia, com
4 repetições, em que foi avaliado a variável produção.

var met rep prod


A M1 1 50,77
A M1 2 40,00
A M1 3 43,85
A M1 4 52,31
A M2 1 36,15
A M2 2 36,15
A M2 3 24,62
A M2 4 33,08
A M3 1 33,08
A M3 2 38,46
A M3 3 30,00
A M3 4 30,77
A M4 1 15,38
A M4 2 17,69
A M4 3 33,08
A M4 4 31,54
B M1 1 62,31
B M1 2 52,31
B M1 3 46,15
B M1 4 42,31
B M2 1 47,69
B M2 2 26,15
B M2 3 33,85
B M2 4 34,62
B M3 1 33,08
B M3 2 31,54
B M3 3 36,15
B M3 4 41,54
B M4 1 39,23
B M4 2 24,62
B M4 3 22,31
B M4 4 26,15
C M1 1 62,31
C M1 2 63,08
C M1 3 61,54
C M1 4 60,00
C M2 1 64,62
C M2 2 52,31
C M2 3 50,77
C M2 4 50,00
C M3 1 44,62

121
Arquivos de Dados

C M3 2 33,08
C M3 3 28,46
C M3 4 43,85
C M4 1 57,69
C M4 2 34,62
C M4 3 45,38
C M4 4 36,92

122
Arquivos de Dados

10. exemplo10 - Experimento instalado no delineamento em blocos


casualizados em esquema fatorial 2 x 4, dois acessos e quatro doses, com 4
blocos, em que foi avaliado a variável produção.

acess dose bloco prod


BGA205 0 1 47,45
BGA205 0 2 45,64
BGA205 0 3 50,15
BGA205 0 4 52,18
BGA205 50 1 52,73
BGA205 50 2 53,18
BGA205 50 3 50,18
BGA205 50 4 55,64
BGA205 100 1 51,82
BGA205 100 2 52,36
BGA205 100 3 53,18
BGA205 100 4 56,09
BGA205 150 1 47,27
BGA205 150 2 42,73
BGA205 150 3 49,09
BGA205 150 4 53,64
BGA312 0 1 44,55
BGA312 0 2 45,45
BGA312 0 3 42,73
BGA312 0 4 50,91
BGA312 50 1 43,82
BGA312 50 2 45,23
BGA312 50 3 43,27
BGA312 50 4 58,64
BGA312 100 1 49,73
BGA312 100 2 48,09
BGA312 100 3 50,12
BGA312 100 4 53,82
BGA312 150 1 51,09
BGA312 150 2 52,18
BGA312 150 3 53,91
BGA312 150 4 52,73

123
Arquivos de Dados

11. exemplo11 - Experimento instalado no delineamento em blocos


casualizados em esquema de parcela subdividida no espaço, com 3 blocos, em
que foi avaliado a variável altura de plantas. Nas parcelas foram avaliadas 3
cultivares e nas subparcelas 4 níveis de adubação.

cult niv bloco altura


A 0 1 1,09
A 0 2 0,95
A 0 3 1,17
A 4 1 1,11
A 4 2 0,97
A 4 3 1,22
A 8 1 1,31
A 8 2 1,13
A 8 3 1,26
A 12 1 1,52
A 12 2 1,42
A 12 3 1,38
B 0 1 1,05
B 0 2 0,95
B 0 3 1,22
B 4 1 1,09
B 4 2 0,99
B 4 3 1,34
B 8 1 1,14
B 8 2 1,12
B 8 3 1,36
B 12 1 1,27
B 12 2 1,22
B 12 3 1,40
C 0 1 0,74
C 0 2 1,22
C 0 3 1,28
C 4 1 0,85
C 4 2 1,21
C 4 3 1,34
C 8 1 0,98
C 8 2 1,22
C 8 3 1,48
C 12 1 0,97
C 12 2 1,24
C 12 3 1,46

124
Arquivos de Dados

12. exemplo12 - Experimento instalado no delineamento em blocos


casualizados em esquema fatorial 2 x 2 x 2, duas cultivares, dois métodos e
dois tratamentos, com 3 blocos, em que foi avaliado a variável altura de
plantas.

cult met trat bloco alt


1 1 1 1 10,00
1 1 1 2 10,80
1 1 1 3 9,80
1 1 2 1 10,30
1 1 2 2 11,30
1 1 2 3 10,30
1 2 1 1 9,70
1 2 1 2 10,10
1 2 1 3 10,20
1 2 2 1 9,40
1 2 2 2 11,60
1 2 2 3 9,10
2 1 1 1 9,20
2 1 1 2 8,60
2 1 1 3 10,10
2 1 2 1 9,30
2 1 2 2 10,30
2 1 2 3 9,10
2 2 1 1 11,50
2 2 1 2 9,50
2 2 1 3 10,80
2 2 2 1 10,70
2 2 2 2 10,40
2 2 2 3 9,60

125
Arquivos de Dados

13. exemplo13 - Experimento instalado no delineamento inteiramente


casualizado em esquema fatorial 2 x 4 + 1, dois inóculos, 4 níveis de biodiesel
e um tratamento adicional, com 3 repetições.

mfresc
inoc biod rep a
esterco 5 1 1,53
esterco 5 2 1,51
esterco 5 3 1,64
esterco 10 1 1,53
esterco 10 2 1,91
esterco 10 3 1,31
esterco 15 1 1,71
esterco 15 2 1,59
esterco 15 3 1,42
esterco 20 1 1,71
esterco 20 2 2,38
esterco 20 3 1,49
mamon
a 5 1 4,12
mamon
exemplo13.txt a 5 2 1,96
mamon
a 5 3 2,06
mamon
a 10 1 3,42
mamon
a 10 2 4,31
mamon
a 10 3 4,20
mamon
a 15 1 2,71
mamon
a 15 2 2,89
mamon
a 15 3 3,44
mamon
a 20 1 2,04
mamon
a 20 2 2,77
mamon
a 20 3 2,76

1,14
exemplo13Ad.
txt 1,10
1,11

126
Arquivos de Dados

14. exemplo14 – Experimento instalado no delineamento em blocos


aumentados com 4 tratamentos comuns (A, B, C e D), 8 tratamentos regulares
(e, f, g, h, i, j, k, l) e 3 blocos.

trat bloco prod


A 1 11,86
B 1 11,00
C 1 11,14
D 1 11,14
g 1 10,00
k 1 10,71
l 1 10,57
A 2 11,29
B 2 11,57
C 2 11,57
D 2 13,00
e 2 11,29
i 2 11,14
A 3 13,14
B 3 11,29
C 3 12,43
D 3 11,57
f 3 12,71
h 3 13,71
j 3 11,71

127
Arquivos de Dados

15. exemplo15 – Experimento instalado no delineamento inteiramente


casualizado com 3 tratamentos qualitativos e 5 repetições em que foi avaliado
a variável altura.

trat rep alt


A 1 11,3
A 2 11,2
A 3 10,9
A 4 10,8
A 5 13,4
B 1 19,2
B 2 18,3
B 3 19,2
B 4 18,5
B 5 21,5
C 1 8,4
C 2 7,4
C 3 8,2
C 4 8,5
C 5 7,9

128
Arquivos de Dados

16. exemplo16.

(em desenvolvimento)

bloc A B C y
99.7415
1 1 1 1 5
98.6958
2 1 1 1 7
98.8637
3 1 1 1 6
99.0996
4 1 1 1 3
99.6577
1 2 1 1 5
99.5617
2 2 1 1 9
100.683
3 2 1 1 2
99.1200
4 2 1 1 8
98.8380
1 3 1 1 1
100.461
2 3 1 1 1
99.5851
3 3 1 1 2
100.807
4 3 1 1 7
99.7733
1 1 2 1 7
100.168
2 1 2 1 8
100.944
3 1 2 1 4
100.923
4 1 2 1 3
101.434
1 2 2 1 7
99.5307
2 2 2 1 1
99.9371
3 2 2 1 2
100.922
4 2 2 1 4
99.5758
1 3 2 1 2
101.056
2 3 2 1 6
99.0919
3 3 2 1 3
4 3 2 1 99.5830

129
Arquivos de Dados

8
101.565
1 1 3 1 3
99.4393
2 1 3 1 1
99.9176
3 1 3 1 1
99.9215
4 1 3 1 8
99.4774
1 2 3 1 1
99.5029
2 2 3 1 1
101.316
3 2 3 1 6
97.7147
4 2 3 1 2
100.253
1 3 3 1 8
100.694
2 3 3 1 4
100.628
3 3 3 1 7
99.3961
4 3 3 1 8
102.124
1 1 4 1 4
99.1394
2 1 4 1 3
100.386
3 1 4 1 4
100.745
4 1 4 1 7
1 2 4 1 99.8795
100.573
2 2 4 1 8
3 2 4 1 100.209
4 2 4 1 101.421
1 3 4 1 99.5366
100.886
2 3 4 1 7
99.0635
3 3 4 1 1
100.349
4 3 4 1 5
101.277
1 1 1 2 6
100.915
2 1 1 2 9
100.345
3 1 1 2 9

130
Arquivos de Dados

100.753
4 1 1 2 9
100.368
1 2 1 2 9
100.680
2 2 1 2 3
100.895
3 2 1 2 8
101.400
4 2 1 2 3
100.605
1 3 1 2 4
100.852
2 3 1 2 8
99.7755
3 3 1 2 6
101.014
4 3 1 2 6
99.4960
1 1 2 2 4
100.934
2 1 2 2 5
100.898
3 1 2 2 4
101.410
4 1 2 2 9
99.8006
1 2 2 2 6
2 2 2 2 99.8499
99.0171
3 2 2 2 6
100.697
4 2 2 2 5
100.040
1 3 2 2 9
99.7698
2 3 2 2 6
100.023
3 3 2 2 9
101.138
4 3 2 2 7
99.7925
1 1 3 2 7
99.7189
2 1 3 2 2
100.026
3 1 3 2 3
99.9923
4 1 3 2 6
100.569
1 2 3 2 9

131
Arquivos de Dados

99.8014
2 2 3 2 1
100.210
3 2 3 2 4
98.8602
4 2 3 2 7
98.9487
1 3 3 2 1
100.197
2 3 3 2 1
102.330
3 3 3 2 4
100.266
4 3 3 2 1
99.0753
1 1 4 2 8
100.729
2 1 4 2 2
102.273
3 1 4 2 6
101.401
4 1 4 2 6
99.4879
1 2 4 2 5
100.415
2 2 4 2 3
100.264
3 2 4 2 9
100.159
4 2 4 2 2
97.9138
1 3 4 2 9
2 3 4 2 100.223
97.5257
3 3 4 2 6
99.8448
4 3 4 2 3

132
Arquivos de Dados

17. exemplo17 – Avaliação de dez acessos a partir de seis variáveis


morfológicas e físico-químicas de frutos de abacaxizeiro.

acessos alt diam comp peso ac rat


BGA01 3,61 2,37 6,73 18,66 4,21 17,97
BGA03 3,55 2,86 8,96 11,49 4,60 17,44
BGA05 4,12 3,15 10,34 15,43 4,87 25,87
BGA07 3,96 2,48 5,87 16,97 3,52 13,07
BGA12 3,10 2,41 11,00 11,27 4,21 15,87
BGA34 2,88 2,26 7,31 13,45 4,12 19,90
BGA42 1,54 1,15 5,34 8,22 2,87 13,65
BGA67 3,08 2,29 10,37 12,35 3,75 24,38
BGA89 3,45 2,93 13,94 18,92 3,99 18,10
BGA99 3,35 2,86 13,35 22,00 3,75 26,37

133
Arquivos de Dados

18. exemplo18 – Avaliação de 11 acessos a partir de três variáveis qualitativas.

acessos cf cp cl
bga01 1 1 1
bga02 1 1 3
bga03 2 1 6
bga04 2 1 6
bga05 1 1 2
bga06 2 1 1
bga07 1 2 2
bga08 4 1 1
bga09 2 2 4
bga10 1 1 1
bga11 1 2 1

134
Arquivos de Dados

19. exemplo19 – Experimento instalado no delineamento em blocos


casualizados com 10 acessos e 3 blocos, em que foi avaliado 5 variáveis
agronômicas.

acessos bloco alt prod acam flor stand


bga02 1 249,75 604,15 404,48 348,49 281,31
bga02 2 227,56 527,36 414,52 324,32 210,29
bga02 3 368,18 711,87 490,14 331,84 297,12
bga13 1 615,42 548,00 359,91 376,66 593,01
bga13 2 756,11 59,78 363,74 351,99 523,45
bga13 3 481,54 464,04 415,98 317,41 447,33
bga15 1 610,40 529,91 389,65 385,01 253,22
bga15 2 534,73 436,40 439,23 400,99 241,25
bga15 3 488,87 277,88 414,90 367,00 77,56
bga34 1 587,84 186,90 399,76 556,27 55,25
bga34 2 627,27 478,44 470,98 501,10 312,92
bga34 3 594,91 454,60 409,16 429,03 268,36
bga41 1 358,48 480,34 530,92 273,63 321,65
bga41 2 341,18 238,63 414,71 344,45 370,12
bga41 3 409,65 537,39 566,61 278,46 417,95
bga49 1 530,40 430,57 309,84 245,79 552,34
bga49 2 644,79 352,27 311,07 226,46 437,38
bga49 3 619,42 256,40 287,13 294,35 714,34
bga50 1 592,22 563,79 298,57 260,88 508,33
bga50 2 588,89 862,62 502,44 260,02 351,95
bga50 3 627,72 521,22 400,76 256,94 432,98
bga63 1 605,05 420,44 303,72 265,78 549,18
bga63 2 620,72 519,95 303,81 321,96 451,01
bga63 3 711,55 375,29 274,21 227,00 459,69
bga75 1 493,93 425,79 361,44 300,38 29,60
bga75 2 457,53 450,88 335,19 286,33 239,92
bga75 3 366,90 264,96 434,37 285,10 14,92
bga86 1 479,98 611,18 302,20 336,88 700,12
bga86 2 671,50 372,21 270,94 302,40 461,48
bga86 3 471,44 284,37 300,48 383,68 851,41

135
Arquivos de Dados

20. exemplo20 - Avaliação de 10 acessos a partir de 10 variáveis qualitativas


binárias (marcadores moleculares).

acessos m1 m2 m3 m4 m5 m6 m7 m8 m9 m10
BGA00
0 1 1 0 0 0 1 1 1 0
1
BGA00
1 1 0 1 1 1 0 1 1 0
2
BGA00
1 0 0 0 1 0 0 0 1 0
3
BGA00
0 0 1 1 1 0 1 1 0 1
4
BGA00
1 1 1 0 1 1 1 1 1 1
5
BGA00
0 0 1 0 0 0 0 0 0 0
6
BGA00
1 0 1 0 1 0 1 0 0 0
7
BGA00
0 0 0 1 0 1 0 1 0 0
8
BGA00
1 0 0 1 1 1 1 1 1 1
9
BGA01
1 1 1 0 0 1 1 0 1 1
0

136
Arquivos de Dados

21. exemplo21 – Avaliação de 10 acessos a partir de 3 variáveis quantitativas,


3 variáveis qualitativas nominais e 4 variáveis qualitativas binárias (marcadores
moleculares).

acessos alt diam peso cf ff cp m1 m2 m3 m4


BGA00
1 12,3 0,13 345,6 1 1 1 0 1 1 0
BGA00
2 13,8 0,21 332,6 1 1 2 1 1 1 1
BGA00
3 10,8 0,19 353,8 2 2 2 1 0 0 0
BGA00
4 14,6 0,16 298,6 3 3 1 0 0 1 1
BGA00
5 12,6 0,14 300,2 3 1 3 1 1 1 0
BGA00
6 14,8 0,18 387,4 2 2 1 0 0 1 0
BGA00
7 9,12 0,14 325,4 1 1 1 1 0 1 0
BGA00
8 10,11 0,13 341,8 1 1 1 0 0 0 1
BGA00
9 8,45 0,09 298,2 4 1 2 1 0 0 1
BGA01
0 15,31 0,24 423,12 1 2 1 1 1 1 0

137
Arquivos de Dados

22. exemplo22 – Avaliação de 25 acessos a partir de 11 variáveis quantitativas.

acessos cf lf cp ap dc pf df dcc pfs vc sst


BGA00 168,8
31,90 51,00 1,90 11,10 47,90
1 46,70 1,71 14,70 81,46 8 7,90
BGA00
28,60 51,80 2,00 9,50
2 48,00 0,95 10,20 51,95 69,90 48,66 11,83
BGA00
43,80 71,10 2,60 17,00
3 69,80 0,71 8,00 26,49 59,68 87,61 13,60
BGA00
31,20 52,60 2,10 12,10
4 44,00 0,52 8,90 46,00 56,12 65,47 12,68
BGA00
25,20 39,20 1,70 10,90
5 36,20 0,54 8,30 43,74 52,18 75,44 14,95
BGA00
27,60 39,20 1,15 7,50
6 43,20 0,52 7,90 30,84 44,11 76,00 12,75
BGA00 100,7
25,80 30,80 1,65 8,00
7 35,20 0,87 5,27 44,78 52,94 3 12,17
BGA00
25,60 35,60 1,20 7,30
8 41,00 0,99 11,65 49,58 96,60 99,82 12,83
BGA00
33,60 56,80 1,50 10,00
9 53,40 0,54 8,30 43,74 52,18 75,44 14,95
BGA01
33,40 59,40 1,95 10,20
0 47,80 0,43 7,35 37,13 57,75 87,53 12,52
BGA01
33,80 50,00 2,25 11,80
1 45,20 0,94 9,10 32,25 95,25 60,90 12,10
BGA01
30,60 42,20 1,60 11,20
2 43,20 1,03 11,00 48,43 48,19 86,97 13,33
BGA01 124,7
40,60 62,60 2,25 12,10
3 58,80 0,96 10,90 49,35 59,70 0 15,80
BGA01
36,00 55,60 1,60 9,80
4 57,40 1,38 11,60 45,79 35,80 76,82 12,30
BGA01
30,00 33,80 1,30 7,50
5 42,60 0,68 8,55 40,48 26,41 56,11 12,92
BGA01 155,6
35,40 45,40 1,70 11,40
6 50,40 1,23 10,60 51,14 5 58,51 11,63
BGA01
20,60 24,40 1,70 6,60
7 29,00 0,46 7,50 32,86 28,16 65,27 10,47
BGA01
33,00 56,20 2,15 12,00
8 50,00 0,82 9,05 33,63 60,42 74,63 12,92
BGA01
28,40 42,20 1,75 8,90
9 41,60 0,61 8,45 38,39 39,03 74,06 10,57
BGA02 106,6
31,60 49,60 2,00 10,10
0 47,00 0,84 8,95 41,80 68,28 4 13,55
BGA02
28,20 50,40 1,50 9,20
1 39,80 0,53 8,45 43,52 76,01 97,05 11,28
BGA02
27,80 51,60 1,70 11,40
2 45,60 0,30 6,85 30,72 55,16 60,70 12,42
BGA02 111,2
32,80 48,40 1,65 8,90
3 49,00 0,54 9,35 46,79 63,36 5 13,15
BGA02
34,00 49,00 2,00 10,00
4 48,20 0,76 9,15 49,34 72,03 72,49 12,77

138
Arquivos de Dados

BGA02 111,6
34,00 47,80 1,50 8,90
5 49,60 0,55 7,75 35,60 55,54 1 15,42

139
Arquivos de Dados

23. exemplo23 – Avaliação de duas cultivares a partir de quatro variáveis


quantitativas.

gp altura diam peso mf


1 2,32 4,86 12,2 0,12
1 1,87 3,78 13,2 0,11
1 2,12 4,25 11,8 0,09
1 1,99 3,89 11,7 0,15
1 1,58 3,25 12,6 0,12
1 2,05 4,12 13,2 0,14
2 1,25 2,14 10,2 0,09
2 1,45 2,71 9,9 0,08
2 2,35 2,47 10,3 0,06
2 1,27 2,31 10,2 0,07
2 1,48 4,98 10,7 0,13
2 2,47 2,87 12,9 0,09

140
Arquivos de Dados

24. exemplo24 – Avaliação de 3 cultivares a partir de duas variáveis


quantitativas (pc e dp), uma variável qualitativa nominal (cf) e uma variável
qualitativa ordinal (resist).

cult pc dp cf resist
prata 30,34 16,86 verd 5
prata 28,45 23,71 amar 4
prata 26,49 14,72 roxo 5
prata 32,78 24,83 verd 3
prata 33,23 18,46 alar 4
prata 27,43 15,24 verd 4
prata 15,87 9,34 verd 5
prata 43,13 23,96 amar 5
prata 17,98 10,83 verd 5
prata 28,98 16,10 verd 4
prata 37,65 20,92 alar 5
prata 26,87 18,79 verd 3
prata 29,54 16,41 alar 4
prata 31,76 16,98 verd 5
prata 32,45 18,44 verd 5
fhia 17,23 14,36 amar 2
fhia 16,27 10,85 amar 2
fhia 18,87 11,79 amar 3
fhia 19,43 14,95 verd 2
fhia 18,43 15,36 amar 1
fhia 32,54 27,12 amar 3
fhia 12,45 8,59 amar 2
fhia 18,43 15,36 amar 2
fhia 19,32 18,23 roxo 3
fhia 17,23 14,36 amar 2
fhia 18,34 15,81 amar 2
fhia 19,23 16,03 alar 2
fhia 13,23 11,12 amar 3
fhia 13,89 11,58 amar 3
fhia 19,47 16,09 amar 3
thap 56,43 36,17 roxo 3
thap 55,32 36,88 roxo 3
thap 48,32 40,27 roxo 3
thap 43,78 29,19 alar 4
thap 39,45 26,30 roxo 4
thap 41,65 28,72 roxo 3
thap 42,78 28,52 roxo 4
thap 44,67 34,36 verd 3
thap 41,45 27,63 roxo 4
thap 39,45 27,21 roxo 5

141
Arquivos de Dados

thap 42,34 30,24 roxo 2


thap 35,56 23,71 verd 4
thap 19,67 13,11 roxo 3
thap 33,65 22,43 roxo 4
thap 42,98 33,06 roxo 4

142
Arquivos de Dados

25. exemplo25 – Experimento instalado no delineamento inteiramente


casualizado com 4 cultivos (A, B, C e D) e 6 repetições, em que foi avaliado a
variável peso.

cultivo rep peso


A 1 128,50
A 2 162,80
A 3 111,40
A 4 128,50
A 5 205,70
A 6 128,50
B 1 128,50
B 2 102,80
B 3 102,80
B 4 179,90
B 5 248,50
B 6 137,10
C 1 162,80
C 2 137,10
C 3 68,60
C 4 98,50
C 5 77,10
C 6 137,10
D 1 85,70
D 2 102,80
D 3 111,40
D 4 77,10
D 5 60,00
D 6 68,60

143
Comandos Básicos

Comandos Básicos

Comando Definição
getwd() Verifica o diretório de trabalho
setwd(“diretório de trabalho”) Alterar o diretório de trabalho
Ctrl L Limpa o console
attach(objeto) Carrega objeto
Desfaz a operação de carregamento de
detach(objeto)
objeto
library() Listagem dos pacotes disponíveis
library(nome do pacote) Carrega pacote
search() Listagem dos pacotes carregados
Apresenta a forma de como citar o R em
citation()
publicações
citation(package="nome do Apresenta a forma de como citar pacotes do
pacote") R em publicações
Abre o menu de ajuda de determinado
help(plot)
assunto, nesse caso o comando plot
help(package="nome do Abre o menu de ajuda para determinado
pacote") pacote
Disponibiliza objetos de dados de um
require(nome do pacote)
determinado pacote
Lista objetos de dados de um pacote
data(objeto)
carregado
Listagem dos arquivos do diretório de
dir()
trabalho
Lista objetos criados e salvos na área de
ls()
trabalho
read.table() Importar dados para um objeto no R
Exportar um objeto do R para um arquivo
write.table()
texto
str(objeto) Apresenta a estrutura do objeto
summary(objeto) Apresenta um resumo da estrutura do objeto
Apresenta o cabeçalho e as primeiras linhas
head(objeto)
das observações associados ao objeto
install.packages("nome do
Instala um pacote
pacote")
rm(list=ls(all=TRUE)) Limpa toda a memória
View(objeto) Visualiza o arquivo de dados
update.packages(checkBuilt = Atualiza os pacotes instalados
TRUE, ask = FALSE)
144
Comandos Básicos

Verifica o número e local dos pacotes


packageStatus()
instalados

145
Referência

Referências

Box, G. E. P.; Cox, D. R. (1964) An analysis of transformations. Journal of the


Royal Statistical Society, Series B 26(2): 211–252.

Charrad, M.; Ghazzali, N.; Boiteau, V.; Niknafs, A. (2014). NbClust: An R


Package for Determining the Relevant Number of Clusters in a Data Set.
Journal of Statistical Software, 61(6), 1-36. URL
http://www.jstatsoft.org/v61/i06/.

Dray, S.; Dufour, A.B. (2007): The ade4 package: implementing the duality
diagram for ecologists. Journal of Statistical Software. 22(4): 1-20.

Ferreira, E. B.; Cavalcanti, P. P.; Nogueira, D. A. (2013). ExpDes:


Experimental Designs package. R package version 1.1.2. URL https://cran.r-
project.org/web/packages/ExpDes/

Hausser, J.; Strimmer, K. (2014). entropy: Estimation of Entropy, Mutual


Information and Related Quantities. R package version 1.2.1. URL
https://CRAN.R-project.org/package=entropy

Kassambara, A.; Mundt, F. (2017). factoextra: Extract and Visualize the Results
of Multivariate Data Analyses. R package version 1.0.4. URL https://CRAN.R-
project.org/package=factoextra

Le, S.; Josse, J.; Husson, F. (2008). FactoMineR: An R Package for Multivariate
Analysis. Journal of Statistical Software, 25(1), 1-18. 10.18637/jss.v025.i01

Maechler, M.; Rousseeuw, P.; Struyf, A.; Hubert, M.; Hornik, K. (2017). cluster:
Cluster Analysis Basics and Extensions. R package version 2.0.6. URL
https://cran.r-project.org/web/packages/cluster/

Maindonald, J.H. (2008). Using R Data Analysis and Graphics: Introduction,


Code and Commentary. Australian National University. Centre for Mathematics
and Its Applications. URL https://cran.r-project.org/doc/contrib/usingR.pdf

Mendiburu, F. de (2016). agricolae: Statistical Procedures for Agricultural


Research. R package version 1.2-4. URL
https://CRAN.R-project.org/package=agricolae

Oksanen, J.; Blanchet, F.G.; Friendly, M.; Kindt, R.; Legendre, P.; McGlinn, D.;
Minchin, P.R.; O'Hara, R.B.; Simpson, G.L.; Solymos, P.; Stevens, M.H.H.;
Szoecs, E.; Wagner, H. (2017). vegan: Community Ecology Package. R
package version 2.4-3. URL https://CRAN.R-project.org/package=vegan

R Core Team (2017). R: A language and environment for statistical computing.


R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-
project.org/.

146
Referência

Wickham, H.; Francois, R.; Henry, L.; Müller, K. (2017). dplyr: A Grammar of
Data Manipulation. URL R package version 0.7.2.
https://CRAN.R-project.org/package=dplyr

Índice Remissivo

ade4, 53, 55, 57, 59


agricolae, 13, 15, 20, 44, 48, 49, 53
asbio, 26, 28
biotools, 16, 72, 74
cluster, 53, 59
ClustOfVar, 59
DescTools, 22
dplyr, 18
ds, 11
easyanova, 22, 44
easynls, 52
entropy, 18
ExpDes.pt, 20, 24, 26, 28, 30, 32, 34, 36, 38, 40, 41, 43
factoextra, 53
FactoMineR, 13, 63, 68
ggplot2, 81, 82
Hotelling, 73
lattice, 48, 49
lmtest, 20, 24, 26, 28, 30, 32, 34, 36, 38, 40, 41
MASS, 46
mvnormtest, 74
NbClust, 53, 55, 57, 59
PCAmixdata, 66, 70
PMCMR, 80
prabclus, 58
psych, 68
qlcMatrix, 57
StatMatch, 59
univOutl, 17
usdm, 13
vegan, 18, 68, 70

147
Contato

Contato

Carlos Alberto da Silva Ledo


Embrapa Mandioca e Fruticultura
Rua Embrapa, sn
Cruz das Almas – BA
Email: carlos.ledo@embrapa.br, carlos.ledo@pq.cnpq.br
Telefone: (75) 3312-8061
Lattes: http://lattes.cnpq.br/2559066882962466

148
Contato

149

Você também pode gostar