Professional Documents
Culture Documents
Programa de estudo:
• Instalação, apresentação do R e motivação
• Nuts and bolts
- Principais operadores e funções
- Objetos e classes de objetos
- Subsetting
- Importação/exportação de dados
- Análise exploratória de dados: medidas descritivas + gráficos
- O que é um PACOTE?
- R commander
• Covariância e correlação
- Diagramas de dispersão + draftsman
- Covariância, correlação (Pearson, Spearman)
- Matrizes de correlação e representação gráfica de matrizes
• Regressão
- Regressão linear simples
iv
Sugestões de leitura:
• Chambers, J.M. (1998) Programming with Data. New York:
Springer.
• Mello & Petenelli (2013) Conhecendo o R: uma visão mais que
estatística. Viçosa: Editora UFV.
• Silva, A.R. (2016) Métodos de análise multivariada em R. Pi-
racicaba: Fealq.
Instrutor: Anderson R Silva
Instituto Federal Goiano, Campus Urutaí
E-mail: anderson.silva@ifgoiano.edu.br
c 2016 Silva, A.R. Computação Estatística em R
Sobre o R
2 Importação/exportação de dados 11
2.1 Importação de dados . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Exportação de dados . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Exercício . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
II MÉTODOS UNIVARIADOS 15
3 Análise exploratória de dados 17
3.1 Distribuição de frequências . . . . . . . . . . . . . . . . . . 17
3.2 Estatísticas descritivas . . . . . . . . . . . . . . . . . . . . . 19
3.2.1 Medidas de posição . . . . . . . . . . . . . . . . . . . 19
3.2.2 Medidas de dispersão . . . . . . . . . . . . . . . . . 19
vii
viii Sumário
4 Covariância e correlação 23
4.1 Covariância e correlação de Pearson . . . . . . . . . . . . . 23
4.2 Diagramas de dispersão . . . . . . . . . . . . . . . . . . . . 23
4.3 Teste da correlação . . . . . . . . . . . . . . . . . . . . . . . 24
4.4 Correlações não paramétricas . . . . . . . . . . . . . . . . . 25
4.5 Gráfico de draftsman . . . . . . . . . . . . . . . . . . . . . . 25
4.6 Matrizes de covariância e de correlação . . . . . . . . . . . . 25
4.7 Representação gráfica de matrizes de correlação . . . . . . . 26
4.8 Inferência sobre matrizes de correlação . . . . . . . . . . . . 26
4.8.1 Testes simultâneos . . . . . . . . . . . . . . . . . . . 26
4.8.2 Homogeneidade de matrizes de covariância . . . . . 28
4.9 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5 Regressão 31
5.1 Regressão linear simples . . . . . . . . . . . . . . . . . . . . 31
5.1.1 Coeficiente de determinação . . . . . . . . . . . . . . 32
5.1.2 Independência e normalidade residual . . . . . . . . 32
5.1.3 Análise de variância da regressão . . . . . . . . . . . 33
5.1.4 Teste t . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.1.5 Intervalo de confiança e de predição . . . . . . . . . 34
5.2 Regressão linear múltipla . . . . . . . . . . . . . . . . . . . 35
5.3 Stepwise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.4 Construíndo superfícies de resposta . . . . . . . . . . . . . . 37
5.5 Regressão não linear . . . . . . . . . . . . . . . . . . . . . . 38
5.6 Linear Response Plateau . . . . . . . . . . . . . . . . . . . . 40
5.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
c 2016 Silva, A.R. Computação Estatística em R
7 Procedimentos de comparações múltiplas de médias 51
7.1 Teste t para contrastes . . . . . . . . . . . . . . . . . . . . . 51
7.2 Teste LSD de Fisher . . . . . . . . . . . . . . . . . . . . . . 52
7.3 A correção de Bonferroni . . . . . . . . . . . . . . . . . . . 53
7.4 Teste HSD de Tukey . . . . . . . . . . . . . . . . . . . . . . 54
7.5 Teste SNK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.6 O critério de Scott-Knott . . . . . . . . . . . . . . . . . . . 54
7.7 Escolhendo o teste . . . . . . . . . . . . . . . . . . . . . . . 55
7.8 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8 Experimentos multifatores 57
8.1 Estruturas dos fatores, tipos de efeito e interação . . . . . . 57
8.2 Experimentos fatoriais . . . . . . . . . . . . . . . . . . . . . 58
8.3 Fatoriais com tratamentos adicionais . . . . . . . . . . . . . 60
8.4 Experimentos em parcelas subdivididas . . . . . . . . . . . 61
8.5 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
x Sumário
c 2016 Silva, A.R. Computação Estatística em R
Parte I
1
Capítulo 1
Objetos
Exemplo: podemos definir o objeto ‘a’ como sendo o valor numérico 2.7;
isso é feito no R da seguinte forma: a <- 2.7 ou, de forma equivalente, a
= 2.7.
Poderíamos ainda definir o objeto ‘a’ como sendo:
R> class(a)
[1] "integer"
1.3 Vetores
Um vetor é um conjunto de elementos pertencentes a mesma classe.
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 1. Objetos 5
1.3.2 Coerção
O que aconteceria se misturássemos objetos de classes diferentes num mesmo
vetor?
R> w1 <- c("a", 1.5, "b", 0.8)
R> w2 <- c(4, TRUE, FALSE, 2.2, FALSE)
R> w3 <- c(TRUE, "b", "a", FALSE)
Extraíndo as classes de cada objeto, encontramos:
R> class(w1)
[1] "character"
R> class(w2)
[1] "numeric"
R> class(w3)
[1] "character"
Logo, note que coerção trata-se de uma alteração da classe de alguns
dos objetos para a classe comum mais plausível a todos os objetos de um
vetor. Por exemplo: em w1 não seria possível transformar os caracteres
‘a’ e ‘b’ num valor númerico, mas seria mais lógico tratar 1.5 e 0.8 como
caracteres (valores não numéricos). Em w2, como os valores lógicos TRUE e
FALSE são comumemte entendidos como 1 e 0, respectivamente, todo este
vetor será tomado como sendo da classe ‘numeric’. Isso explica porque
w3 torna-se um vetor de classe ‘character’.
1.3.3 Subsetting
Subconjuntos de vetores podem ser extraídos usando o operador [.
R> y <- c("a", "b", "z", "k")
R> y[1]
[1] "a"
R> y[2]
[1] "b"
R> y[2:4]
[1] "b" "z" "k"
R> y[-1]
[1] "b" "z" "k"
R> y[c(1, 3)]
[1] "a" "z"
R> y[-c(1, 3)]
[1] "b" "k"
R> z <- c(1.3, 1.4, 1, 2.8, 3.9, 4.4, 0.5)
R> z[c(2, 3, 4)]
[1] 1.4 1.0 2.8
R> z >= 2
[1] FALSE FALSE FALSE TRUE TRUE TRUE FALSE
R> z[z >= 2]
Computação Estatística em R
c 2016 Silva, A.R.
6 Capítulo 1. Objetos
1.4 Fatores
Vetores do tipo factor são usados para representar dados categóricos, or-
denados ou não.
No R, fatores são especialmente úteis para ajustar modelos de regressão.
A ordem dos níveis do fator ‘x’ pode ser ajustada pelo argumento
levels.
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 1. Objetos 7
R> m2
[,1] [,2]
[1,] 1 5
[2,] 2 6
[3,] 3 7
[4,] 4 8
R> dim(m2)
[1] 4 2
R> m3 <- matrix(c("a", "b", "c", "d"), nrow = 2,
+ ncol = 2, byrow = TRUE)
R> m3
[,1] [,2]
[1,] "a" "b"
[2,] "c" "d"
Matrizes também podem ser criadas combinando vetores com as funções
cbind(), rbind().
R> x <- 1:4
R> y <- c(0.5, 0.6, 0.7, 0.8)
R> cbind(x, y)
x y
[1,] 1 0.5
[2,] 2 0.6
[3,] 3 0.7
[4,] 4 0.8
R> rbind(x, y)
[,1] [,2] [,3] [,4]
x 1.0 2.0 3.0 4.0
y 0.5 0.6 0.7 0.8
Arrays, por sua vez, são combinações de matrizes de mesma dimensão.
R> a1 <- array(data = 1:12, dim = c(2, 2, 3))
R> a1
, , 1
[,1] [,2]
[1,] 1 3
[2,] 2 4
, , 2
[,1] [,2]
[1,] 5 7
[2,] 6 8
, , 3
Computação Estatística em R
c 2016 Silva, A.R.
8 Capítulo 1. Objetos
[,1] [,2]
[1,] 9 11
[2,] 10 12
1.5.3 Subsetting
Subconjuntos de matrizes podem ser extraídos usando os operadores [i,
j] para matrizes, ou [i, j, k, ...] para arrays.
R> m2[1, 2] # linha 1, coluna 2 da matriz ’m2’
[1] 5
R> m2[2:3, ] # linhas 2 a 3 de ‘m2’
[,1] [,2]
[1,] 2 6
[2,] 3 7
R> a1[1, 2, 3] # linha 1, coluna 2, matriz 3
[1] 11
1.6 Listas
Listas são tipos especiais de vetores que podem conter elementos de dife-
rentes classes e comprimentos.
R> x <- list("Cultivar A", 2.2221,
+ c(TRUE, FALSE, FALSE))
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 1. Objetos 9
R> x
[[1]]
[1] "Cultivar A"
[[2]]
[1] 2.2221
[[3]]
[1] TRUE FALSE FALSE
A seleção de elementos específicos de uma lista é feita com os operadores
duplos [[.
R> x[[1]]
[1] "Cultivar A"
1.7 data.frame()
Quadros de dados ou data frames apresentam uma característica comum
às listas: ambos podem conter objetos de diferentes classes. Entretanto, os
data frames permitem combinar apenas vetores e estes devem ter o mesmo
comprimento. De fato, data frames são mais similares à matrizes em forma,
pois tem entradas de linhas e colunas.
R> x <- data.frame(Cultivar = c("A", "B", "C"),
+ Precoce = c(TRUE, FALSE, TRUE))
R> x
Cultivar Precoce
1 A TRUE
2 B FALSE
3 C TRUE
Data frames são de forma usual criados por importação de dados, a
partir das funções read.table(), read.csv() ou read.csv2().
1.7.1 Subsetting/Attaching
É possível selecionar partes de um data frame usando os operadores [ ,
], da mesma forma como feito com matrizes. Além disso, se as colunas do
data frame tiverem nomes, então é possível selecioná-las usando o operador
$. Por exemplo:
R> x$Precoce
[1] TRUE FALSE TRUE
Ao lidar com um data frame várias vezes uma análises mais demorada,
a seleção de variáveis (colunas) pode ser cansativa e até desnecessária. A
solução aqui seria tornar "disponíveis"à memória do R as variáveis deste
data frame, de forma que possamos acessar os dados destas variáveis apenas
pelo nome da coluna. Isso é feito com a função attach().
Computação Estatística em R
c 2016 Silva, A.R.
10 Capítulo 1. Objetos
R> attach(x)
R> Precoce
[1] TRUE FALSE TRUE
Desta forma, o objeto x torna-se um novo caminho de busca de objetos,
no caso contendo os objetos Cultivar e Precoce. Para retirar x deste
caminho, use a função inversa: detach(x).
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 2
Importação/exportação
de dados
6 2 3 49.9
7 3 1 49.9
8 3 2 49.8
9 3 3 49.5
10 4 1 49.2
11 4 2 49.1
12 4 3 50.0
>
Note que usamos o argumento header = TRUE. Isso permite identificar
a primeira linha como nomes (cabeçalho) das colunas, não dados.
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 2. Importação/exportação de dados 13
2.3 Exercício
1. Faça a leitura do arquivo camadassolo.csv utilizando a função read.table().
Transforme os valores de resistência à penetração de MPa para kPa e
depois salve o data frame modificado no seu diretório de trabalho no
formato solo.csv. Não adicione uma nova coluna ao data frame
original!
2. Identifique quais as classes de cada coluna do conjunto de dados.
3. Crie um novo data frame de nome camada1 contendo apenas os dados
de umidade e densidade do solo da camada de 0-20 cm.
4. Tente resolver a questão anterior utilizando a função subset(). Veja
a documentação (help) da função, se necessário.
5. Crie uma lista tripla contendo os valores de umidade, densidade e
camada do solo com os dados da camada de 20-40 cm.
Computação Estatística em R
c 2016 Silva, A.R.
Parte II
MÉTODOS
UNIVARIADOS
15
Capítulo 3
Análise exploratória de
dados
• Gráfico de barras
• Gráfico de pizza ou de setores
• Diagrama de ramos-e-folhas
• Histograma
> stem(solo$RP)
The decimal point is at the |
0 | 47
1 | 0001445566668899
2 | 00000111112234455555667788999
3 | 000011222334444778
4 | 0002334446788
5 | 2277
6 | 25
> attach(solo)
> plot( density(RP) )
density.default(x = RP)
0.30
0.20
Density
0.10
0.00
0 2 4 6 8
N = 84 Bandwidth = 0.4638
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 3. Análise exploratória de dados 19
• Medidas de associação
> mean(RP)
[1] 2.907619
> median(RP)
[1] 2.75
Computação Estatística em R
c 2016 Silva, A.R.
20 Capítulo 3. Análise exploratória de dados
• sort()
• order()
3.2.6 str/summary
Ao fazer a leitura de um data frame, é interessante utilizar as funções str()
e summary(), para uma ideia inicial geral dos dados. Faça-o com o data
frame solo:
> str(solo)
> summary(solo)
> boxplot(RP)
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 3. Análise exploratória de dados 21
3.3 Exercícios
1. Com o objeto solo, calcule para todas as variáveis, por camada, as
seguintes estatísticas:
Amplitudes total, Hx = max(x) − min(x)
Coeficiente de variação, CV % = 100 × sx /x̄
2. Construa um histograma para a variável Tensão de preconsolidação
e adicione a linha de densidade kernel no mesmo gráfico. Dica: use a
função lines()
3. Qual é o 22o maior valor de Tensão?
4. Padronize a variável Tensão par ter média 0 e variância 1
Computação Estatística em R
c 2016 Silva, A.R.
Capítulo 4
Covariância e correlação
●
●
6
● ●
● ●
5
● ●
●●
● ● ●●
●
●
4
●
●● ●
RP
●●
●●● ●● ●
● ●
3 ●● ● ● ● ● ●
● ● ●●
● ● ● ● ●
● ●● ● ● ●
● ●
●●
● ● ● ●
2
● ● ●
● ●●●
● ● ● ●
● ●● ●
● ●●
1
●
●
●
6 8 10 12 14
US
A relação entre US e RP, neste caso, pode ser considerada, pelo menos,
aproximadamente linear. Assim, o coeficiente de correlação de Pearson
pode ser utilizado como medida de associação. No entanto, faça o diagrama
de dispersão das variáveis x e y a seguir e depois calcule a correlação...
> x <- seq(-2, 2, by = 0.1)
> y <- x^2
data: US and RP
t = -12.042, df = 82, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.8653465 -0.7057680
sample estimates:
cor
-0.7992292
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 4. Covariância e correlação 25
> round(covsolo, 2)
US DS RP CO Argila Tensao
US 3.75 -0.12 -1.99 7.75 -1.63 -11.69
DS -0.12 0.01 0.10 -0.41 0.14 0.71
RP -1.99 0.10 1.65 -5.73 1.74 10.42
CO 7.75 -0.41 -5.73 41.12 -9.92 -43.31
Argila -1.63 0.14 1.74 -9.92 4.54 14.88
Tensao -11.69 0.71 10.42 -43.31 14.88 82.99
Computação Estatística em R
c 2016 Silva, A.R.
26 Capítulo 4. Covariância e correlação
> library(corrplot)
> corrplot(corsolo)
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 4. Covariância e correlação 27
Tensao
Argila
CO
US
DS
RP
1
US 0.8
0.6
DS
0.4
RP 0.2
0
CO −0.2
−0.4
Argila
−0.6
Tensao −0.8
−1
> library(biotools)
> multcor.test(corsolo, n = nrow(solo))
Pairwise correlation t-test
data: corsolo
degrees of freedom: 82
alternative hypothesis: the true correlation is not equal to 0
p-values (with none adjustment for multiple tests):
US DS RP CO Argila Tensao
US <NA> *** *** *** *** ***
DS 0 <NA> *** *** *** ***
RP 0 0 <NA> *** *** ***
CO 0 0 0 <NA> *** ***
Argila 2e-04 0 0 0 <NA> ***
Tensao 0 0 0 0 0 <NA>
---
Signif. codes: ’***’0.001 ’**’0.01 ’*’0.05 ’.’0.1 ’ ’1
Computação Estatística em R
c 2016 Silva, A.R.
28 Capítulo 4. Covariância e correlação
H0 : Σ1 = Σ2 = ... = Σk = Σ
de igualdade ou homogeneidade das k matrizes de covariância é de especial
importância em análise de variância multivariada ou em análise discrimi-
nante canônica. O teste M de Box é o mais comumente utilizado para este
fim. O mesmo pode ser realizado com a função boxM() do pacote biotools.
Exemplo: Com o data set solo, podemos verificar se as matrizes de cova-
riâncias das duas camadas são estatisticamente iguais, da seguinte forma:
4.9 Exercícios
1. Construa o seguinte gráfico (figura 4.3):
US 0.8
0.6
−0.73 DS
0.4
−0.4
0.62 −0.76 −0.69 −0.74 CO
−0.6
−1
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 4. Covariância e correlação 29
Computação Estatística em R
c 2016 Silva, A.R.
Capítulo 5
Regressão
A simples correlação entre duas variáveis não fornece ideia de causa e efeito
de uma variável sobre outra. Por exemplo, quanto será a mudança média
em Y quando X variar em uma unidade. Além disso, na análise de corre-
lação ambas as variáveis são consideradas resposta, ou variáveis aleatórias,
o que nem sempre ocorre. Considere, por exemplo, um estudo de dose-
resposta de um fertilizante sobre a produção vegetal. A variável dose é a
controlada pelo pesquisador, isto é, não é aleatória, mas sim uma variável
explanatória cujo efeito sobre a resposta produção esta sendo avaliado.
yi = b0 + b1 xi + i
em que b0 e b1 são os parâmatros do modelo, i é o erro aleatório associado a
observação yi , suposto ter distribuição normal1 com média zero e variância
constante σ 2 .
A função à ser chamada é a lm() (de linear models).
1 Veremos mais adiante como checar a normalidade dos resíduos e também outras
Call:
lm(formula = RP ~ DS, data = solo)
Coefficients:
(Intercept) DS
-19.62 13.49
2 R2 (n − 1) − p + 1
Raj. =
n−p
A função Rsq() do pacote soilphysics calcula ambos os coeficientes de
determinação a partir do objeto m1.
> Rsq(m1)
$R.squared
[1] 0.7883671
$adj.R.squared
[1] 0.7857862
attr(,"class")
[1] "Rsq"
> library(car)
2 Na verdade, o teste é para autocorrelação serial, sendo indiretamente usado para
testar independência.
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 5. Regressão 33
> dwt(m1)
lag Autocorrelation D-W Statistic p-value
1 0.01462032 1.970238 0.912
Alternative hypothesis: rho != 0
> resid <- residuals(m1)
> shapiro.test(resid)
Shapiro-Wilk normality test
data: resid
W = 0.96404, p-value = 0.01908
H0 : b0 = b1 = 0
contra a alternativa de que ao menos um dos parâmetros é não nulo ao
nível α de significância.
> anova(m1)
Analysis of Variance Table
Response: RP
Df Sum Sq Mean Sq F value Pr(>F)
DS 1 108.250 108.250 305.46 < 2.2e-16 ***
Residuals 82 29.059 0.354
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
5.1.4 Teste t
A hipótese anterior, verificada com o teste F , nem sempre é de interesse.
Na verdade, o teste do intercepto tem pouco sentido prático. O teste t
pode ser aplicado para testar a nulidade (H0 : bj = 0) de cada um dos
parâmetros do modelo, individualmente.
b̂j
t= q
V̂ ar(b̂j )
Computação Estatística em R
c 2016 Silva, A.R.
34 Capítulo 5. Regressão
> summary(m1)
Call:
lm(formula = RP ~ DS, data = solo)
Residuals:
Min 1Q Median 3Q Max
-1.3153 -0.4391 -0.1104 0.3594 2.1547
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -19.6177 1.2905 -15.20 <2e-16 ***
DS 13.4882 0.7717 17.48 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.5953 on 82 degrees of freedom
Multiple R-squared: 0.7884, Adjusted R-squared: 0.7858
F-statistic: 305.5 on 1 and 82 DF, p-value: < 2.2e-16
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 5. Regressão 35
Intervalo de ●
●
6 confiança ● ●
predição
● ●
5 ●
●●
●
● ● ● ● ●
●
●
4 ●
●
●
●●
RP
●● ●●
● ●●
●●
3 ● ● ●●●●
● ● ●
●● ●
● ● ●
●● ●●
●●●
●
2 ● ● ●
● ●
●● ●
●
● ● ●
1 ● ● ●●
●
●
DS
Computação Estatística em R
c 2016 Silva, A.R.
36 Capítulo 5. Regressão
Residuals:
Min 1Q Median 3Q Max
-1.23224 -0.41100 -0.04888 0.32306 1.74196
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -11.42886 2.59128 -4.411 3.22e-05 ***
DS 9.56573 1.56371 6.117 3.43e-08 ***
US -0.22656 0.05022 -4.512 2.21e-05 ***
CO 0.00607 0.01585 0.383 0.703
Argila 0.02524 0.05057 0.499 0.619
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.532 on 79 degrees of freedom
Multiple R-squared: 0.8371, Adjusted R-squared: 0.8289
F-statistic: 101.5 on 4 and 79 DF, p-value: < 2.2e-16
5.3 Stepwise
Em regressão múltipla, deve-se sempre buscar por modelos parcimoniosos,
isto é, que sejam bem ajustados e com um mínimo possível de parâme-
tros. Tais modelos são em geral obtidos por meio de seleção de variáveis
explicativas. Um método amplamente utilizado de seleção é o stepwise, que
consiste em:
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 5. Regressão 37
AIC = −2logLike + 2k
em que logLike é o log natural da função de verossimilhança do modelo,
e k é o número de parâmetros. Quanto menor o valor do AIC, melhor o
ajuste do modelo.
Realizando um stepwise bidirecional a partir do modelo m2, teremos:
> step(m2)
Start: AIC=-101.17
RP ~ DS + US + CO + Argila
Df Sum of Sq RSS AIC
- CO 1 0.0415 22.403 -103.017
- Argila 1 0.0705 22.432 -102.908
<none> 22.361 -101.173
- US 1 5.7615 28.123 -83.916
- DS 1 10.5924 32.954 -70.600
Step: AIC=-103.02
RP ~ DS + US + Argila
Df Sum of Sq RSS AIC
- Argila 1 0.0387 22.441 -104.872
<none> 22.403 -103.017
- US 1 6.0633 28.466 -84.897
- DS 1 10.6293 33.032 -72.400
Step: AIC=-104.87
RP ~ DS + US
Computação Estatística em R
c 2016 Silva, A.R.
38 Capítulo 5. Regressão
> library(scatterplot3d)
> s3d <- scatterplot3d(x = DS, y = US, z = RP, angle = 45)
7 ● ●
●
● ●
6 ●
●● ● ● ●
5 ●●●● ● ●●
● ● ●
●●●● ● ● ● ●
●●
●●●●
●●●
●● ●●
4 ● ●● ● ● ●●●
RP
●●
● ●●●
●●
●●
● ●
●●●●●
●●● ●●
US
3 ● ●●● 16
14
2 ● 12
10
1 8
6
0 4
1.4 1.5 1.6 1.7 1.8 1.9
DS
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 5. Regressão 39
que um modelo é não linear se pelo menos uma das derivadas parciais em
relação aos parâmetros for uma função de pelo menos um parâmetro. Por
exemplo, o modelo y = b0 + xb1 + é não linear, pois:
∂y
= f (b1 ) = xb1 log(x)
∂b1
O método de estimação mais utilizado é o método dos mínimos quadra-
dos não lineares, cujo princípio é o mesmo do método de mínimos quadrados
para modelos lineares. Contudo, modelos não lineares raramente possuem
forma fechada para os estimadores. Assim sendo, a estimação é feita por
um processo iterativo, de acordo com algum algoritmo de busca, tais como
Gauss-Newton, Newton-Raphson, Gauss-Marquardt, entre outros. O uso
de processos iterativos requer, então, valores (ou chutes) iniciais para os
parâmetros.
Exemplo
Visando determinar o tamanho ideal de parcelas experimentais, Lessman &
Atkins (1963) propuseram o seguinte modelo para o coeficiente de variação
experimental:
y = b0 x−b1 +
em que y é o coeficiente de variação experimental; x é o tamanho da parcela;
b0 e b1 são parâmetros.
Uma forma bastante simples de se obter valores iniciais é por meio da
linearização do modelo não linear, ignorando (obviamente) o erro aleatório.
Com o exemplo, podemos fazer:
log(y) = log(b0 ) − b1 log(x)
que é, agora, um modelo de regressão linear simples.
Considere agora os seguintes dados de CV % e tamanho de parcela (m2 ):
> ps <- c(1, 2, 3, 4, 6, 8, 12)
> cv <- c(35.6, 29, 27.1, 25.6, 24.4, 23.3, 21.6)
> lm(log(cv) ~ log(ps))
Call:
lm(formula = log(cv) ~ log(ps))
Coefficients:
(Intercept) log(ps)
3.5309 -0.1908
Poderíamos então utilizar esses valores iniciais (3.53 e -0.19) para obter
as estimativas de mínimos quadrados não lineares, usando a função nls().
> nls(cv ~ b0*ps^-b1,
+ start = list(b0 = exp(3.53), b1 = 0.19))
Nonlinear regression model
Computação Estatística em R
c 2016 Silva, A.R.
40 Capítulo 5. Regressão
model: cv ~ b0 * ps^-b1
data: parent.frame()
b0 b1
34.5394 0.1996
residual sum-of-squares: 3.665
Number of iterations to convergence: 3
Achieved convergence tolerance: 3.061e-06
●
34
32
30
●
cv
28
●
26
●
24
●
22
2 4 6 8 10 12
ps
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 5. Regressão 41
Exemplo
Hartinee et al. (2010) utilizaram o modelo LRP para determinar a exigência
de nitrogênio por arroz. Dados de produção em função de doses de um
fertilizante nitrogenado são mostrados na tabela a seguir:
Computação Estatística em R
c 2016 Silva, A.R.
42 Capítulo 5. Regressão
7.67 + 0.1358x, x ≤ 91.9489
ŷ =
20.15666, x > 91.9489
sendo 21.15666 o platô de resposta.
A figura 5.4 mostra o ajuste do modelo.
●
20
●
●
18
16
prod
●
14
12
10
8
5.7 Exercícios
1. Ajuste um modelo de regressão linear múltipla para a resistência à
penetração em função da densidade e umidade do solo de cada uma
das duas camadas (0-20 e 20-40 cm). Depois construa um diagrama de
dispersão 3D, indicando com cores diferentes as observações tomadas
em cada camada. Finalmente, adicione a esse gráfico os dois planos de
regressão ajustados, separando também pelas cores das observações.
2. Como você classificaria o seguinte modelo, linear ou não linear?
√
y = b1 x + b2 x +
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 5. Regressão 43
y = A[1 − 10−c(x+b) ]
em que y é a resposta obtida (produção), x é a dose do fertilizante,
A é um parâmetro que representa a produção máxima, b é um parâ-
metro que representa a quantidade (dose) previamente existente no
solo e c é um parâmetro que representa um coeficiente de eficácia do
fertilizante. À exceção de c, todos os demais componentes da equação
são expressos em kg ha−1 . Esta lei foi estudada por Pimentel-Gomes
(1953) com os seguintes dados de produtividade de cana-de-açúcar (t
ha−1 ) em função de doses de vinhaça (m3 ha−1 ).
Computação Estatística em R
c 2016 Silva, A.R.
Capítulo 6
Análise de variância e
delineamentos
experimentais
yij = µi + ij
em que yij é a observação tomada na j-ésima repetição do i-ésimo nível do
fator; µi é a média do i-ésimo nível do fator; ij é o erro aleatório associado
a observação yij .
A hipótese à ser verificada é: H0 : µ1 = µ2 = ... = µI , contra a
alternativa de que ao menos um dos níveis tem efeito não nulo ou, de
forma mais simples, que ao menos uma das médias dos níveis difere das
demais.
46 Capítulo 6. Análise de variância e delineamentos experimentais
Exemplo
Considere dados1 de produção de quatro variedades de milho, obtidos de um
experimento em delineamento inteiramente casualizado (DIC) com cinco
repetições. Os mesmos estão disponíveis em arsilva.weebly.com.
> milho <- read.table("http://arsilva.weebly.com/uploads/2
+ /1/0/0/21008856/milho.txt", header = TRUE)
O ajuste do modelo de ANOVA é feito da seguinte forma:
> lm.milho <- lm(prod ~ variedade, data = milho)
> lm.milho
Call:
lm(formula = prod ~ variedade, data = milho)
Coefficients:
(Intercept) variedadeB variedadeC variedadeD
23 4 3 8
Nesse caso, o objeto lm.milho contem as estimativas de µA (23), µˆB =
µˆA + 4, µˆC = µˆA + 3 e µˆD = µˆA + 8. Isso porque o modelo é de posto
incompleto2 .
A tabela da ANOVA só é obtida com auxílio da função anova():
> anova(lm.milho)
Analysis of Variance Table
Response: prod
Df Sum Sq Mean Sq F value Pr(>F)
variedade 3 163.75 54.583 7.7976 0.001976 **
Residuals 16 112.00 7.000
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Concluímos então pelo teste F que há diferença (p = 0.0019) entre ao
menos duas das médias dos cultivares.
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 6. Análise de variância e delineamentos experimentais 47
Exemplo
Considere dados de produção de quatro cultivares de batata, obtidos de um
experimento em delineamento em blocos ao acaso (DBC) com três blocos.
Os mesmos estão disponíveis em arsilva.weebly.com.
> batata <- read.table("http://arsilva.weebly.com/uploads/2/
+ 1/0/0/21008856/batata.txt", h = TRUE)
> batata$cultivar <- as.factor(batata$cultivar)
> batata$bloco <- as.factor(batata$bloco)
Perceba que as duas últimas esta últimas linhas de comando são ne-
cessárias para que ao ajustar o modelo linear, o programa não entenda
os níveis de cultivar nem de bloco como valores numéricos e sim como
categorias ou níveis de um fator mesmo.
A ANOVA é obtida fazendo:
> lm.batata <- lm(prod ~ cultivar + bloco, data = batata)
> anova(lm.batata)
Analysis of Variance Table
Computação Estatística em R
c 2016 Silva, A.R.
48 Capítulo 6. Análise de variância e delineamentos experimentais
Response: prod
Df Sum Sq Mean Sq F value Pr(>F)
cultivar 3 4.3825 1.46083 13.8031 0.004218 **
bloco 2 0.4650 0.23250 2.1969 0.192373
Residuals 6 0.6350 0.10583
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 6. Análise de variância e delineamentos experimentais 49
6.6 Exercício
Instalou-se um experimento para avaliar o comportamento de 9 porta-
enxertos para a laranjeira Valência, casualizado em blocos com 3 repetições.
Após 12 anos, foram avaliados, então, os resultados de produção, em nú-
mero médio de frutos por planta. Os dados estão disponíveis em http://
arsilva.weebly.com/dados.html, sob o nome "laranja.txt"(Fonte: Teó-
filo Sobrinho, 1972). Faça a leitura destes e depois a análise de variância,
verificando também as pressuposições do modelo que se fizerem necessá-
rias.
Computação Estatística em R
c 2016 Silva, A.R.
Capítulo 7
Procedimentos de
comparações múltiplas de
médias
H0 : µ1 = µ2 = ... = µI
Entretanto, quando I > 2, algumas comparações específicas de trata-
mentos podem ser interesse. Nesse contexto, os procedimentos de compa-
rações múltiplas (PCM) são apropriados, desde que tratamento seja um
fator qualitativo, e servem como um complemento do teste F .
Há um número razoável de PCM disponível atualmente. Aplicaremos 5
deles e separando-os de acordo com a finalidade, em dois tipos principais:
para comparações planejadas e comparações post-hoc.
C = (µ1 + µ3 ) − (µ2 + µ4 )
No caso, o teste de C refere-se a comparação de dois grupos de médias,
conforme podemos escrever na hipótese H0 : µ1 +µ3 = µ2 +µ4 . A estatística
t-Student pode ser utilizada para testar a significância de um contraste,
pois:
52 Capítulo 7. Procedimentos de comparações múltiplas de médias
Ĉ
∼ tν
V̂ ar(Ĉ)
em que ν é o número de graus de liberdade do resíduo da análise de vari-
ância.
Exemplo
Retomemos o modelo ajustado lm.batata de ANOVA. O contraste anterior
pode ser testado por meio da implementação glht() do pacote multcomp.
> library(multcomp)
> c1 <- glht(lm.batata, linfct = mcp(cultivar = c(1, -1, 1, -1)))
> summary(c1)
fator).
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 7. Procedimentos de comparações múltiplas de médias 53
αF ≤ N × α
Assim, o procedimento é idêntico ao do teste LSD, com a diferença
que o nível de significância de cada um dos N contrastes entre 2 médias é
corrigido por:
α
α∗ =
N
Computação Estatística em R
c 2016 Silva, A.R.
54 Capítulo 7. Procedimentos de comparações múltiplas de médias
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 7. Procedimentos de comparações múltiplas de médias 55
.
Scott-Knott test
------------------------------------------------------------------------
Groups Treatments Means
1 a 1 50.90000
2 b 3 49.73333
3 b 4 49.43333
4 b 2 49.43333
------------------------------------------------------------------------
7.8 Exercícios
1. Construa um contraste para testar a hipótese de que a média da
variedade D de milho (exemplo do capítulo anterior) é maior que a
média das demais variedades. Realize o teste com a função glht().
2. Escolha e aplique um dos testes post-hoc para comparação de pares
de médias de variedades. Qual foi seu critério de escolha?
3. Qual teste post-hoc você recomendaria para comparar médias dos
9 porta-enxertos de laranja, apresentados no exercício do capítulo
anterior?
Computação Estatística em R
c 2016 Silva, A.R.
Capítulo 8
Experimentos multifatores
Um fator pode ser definido como aquilo que supostamente afeta a resposta
ou aquilo que se quer estudar, no caso de um fator de tratamento. Os
níveis de um fator correpondem aos valores que o mesmo assume. Ensaios
envolvendo apenas um fator não permitem estudar as interações que podem
existir entre os fatores. Por exemplo, em estudos de adubação ou calagem,
é esperado que hajam diferenças nas respostas obtidas com as doses de
acordo com a lâmina de irrigação aplicada. Assim, dose e lâmina seriam
dois fatores de tratamento à serem estudados simultaneamente num mesmo
experimento. Logo, chamamos de experimentos multifatores aqueles em
que se estuda o efeito de dois ou mais fatores simultaneamente.
variedade
76
C
mean of producao
74 B
A
72
70
68
66
vinhaca
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 8. Experimentos multifatores 59
Response: producao
Df Sum Sq Mean Sq F value Pr(>F)
bloco 2 3.389 1.694 0.7669 0.47649
variedade 2 278.222 139.111 62.9577 7.880e-10 ***
vinhaca 3 226.306 75.435 34.1398 1.871e-08 ***
variedade:vinhaca 6 39.778 6.630 3.0004 0.02689 *
Residuals 22 48.611 2.210
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Perceba que tanto a interação quanto os efeitos principais foram signi-
ficativos (p < 0.05). Agora, o desdobramento da interação pode ser feito
i) aplicando um teste post-hoc aos níveis de variedade em dada dose e ii)
ajustando-se modelos de regressão para a produção de cana em função da
dose de vinhaça em cada variedade. No R há diversas funções para se fa-
zer isso, podendo-se citar algumas dos pacotes ExpDes e agricolae. Por
Computação Estatística em R
c 2016 Silva, A.R.
60 Capítulo 8. Experimentos multifatores
> with(cana,
+ fat2.rbd(factor1 = variedade, factor2 = vinhaca,
+ block = bloco, resp = producao, quali = c(TRUE, FALSE),
+ mcomp = "tukey", fac.names = c("Variedade", "Dose"),
+ sigT = 0.05, sigF = 0.05))
> library(ExpDes)
> data(ex8)
> data(secaAd)
> with(ex8,
+ fat2.ad.crd(factor1 = inoculante, factor2 = biodiesel,
+ repet = vaso, resp = seca, respAd = secaAd,
+ quali = c(TRUE, FALSE),
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 8. Experimentos multifatores 61
+ mcomp = "tukey",
+ fac.names = c("Inoculante", "Oleo"),
+ sigT = 0.05, sigF = 0.05))
Veja o resultado (extenso!) da análise no R.
Nota: o ExpDes não realiza a análise de fatoriais com mais de um trata-
mento adicional. Para tal, será preciso usar a função padrão lm() mesmo.
Exemplo
Considere dados de um experimento em blocos ao acaso, com 4 repetições,
onde foram estudados dois sistemas de preparo do solo (plantio direto e
preparo reduzido) e cinco cultivares
# leitura de dados
> parcsub <- read.csv("http://arsilva.weebly.com/uploads/2
+ /1/0/0/21008856/splitplot.csv", h=T)
# análises no ExpDes
> with(parcsub,
+ split2.rbd(factor1 = sistema, factor2 = cultivar,
+ block = bloco, resp = prod, quali = c(TRUE, TRUE),
+ mcomp = "tukey", fac.names = c("Sistema", "Cultivar"),
+ sigT = 0.05, sigF = 0.05))
Computação Estatística em R
c 2016 Silva, A.R.
62 Capítulo 8. Experimentos multifatores
Confira os resultados no R.
8.5 Exercícios
1. Considere dados de um experimento fatorial 3 × 2 + 1, sobre controle
químico de plantas daninhas na cultura do gergelim, sendo 3 épocas
de aplicação pós-emergencial (15, 30 e 45 dias após emergência), duas
doses (1,5 e 2,0 L/ha) de Targa
.
R Foram deixadas parcelas sem ne-
nhum tipo de controle, as quais compõem um tratamento adicional.
O experimento foi instalado em DBC, com 4 repetições (blocos). Da-
dos disponíveis em: http://arsilva.weebly.com/dados.html.
Repetição
Dose Aplicação
I II III IV
0 Cova 2,778 2,618 1,164 2,996
Sulco 2,467 3,284 2,773 2,280
Lanço 2,422 2,760 1,747 1,853
40 Cova 3,302 2,671 2,782 2,502
Sulco 3,653 2,653 3,529 2,258
Lanço 3,711 3,284 2,556 3,284
80 Cova 2,938 2,813 2,560 3,049
Sulco 3,900 4,356 3,560 4,013
Lanço 2,702 3,520 3,382 3,524
120 Cova 3,013 3,787 3,142 3,604
Sulco 3,338 3,369 2,507 4,200
Lanço 3,156 4,369 2,831 4,222
• Faça uma análise exploratória gráfica para avaliar o efeito dos fatores
e de interação entre os mesmos.
c 2016 Silva, A.R. Computação Estatística em R
Capítulo 8. Experimentos multifatores 63
Computação Estatística em R
c 2016 Silva, A.R.