Atributos químicos do solo sob cultivo de abacaxi em função da aplicação de gesso e cobertura do solo

Walmes Marques Zeviani,
Milson Evaldo Serafim,

Definições da sessão

##-----------------------------------------------------------------------------
## Definições da sessão.

pkg <- c("lattice", "latticeExtra", "doBy", "multcomp", "reshape")
sapply(pkg, require, character.only=TRUE)
## Loading required package: lattice
## Loading required package: latticeExtra
## Loading required package: RColorBrewer
## Loading required package: doBy
## Loading required package: survival
## Loading required package: splines
## Loading required package: MASS
## Loading required package: multcomp
## Loading required package: mvtnorm
## Loading required package: reshape
## Loading required package: plyr
## 
## Attaching package: 'reshape'
## 
## The following objects are masked from 'package:plyr':
## 
##     rename, round_any
##      lattice latticeExtra         doBy     multcomp      reshape 
##         TRUE         TRUE         TRUE         TRUE         TRUE

##-----------------------------------------------------------------------------
## Funções extras.

u <- Sys.info()["user"]; u
##     user 
## "walmes"
if(u=="walmes"){
    source("/home/walmes/Dropbox/Public/apc.R")
    source("/home/walmes/Dropbox/Public/equallevels.R")
    source("/home/walmes/Dropbox/Public/segplotby.R")
} else {
    source("http://dl.dropboxusercontent.com/u/48140237/apc.R")
    source("http://dl.dropboxusercontent.com/u/48140237/equallevels.R")
    source("http://dl.dropboxusercontent.com/u/48140237/segplotby.R")
}

##-----------------------------------------------------------------------------
## Gráficos monocromáticos.

## names(lattice.options())
trellis.device(color=FALSE)

Leitura e análise preliminar dos dados

##-----------------------------------------------------------------------------
## Ler.

list.files(pattern="\\.txt$")
## [1] "abacaxisolo.txt" "resultados.txt"
url <- "http://www.leg.ufpr.br/~walmes/data/abacaxisolo.txt"
da <- read.table("abacaxisolo.txt", header=TRUE, sep="\t")
str(da)
## 'data.frame':    64 obs. of  12 variables:
##  $ cober: Factor w/ 2 levels "com cobertura",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ ges  : Factor w/ 2 levels "com gesso","sem gesso": 2 2 2 2 2 2 2 2 2 2 ...
##  $ vari : Factor w/ 4 levels "Havai","IAC Fantástico",..: 4 4 4 4 1 1 1 1 2 2 ...
##  $ blo  : int  1 2 3 4 1 2 3 4 1 2 ...
##  $ ph   : num  4.8 5.6 5 5 4.5 4.8 4.8 5.1 4.7 4.4 ...
##  $ p    : num  3.16 3.74 14.81 33.97 3.53 ...
##  $ k    : num  0.57 0.54 0.31 0.68 0.65 0.68 0.39 0.72 0.84 0.52 ...
##  $ ca   : num  1.1 1.5 1.5 1.3 1.2 1.1 1.2 1.1 1.1 1.1 ...
##  $ mg   : num  1.3 1.1 1 0.8 1 1.2 1.4 1.5 1.3 1.2 ...
##  $ mo   : num  13.8 14.8 16 14.1 20.7 ...
##  $ ctc  : num  2.97 3.24 2.91 2.98 2.95 3.18 3.09 3.42 3.34 2.92 ...
##  $ v    : num  56.2 57.5 57.5 57.2 57.9 ...
head(da)
##           cober       ges   vari blo  ph     p    k  ca  mg    mo  ctc     v
## 1 sem cobertura sem gesso Pérola   1 4.8  3.16 0.57 1.1 1.3 13.82 2.97 56.18
## 2 sem cobertura sem gesso Pérola   2 5.6  3.74 0.54 1.5 1.1 14.76 3.24 57.48
## 3 sem cobertura sem gesso Pérola   3 5.0 14.81 0.31 1.5 1.0 16.01 2.91 57.52
## 4 sem cobertura sem gesso Pérola   4 5.0 33.97 0.68 1.3 0.8 14.13 2.98 57.25
## 5 sem cobertura sem gesso  Havai   1 4.5  3.53 0.65 1.2 1.0 20.72 2.95 57.86
## 6 sem cobertura sem gesso  Havai   2 4.8 33.97 0.68 1.1 1.2 14.44 3.18 58.94

##-----------------------------------------------------------------------------
## Editar.

da$blo <- factor(da$blo)
##-----------------------------------------------------------------------------
## Resumo descritivo.

with(da, ftable(vari~cober+ges))
##                         vari Havai IAC Fantástico Imperial Pérola
## cober         ges                                                
## com cobertura com gesso          4              4        4      4
##               sem gesso          4              4        4      4
## sem cobertura com gesso          4              4        4      4
##               sem gesso          4              4        4      4

##-----------------------------------------------------------------------------
## Presença de missings.

colSums(apply(da[,-c(1:4)], 2, is.na))
##  ph   p   k  ca  mg  mo ctc   v 
##   0   0   0   0   5   0   0   0

## lapply(da[,-c(1:4)],
##       function(i){
##           with(da, xtabs(!is.na(i)~vari+interaction(ges, cober)))
##       })

pH

##-----------------------------------------------------------------------------
## Preliminar.

xyplot(ph~cober|vari, groups=ges, data=da,
       jitter.x=TRUE, type=c("p","a"), layout=c(NA,1))

plot of chunk unnamed-chunk-4

##-----------------------------------------------------------------------------
## Modelo.

m0 <- lm(ph~blo+vari*ges*cober, data=da)

## Diagnóstico dos resíduos.
par(mfrow=c(2,2))
plot(m0)

plot of chunk unnamed-chunk-5

layout(1)

## Quadro de anova.
anova(m0)
## Analysis of Variance Table
## 
## Response: ph
##                Df Sum Sq Mean Sq F value Pr(>F)   
## blo             3  0.039   0.013    0.19 0.9032   
## vari            3  0.439   0.146    2.12 0.1110   
## ges             1  0.214   0.214    3.10 0.0852 . 
## cober           1  0.544   0.544    7.87 0.0074 **
## vari:ges        3  0.297   0.099    1.43 0.2460   
## vari:cober      3  0.159   0.053    0.77 0.5178   
## ges:cober       1  0.056   0.056    0.82 0.3710   
## vari:ges:cober  3  0.137   0.046    0.66 0.5811   
## Residuals      45  3.108   0.069                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

##-----------------------------------------------------------------------------
## Modelo com interações abandonadas.

m1 <- update(m0, .~blo+vari+ges+cober)
anova(m1, m0)
## Analysis of Variance Table
## 
## Model 1: ph ~ blo + vari + ges + cober
## Model 2: ph ~ blo + vari * ges * cober
##   Res.Df  RSS Df Sum of Sq    F Pr(>F)
## 1     55 3.76                         
## 2     45 3.11 10     0.649 0.94   0.51

##-----------------------------------------------------------------------------
## Comparações múltiplas.

## LSmeans(m0, effect="cober")
lsmc <- LSmeans(m1, effect="cober")
lsmc <- cbind(lsmc$grid, lsmc$coef)
lsmc <- equallevels(lsmc, da)
lsmc
##           cober estimate     se df t.stat   p.value   lwr   upr
## 1 com cobertura    4.922 0.0462 55  106.5 2.106e-65 4.829 5.014
## 2 sem cobertura    4.738 0.0462 55  102.5 1.702e-64 4.645 4.830

## LSmeans(m0, effect="ges")
lsmg <- LSmeans(m1, effect="ges")
lsmg <- cbind(lsmg$grid, lsmg$coef)
lsmg <- equallevels(lsmg, da)
lsmg
##         ges estimate     se df t.stat   p.value   lwr   upr
## 1 com gesso    4.772 0.0462 55  103.3 1.146e-64 4.679 4.864
## 2 sem gesso    4.888 0.0462 55  105.8 3.091e-65 4.795 4.980

## LSmeans(m0, effect="vari")
lsmv <- LSmeans(m1, effect="vari")
lsmv <- cbind(lsmv$grid, lsmv$coef)
lsmv <- equallevels(lsmv, da)
lsmv
##             vari estimate      se df t.stat   p.value   lwr   upr
## 1          Havai    4.850 0.06534 55  74.22 7.823e-57 4.719 4.981
## 2 IAC Fantástico    4.713 0.06534 55  72.12 3.745e-56 4.582 4.843
## 3       Imperial    4.813 0.06534 55  73.65 1.194e-56 4.682 4.943
## 4         Pérola    4.944 0.06534 55  75.66 2.757e-57 4.813 5.075
##-----------------------------------------------------------------------------
## Gráficos.

xlab <- expression("pH")

p1 <- 
    segplot(cober~lwr+upr, centers=estimate,
            data=lsmc, draw=FALSE,
            xlab=xlab, ylab="Cobertura do solo")

p2 <- 
    segplot(ges~lwr+upr, centers=estimate,
            data=lsmg, draw=FALSE,
            xlab=xlab, ylab="Aplicação de gesso")

p3 <- 
    segplot(vari~lwr+upr, centers=estimate,
            data=lsmv, draw=FALSE,
            xlab=xlab, ylab="Variedade de abacaxi")

plot(p1, split=c(1,1,1,3), more=TRUE)
plot(p2, split=c(1,2,1,3), more=TRUE)
plot(p3, split=c(1,3,1,3), more=FALSE)

plot of chunk unnamed-chunk-6

Fósforo (P)

##-----------------------------------------------------------------------------
## Preliminar.

xyplot(log(p)~cober|vari, groups=ges, data=da,
       jitter.x=TRUE, type=c("p","a"), layout=c(NA,1))

plot of chunk unnamed-chunk-7

##-----------------------------------------------------------------------------
## Modelo.

m0 <- lm(p~blo+vari*ges*cober, data=da)

## Diagnóstico dos resíduos.
par(mfrow=c(2,2))
plot(m0)

plot of chunk unnamed-chunk-8

layout(1)

MASS::boxcox(m0)
abline(v=1/3, col=2)

plot of chunk unnamed-chunk-8


m0 <- lm(p^(1/3)~blo+vari*ges*cober, data=da)

## Diagnóstico dos resíduos.
par(mfrow=c(2,2))
plot(m0)

plot of chunk unnamed-chunk-8

layout(1)

## Quadro de anova.
anova(m0)
## Analysis of Variance Table
## 
## Response: p^(1/3)
##                Df Sum Sq Mean Sq F value  Pr(>F)    
## blo             3    3.0     1.0    1.81    0.16    
## vari            3    1.6     0.5    0.98    0.41    
## ges             1   10.8    10.8   19.91 5.4e-05 ***
## cober           1   59.6    59.6  109.69 1.2e-13 ***
## vari:ges        3    1.4     0.5    0.85    0.48    
## vari:cober      3    0.6     0.2    0.36    0.78    
## ges:cober       1    0.5     0.5    0.99    0.33    
## vari:ges:cober  3    1.7     0.6    1.04    0.38    
## Residuals      45   24.4     0.5                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

##-----------------------------------------------------------------------------
## Modelo com interações abandonadas.

m1 <- update(m0, .~blo+vari+ges+cober)
anova(m1, m0)
## Analysis of Variance Table
## 
## Model 1: p^(1/3) ~ blo + vari + ges + cober
## Model 2: p^(1/3) ~ blo + vari * ges * cober
##   Res.Df  RSS Df Sum of Sq    F Pr(>F)
## 1     55 28.6                         
## 2     45 24.4 10       4.2 0.77   0.65

##-----------------------------------------------------------------------------
## Comparações múltiplas.

## LSmeans(m0, effect="cober")
lsmc <- LSmeans(m1, effect="cober")
lsmc <- cbind(lsmc$grid, lsmc$coef)
lsmc <- equallevels(lsmc, da)
lsmc[,c("estimate","lwr","upr")] <- lsmc[,c("estimate","lwr","upr")]^3
lsmc
##           cober estimate     se df t.stat   p.value    lwr   upr
## 1 com cobertura    74.51 0.1276 55  32.99 6.356e-38 61.737 88.93
## 2 sem cobertura    11.83 0.1276 55  17.86 1.480e-24  8.275 16.27

## LSmeans(m0, effect="ges")
lsmg <- LSmeans(m1, effect="ges")
lsmg <- cbind(lsmg$grid, lsmg$coef)
lsmg <- equallevels(lsmg, da)
lsmg[,c("estimate","lwr","upr")] <- lsmg[,c("estimate","lwr","upr")]^3
lsmg
##         ges estimate     se df t.stat   p.value   lwr   upr
## 1 com gesso    48.79 0.1276 55  28.64 9.799e-35 39.25 59.77
## 2 sem gesso    22.72 0.1276 55  22.20 3.964e-29 17.10 29.44

## LSmeans(m0, effect="vari")
lsmv <- LSmeans(m1, effect="vari")
lsmv <- cbind(lsmv$grid, lsmv$coef)
lsmv <- equallevels(lsmv, da)
lsmv[,c("estimate","lwr","upr")] <- lsmv[,c("estimate","lwr","upr")]^3
lsmv
##             vari estimate     se df t.stat   p.value   lwr   upr
## 1          Havai    28.42 0.1804 55  16.92 1.863e-23 19.47 39.77
## 2 IAC Fantástico    40.10 0.1804 55  18.97 8.416e-26 28.68 54.19
## 3       Imperial    38.39 0.1804 55  18.70 1.684e-25 27.32 52.10
## 4         Pérola    30.51 0.1804 55  17.32 6.230e-24 21.10 42.37
##-----------------------------------------------------------------------------
## Gráficos.

xlab <- expression("Fósforo"~(mg~dm^{-3}))

p1 <- 
    segplot(cober~lwr+upr, centers=estimate,
            data=lsmc, draw=FALSE,
            xlab=xlab, ylab="Cobertura do solo")

p2 <- 
    segplot(ges~lwr+upr, centers=estimate,
            data=lsmg, draw=FALSE,
            xlab=xlab, ylab="Aplicação de gesso")

p3 <- 
    segplot(vari~lwr+upr, centers=estimate,
            data=lsmv, draw=FALSE,
            xlab=xlab, ylab="Variedade de abacaxi")

plot(p1, split=c(1,1,1,3), more=TRUE)
plot(p2, split=c(1,2,1,3), more=TRUE)
plot(p3, split=c(1,3,1,3), more=FALSE)

plot of chunk unnamed-chunk-9

Potássio (K)

##-----------------------------------------------------------------------------
## Preliminar.

xyplot(k~cober|vari, groups=ges, data=da,
       jitter.x=TRUE, type=c("p","a"), layout=c(NA,1))

plot of chunk unnamed-chunk-10

##-----------------------------------------------------------------------------
## Modelo.

m0 <- lm(k~blo+vari*ges*cober, data=da)

## Diagnóstico dos resíduos.
par(mfrow=c(2,2))
plot(m0)

plot of chunk unnamed-chunk-11

layout(1)

## Quadro de anova.
anova(m0)
## Analysis of Variance Table
## 
## Response: k
##                Df Sum Sq Mean Sq F value Pr(>F)  
## blo             3  0.096  0.0321    1.63  0.196  
## vari            3  0.060  0.0199    1.01  0.397  
## ges             1  0.050  0.0501    2.54  0.118  
## cober           1  0.024  0.0244    1.24  0.271  
## vari:ges        3  0.008  0.0028    0.14  0.935  
## vari:cober      3  0.152  0.0506    2.57  0.066 .
## ges:cober       1  0.031  0.0311    1.58  0.216  
## vari:ges:cober  3  0.004  0.0013    0.06  0.979  
## Residuals      45  0.886  0.0197                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

##-----------------------------------------------------------------------------
## Modelo com interações abandonadas.

m1 <- update(m0, .~blo+vari+ges+cober)
anova(m1, m0)
## Analysis of Variance Table
## 
## Model 1: k ~ blo + vari + ges + cober
## Model 2: k ~ blo + vari * ges * cober
##   Res.Df   RSS Df Sum of Sq    F Pr(>F)
## 1     55 1.081                         
## 2     45 0.886 10     0.195 0.99   0.47

##-----------------------------------------------------------------------------
## Comparações múltiplas.

## LSmeans(m0, effect="cober")
lsmc <- LSmeans(m1, effect="cober")
lsmc <- cbind(lsmc$grid, lsmc$coef)
lsmc <- equallevels(lsmc, da)
lsmc
##           cober estimate      se df t.stat   p.value    lwr    upr
## 1 com cobertura   0.5594 0.02479 55  22.57 1.758e-29 0.5097 0.6090
## 2 sem cobertura   0.5984 0.02479 55  24.14 5.998e-31 0.5488 0.6481

## LSmeans(m0, effect="ges")
lsmg <- LSmeans(m1, effect="ges")
lsmg <- cbind(lsmg$grid, lsmg$coef)
lsmg <- equallevels(lsmg, da)
lsmg
##         ges estimate      se df t.stat   p.value    lwr    upr
## 1 com gesso   0.5509 0.02479 55  22.23 3.740e-29 0.5013 0.6006
## 2 sem gesso   0.6069 0.02479 55  24.48 2.962e-31 0.5572 0.6565

## LSmeans(m0, effect="vari")
lsmv <- LSmeans(m1, effect="vari")
lsmv <- cbind(lsmv$grid, lsmv$coef)
lsmv <- equallevels(lsmv, da)
lsmv
##             vari estimate      se df t.stat   p.value    lwr    upr
## 1          Havai   0.5356 0.03505 55  15.28 1.909e-21 0.4654 0.6059
## 2 IAC Fantástico   0.6212 0.03505 55  17.72 2.125e-24 0.5510 0.6915
## 3       Imperial   0.5850 0.03505 55  16.69 3.484e-23 0.5147 0.6553
## 4         Pérola   0.5737 0.03505 55  16.37 8.502e-23 0.5035 0.6440
##-----------------------------------------------------------------------------
## Gráficos.

xlab <- expression("Potássio"~(cmol[c]~dm^{-3}))

p1 <- 
    segplot(cober~lwr+upr, centers=estimate,
            data=lsmc, draw=FALSE,
            xlab=xlab, ylab="Cobertura do solo")

p2 <- 
    segplot(ges~lwr+upr, centers=estimate,
            data=lsmg, draw=FALSE,
            xlab=xlab, ylab="Aplicação de gesso")

p3 <- 
    segplot(vari~lwr+upr, centers=estimate,
            data=lsmv, draw=FALSE,
            xlab=xlab, ylab="Variedade de abacaxi")

plot(p1, split=c(1,1,1,3), more=TRUE)
plot(p2, split=c(1,2,1,3), more=TRUE)
plot(p3, split=c(1,3,1,3), more=FALSE)

plot of chunk unnamed-chunk-12

Cálcio (Ca)

##-----------------------------------------------------------------------------
## Preliminar.

xyplot(ca~cober|vari, groups=ges, data=da,
       jitter.x=TRUE, type=c("p","a"), layout=c(NA,1))

plot of chunk unnamed-chunk-13

##-----------------------------------------------------------------------------
## Modelo.

m0 <- lm(ca~blo+vari*ges*cober, data=da)

## Diagnóstico dos resíduos.
par(mfrow=c(2,2))
plot(m0)

plot of chunk unnamed-chunk-14

layout(1)

MASS::boxcox(m0)
abline(v=1/3, col=2)

plot of chunk unnamed-chunk-14


m0 <- lm(ca^(1/3)~blo+vari*ges*cober, data=da)

## Diagnóstico dos resíduos.
par(mfrow=c(2,2))
plot(m0)

plot of chunk unnamed-chunk-14

layout(1)

## Quadro de anova.
anova(m0)
## Analysis of Variance Table
## 
## Response: ca^(1/3)
##                Df Sum Sq Mean Sq F value Pr(>F)    
## blo             3  0.010   0.003    0.56  0.643    
## vari            3  0.040   0.013    2.32  0.088 .  
## ges             1  0.004   0.004    0.66  0.422    
## cober           1  0.948   0.948  164.94 <2e-16 ***
## vari:ges        3  0.034   0.011    1.98  0.130    
## vari:cober      3  0.028   0.009    1.64  0.193    
## ges:cober       1  0.035   0.035    6.08  0.018 *  
## vari:ges:cober  3  0.027   0.009    1.58  0.207    
## Residuals      45  0.259   0.006                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Quadro de anova particionado.
m0 <- aov(ca^(1/3)~blo+vari*ges+ges/cober+vari:ges:cober, data=da)
c0 <- coef(m0)
a <- m0$assign
c0 <- c0[a==5]
s <- paste0("ges", levels(da$ges), ":cober")
s <- sapply(s, grep, x=names(c0), simplify=FALSE)
names(s) <- levels(da$ges)
summary(m0, split=list("ges:cober"=s))
##                        Df Sum Sq Mean Sq F value  Pr(>F)    
## blo                     3  0.010   0.003    0.56   0.643    
## vari                    3  0.040   0.013    2.32   0.088 .  
## ges                     1  0.004   0.004    0.66   0.422    
## vari:ges                3  0.034   0.011    1.98   0.130    
## ges:cober               2  0.983   0.491   85.51 4.7e-16 ***
##   ges:cober: com gesso  1  0.673   0.673  117.17 4.1e-14 ***
##   ges:cober: sem gesso  1  0.310   0.310   53.85 3.2e-09 ***
## vari:ges:cober          6  0.056   0.009    1.61   0.166    
## Residuals              45  0.259   0.006                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

##-----------------------------------------------------------------------------
## Modelo com interações abandonadas.

m1 <- update(m0, .~blo+vari+ges*cober)
anova(m1, m0)
## Analysis of Variance Table
## 
## Model 1: ca^(1/3) ~ blo + vari + ges + cober + ges:cober
## Model 2: ca^(1/3) ~ blo + vari * ges + ges/cober + vari:ges:cober
##   Res.Df   RSS Df Sum of Sq    F Pr(>F)
## 1     54 0.348                         
## 2     45 0.259  9    0.0898 1.74   0.11

##-----------------------------------------------------------------------------
## Comparações múltiplas.

## LSmeans(m0, effect="cober")
lsmc <- LSmeans(m1, effect=c("cober","ges"))
lsmc <- cbind(lsmc$grid, lsmc$coef)
lsmc <- equallevels(lsmc, da)
lsmc[,c("estimate","lwr","upr")] <- lsmc[,c("estimate","lwr","upr")]^3
lsmc
##           cober       ges estimate      se df t.stat   p.value    lwr   upr
## 1 com cobertura com gesso    2.181 0.02008 54  64.58 8.253e-53 1.9838 2.390
## 2 sem cobertura com gesso    1.020 0.02008 54  50.13 5.749e-47 0.9025 1.147
## 3 com cobertura sem gesso    1.882 0.02008 54  61.48 1.127e-51 1.7040 2.072
## 4 sem cobertura sem gesso    1.118 0.02008 54  51.69 1.134e-47 0.9932 1.254

## LSmeans(m0, effect="vari")
lsmv <- LSmeans(m1, effect="vari")
lsmv <- cbind(lsmv$grid, lsmv$coef)
lsmv <- equallevels(lsmv, da)
lsmv[,c("estimate","lwr","upr")] <- lsmv[,c("estimate","lwr","upr")]^3
lsmv
##             vari estimate      se df t.stat   p.value   lwr   upr
## 1          Havai    1.660 0.02008 54  58.97 1.043e-50 1.497 1.836
## 2 IAC Fantástico    1.388 0.02008 54  55.55 2.490e-49 1.243 1.544
## 3       Imperial    1.465 0.02008 54  56.56 9.560e-50 1.315 1.627
## 4         Pérola    1.484 0.02008 54  56.80 7.623e-50 1.332 1.647
##-----------------------------------------------------------------------------
## Gráficos.

xlab <- expression("Cálcio"~(cmol[c]~dm^{-3}))

p1 <- 
    segplot(cober~lwr+upr|ges, centers=estimate,
            data=lsmc, draw=FALSE,
            xlab=xlab, ylab="Cobertura do solo")

l <- levels(lsmc$cober)
key <- list(corner=c(0.97,0.97),
            type="o", divide=1,
            lines=list(lty=1, pch=1:length(l)),
            text=list(l))

p2 <- 
    segplot(ges~lwr+upr, centers=estimate,
            data=lsmc, draw=FALSE, key=key,
            by=lsmc$cober, f=0.1, pch=as.integer(lsmc$cober),
            xlab=xlab, ylab="Aplicação de gesso",
            panel=segplot.by)

p3 <- 
    segplot(vari~lwr+upr, centers=estimate,
            data=lsmv, draw=FALSE,
            xlab=xlab, ylab="Variedade de abacaxi")

plot(p1, split=c(1,1,1,3), more=TRUE)
plot(p2, split=c(1,2,1,3), more=TRUE)
plot(p3, split=c(1,3,1,3), more=FALSE)

plot of chunk unnamed-chunk-15

Magnésio (Mg)

##-----------------------------------------------------------------------------
## Preliminar.

xyplot(mg~cober|vari, groups=ges, data=da[!is.na(da$mg),],
       jitter.x=TRUE, type=c("p","a"), layout=c(NA,1))

plot of chunk unnamed-chunk-16

##-----------------------------------------------------------------------------
## Modelo.

m0 <- lm(mg~blo+vari*ges*cober, data=da)

## Diagnóstico dos resíduos.
par(mfrow=c(2,2))
plot(m0)

plot of chunk unnamed-chunk-17

layout(1)

## Quadro de anova.
anova(m0)
## Analysis of Variance Table
## 
## Response: mg
##                Df Sum Sq Mean Sq F value  Pr(>F)    
## blo             3   0.18   0.059    0.59 0.62433    
## vari            3   0.14   0.045    0.45 0.71693    
## ges             1   0.32   0.322    3.21 0.08067 .  
## cober           1   1.36   1.365   13.64 0.00066 ***
## vari:ges        3   0.30   0.101    1.01 0.39663    
## vari:cober      3   0.89   0.297    2.96 0.04351 *  
## ges:cober       1   0.11   0.114    1.14 0.29232    
## vari:ges:cober  3   0.65   0.216    2.16 0.10753    
## Residuals      40   4.00   0.100                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Quadro de anova particionado.
m0 <- aov(mg~blo+vari*ges+vari/cober+vari:ges:cober, data=da)
c0 <- coef(m0)
a <- m0$assign
c0 <- c0[a==5]
s <- paste0("vari", levels(da$vari), ":cober")
s <- sapply(s, grep, x=names(c0), simplify=FALSE)
names(s) <- levels(da$vari)
summary(m0, split=list("vari:cober"=s))
##                              Df Sum Sq Mean Sq F value  Pr(>F)    
## blo                           3   0.18   0.059    0.59 0.62433    
## vari                          3   0.14   0.045    0.45 0.71693    
## ges                           1   0.32   0.322    3.21 0.08067 .  
## vari:ges                      3   0.30   0.099    0.99 0.40584    
## vari:cober                    4   2.26   0.565    5.65 0.00106 ** 
##   vari:cober: Havai           1   1.51   1.511   15.09 0.00038 ***
##   vari:cober: IAC Fantástico  1   0.68   0.681    6.80 0.01276 *  
##   vari:cober: Imperial        1   0.00   0.002    0.02 0.88948    
##   vari:cober: Pérola          1   0.07   0.067    0.67 0.41686    
## vari:ges:cober                4   0.76   0.191    1.91 0.12819    
## Residuals                    40   4.00   0.100                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 5 observations deleted due to missingness

##-----------------------------------------------------------------------------
## Modelo com interações abandonadas.

m1 <- update(m0, .~blo+vari*cober+ges)
anova(m1, m0)
## Analysis of Variance Table
## 
## Model 1: mg ~ blo + vari + cober + ges + vari:cober
## Model 2: mg ~ blo + vari * ges + vari/cober + vari:ges:cober
##   Res.Df RSS Df Sum of Sq    F Pr(>F)
## 1     47 5.2                         
## 2     40 4.0  7       1.2 1.71   0.13

##-----------------------------------------------------------------------------
## Comparações múltiplas.

## LSmeans(m0, effect="cober")
lsmc <- LSmeans(m1, effect=c("cober","vari"))
lsmc <- cbind(lsmc$grid, lsmc$coef)
lsmc <- equallevels(lsmc, da)
lsmc
##           cober           vari estimate     se df t.stat   p.value    lwr    upr
## 1 com cobertura          Havai   0.6675 0.1375 47  4.854 1.376e-05 0.3909 0.9441
## 2 sem cobertura          Havai   1.3000 0.1176 47 11.051 1.153e-14 1.0634 1.5366
## 3 com cobertura IAC Fantástico   0.9250 0.1176 47  7.864 4.074e-10 0.6884 1.1616
## 4 sem cobertura IAC Fantástico   1.3375 0.1176 47 11.370 4.326e-15 1.1009 1.5741
## 5 com cobertura       Imperial   1.0092 0.1264 47  7.984 2.692e-10 0.7549 1.2635
## 6 sem cobertura       Imperial   1.0375 0.1176 47  8.820 1.567e-11 0.8009 1.2741
## 7 com cobertura         Pérola   1.0175 0.1375 47  7.399 2.034e-09 0.7409 1.2941
## 8 sem cobertura         Pérola   1.1875 0.1176 47 10.095 2.358e-13 0.9509 1.4241

## LSmeans(m0, effect="ges")
lsmg <- LSmeans(m1, effect="ges")
lsmg <- cbind(lsmg$grid, lsmg$coef)
lsmg <- equallevels(lsmg, da)
lsmg
##         ges estimate      se df t.stat   p.value    lwr   upr
## 1 com gesso    1.118 0.06443 47  17.35 4.528e-22 0.9885 1.248
## 2 sem gesso    1.002 0.05994 47  16.72 2.046e-21 0.8817 1.123
##-----------------------------------------------------------------------------
## Gráficos.

xlab <- expression("Magnésio"~(cmol[c]~dm^{-3}))

p1 <- 
    segplot(cober~lwr+upr|vari, centers=estimate,
            data=lsmc, draw=FALSE,
            xlab=xlab, ylab="Cobertura do solo")

l <- levels(lsmc$cober)
key <- list(corner=c(0.97,0.97),
            type="o", divide=1,
            lines=list(lty=1, pch=1:length(l)),
            text=list(l))

p2 <- 
    segplot(vari~lwr+upr, centers=estimate,
            data=lsmc, draw=FALSE, key=key,
            by=lsmc$cober, f=0.1, pch=as.integer(lsmc$cober),
            xlab=xlab, ylab="Variedade de abacaxi",
            panel=segplot.by)

p3 <- 
    segplot(ges~lwr+upr, centers=estimate,
            data=lsmg, draw=FALSE,
            xlab=xlab, ylab="Aplicação de gesso")

plot(p1, split=c(1,1,1,3), more=TRUE)
plot(p2, split=c(1,2,1,3), more=TRUE)
plot(p3, split=c(1,3,1,3), more=FALSE)

plot of chunk unnamed-chunk-18

Matéria orgânica (MO)

##-----------------------------------------------------------------------------
## Preliminar.

xyplot(mo~cober|vari, groups=ges, data=da[!is.na(da$mg),],
       jitter.x=TRUE, type=c("p","a"), layout=c(NA,1))

plot of chunk unnamed-chunk-19

##-----------------------------------------------------------------------------
## Modelo.

m0 <- lm(mo~blo+vari*ges*cober, data=da)

## Diagnóstico dos resíduos.
par(mfrow=c(2,2))
plot(m0)

plot of chunk unnamed-chunk-20

layout(1)

## Quadro de anova.
anova(m0)
## Analysis of Variance Table
## 
## Response: mo
##                Df Sum Sq Mean Sq F value  Pr(>F)    
## blo             3   42.4    14.1    3.35   0.027 *  
## vari            3    6.5     2.2    0.52   0.674    
## ges             1   18.9    18.9    4.48   0.040 *  
## cober           1  125.2   125.2   29.63 2.1e-06 ***
## vari:ges        3   43.2    14.4    3.41   0.025 *  
## vari:cober      3    0.5     0.2    0.04   0.989    
## ges:cober       1   10.4    10.4    2.47   0.123    
## vari:ges:cober  3   20.4     6.8    1.61   0.200    
## Residuals      45  190.1     4.2                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Quadro de anova particionado.
m0 <- aov(mo~blo+vari*cober+vari/ges+ges:cober+vari:ges:cober, data=da)
c0 <- coef(m0)
a <- m0$assign
c0 <- c0[a==5]
s <- paste0("vari", levels(da$vari), ":ges")
s <- sapply(s, grep, x=names(c0), simplify=FALSE)
names(s) <- levels(da$vari)
summary(m0, split=list("vari:ges"=s))
##                            Df Sum Sq Mean Sq F value  Pr(>F)    
## blo                         3   42.4    14.1    3.35  0.0272 *  
## vari                        3    6.5     2.2    0.52  0.6738    
## cober                       1  125.2   125.2   29.63 2.1e-06 ***
## vari:cober                  3    0.5     0.2    0.04  0.9887    
## vari:ges                    4   62.2    15.5    3.68  0.0112 *  
##   vari:ges: Havai           1   36.9    36.9    8.74  0.0049 ** 
##   vari:ges: IAC Fantástico  1   15.1    15.1    3.58  0.0650 .  
##   vari:ges: Imperial        1    7.8     7.8    1.84  0.1814    
##   vari:ges: Pérola          1    2.3     2.3    0.55  0.4619    
## cober:ges                   1   10.4    10.4    2.47  0.1230    
## vari:cober:ges              3   20.4     6.8    1.61  0.2000    
## Residuals                  45  190.1     4.2                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

##-----------------------------------------------------------------------------
## Modelo com interações abandonadas.

m1 <- update(m0, .~blo+vari*ges+cober)
anova(m1, m0)
## Analysis of Variance Table
## 
## Model 1: mo ~ blo + vari + ges + cober + vari:ges
## Model 2: mo ~ blo + vari * cober + vari/ges + ges:cober + vari:ges:cober
##   Res.Df RSS Df Sum of Sq    F Pr(>F)
## 1     52 221                         
## 2     45 190  7      31.4 1.06    0.4

##-----------------------------------------------------------------------------
## Comparações múltiplas.

## LSmeans(m0, effect="cober")
lsmc <- LSmeans(m1, effect=c("cober"))
lsmc <- cbind(lsmc$grid, lsmc$coef)
lsmc <- equallevels(lsmc, da)
lsmc
##           cober estimate     se df t.stat   p.value   lwr   upr
## 1 com cobertura     17.2 0.3648 52  47.14 2.416e-44 16.47 17.93
## 2 sem cobertura     14.4 0.3648 52  39.48 1.923e-40 13.67 15.13

## LSmeans(m0, effect="ges")
lsmg <- LSmeans(m1, effect=c("ges","vari"))
lsmg <- cbind(lsmg$grid, lsmg$coef)
lsmg <- equallevels(lsmg, da)
lsmg
##         ges           vari estimate     se df t.stat   p.value   lwr   upr
## 1 com gesso          Havai    14.01 0.7296 52  19.21 2.857e-25 12.55 15.48
## 2 sem gesso          Havai    17.05 0.7296 52  23.37 3.002e-29 15.59 18.52
## 3 com gesso IAC Fantástico    15.30 0.7296 52  20.97 4.960e-27 13.84 16.76
## 4 sem gesso IAC Fantástico    17.24 0.7296 52  23.63 1.765e-29 15.78 18.71
## 5 com gesso       Imperial    16.61 0.7296 52  22.77 1.045e-28 15.15 18.07
## 6 sem gesso       Imperial    15.21 0.7296 52  20.85 6.429e-27 13.75 16.68
## 7 com gesso         Pérola    15.10 0.7296 52  20.70 9.150e-27 13.64 16.56
## 8 sem gesso         Pérola    15.86 0.7296 52  21.74 9.163e-28 14.40 17.33
##-----------------------------------------------------------------------------
## Gráficos.

xlab <- expression("Matéria orgânica"~(g~kg^{-1}))

p1 <- 
    segplot(cober~lwr+upr, centers=estimate,
            data=lsmc, draw=FALSE,
            xlab=xlab, ylab="Cobertura do solo")

p2 <- 
    segplot(ges~lwr+upr|vari, centers=estimate,
            data=lsmg, draw=FALSE,
            xlab=xlab, ylab="Aplicação de gesso")

l <- levels(lsmg$ges)
key <- list(corner=c(0.97,0.97),
            type="o", divide=1,
            lines=list(lty=1, pch=1:length(l)),
            text=list(l))

p3 <- 
    segplot(vari~lwr+upr, centers=estimate,
            data=lsmg, draw=FALSE, key=key,
            by=lsmg$ges, f=0.1, pch=as.integer(lsmg$ges),
            xlab=xlab, ylab="Variedade de abacaxi",
            panel=segplot.by)

plot(p1, split=c(1,1,1,3), more=TRUE)
plot(p2, split=c(1,2,1,3), more=TRUE)
plot(p3, split=c(1,3,1,3), more=FALSE)

plot of chunk unnamed-chunk-21

Capacidade de troca catiônica (CTC)

##-----------------------------------------------------------------------------
## Preliminar.

xyplot(ctc~cober|vari, groups=ges, data=da[!is.na(da$mg),],
       jitter.x=TRUE, type=c("p","a"), layout=c(NA,1))

plot of chunk unnamed-chunk-22

##-----------------------------------------------------------------------------
## Modelo.

m0 <- lm(ctc~blo+vari*ges*cober, data=da)

## Diagnóstico dos resíduos.
par(mfrow=c(2,2))
plot(m0)

plot of chunk unnamed-chunk-23

layout(1)

## Quadro de anova.
anova(m0)
## Analysis of Variance Table
## 
## Response: ctc
##                Df Sum Sq Mean Sq F value  Pr(>F)    
## blo             3   1.68   0.560    2.80 0.05065 .  
## vari            3   0.19   0.064    0.32 0.81060    
## ges             1   0.14   0.142    0.71 0.40451    
## cober           1   2.95   2.954   14.78 0.00038 ***
## vari:ges        3   0.19   0.062    0.31 0.81673    
## vari:cober      3   0.64   0.212    1.06 0.37508    
## ges:cober       1   0.33   0.329    1.65 0.20597    
## vari:ges:cober  3   0.38   0.126    0.63 0.59847    
## Residuals      45   9.00   0.200                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

##-----------------------------------------------------------------------------
## Modelo com interações abandonadas.

m1 <- update(m0, .~blo+vari+ges+cober)
anova(m1, m0)
## Analysis of Variance Table
## 
## Model 1: ctc ~ blo + vari + ges + cober
## Model 2: ctc ~ blo + vari * ges * cober
##   Res.Df  RSS Df Sum of Sq    F Pr(>F)
## 1     55 10.5                         
## 2     45  9.0 10      1.53 0.77   0.66

##-----------------------------------------------------------------------------
## Comparações múltiplas.

## LSmeans(m0, effect="cober")
lsmc <- LSmeans(m1, effect=c("cober"))
lsmc <- cbind(lsmc$grid, lsmc$coef)
lsmc <- equallevels(lsmc, da)
lsmc
##           cober estimate      se df t.stat   p.value   lwr   upr
## 1 com cobertura    3.472 0.07734 55  44.89 5.064e-45 3.317 3.627
## 2 sem cobertura    3.042 0.07734 55  39.34 5.840e-42 2.887 3.197

## LSmeans(m0, effect="ges")
lsmg <- LSmeans(m1, effect=c("ges"))
lsmg <- cbind(lsmg$grid, lsmg$coef)
lsmg <- equallevels(lsmg, da)
lsmg
##         ges estimate      se df t.stat   p.value   lwr   upr
## 1 com gesso    3.304 0.07734 55  42.72 7.169e-44 3.149 3.459
## 2 sem gesso    3.210 0.07734 55  41.51 3.349e-43 3.055 3.365

## LSmeans(m0, effect="vari")
lsmv <- LSmeans(m1, effect=c("vari"))
lsmv <- cbind(lsmv$grid, lsmv$coef)
lsmv <- equallevels(lsmv, da)
lsmv
##             vari estimate     se df t.stat   p.value   lwr   upr
## 1          Havai    3.292 0.1094 55  30.10 7.565e-36 3.073 3.511
## 2 IAC Fantástico    3.328 0.1094 55  30.42 4.325e-36 3.108 3.547
## 3       Imperial    3.216 0.1094 55  29.41 2.524e-35 2.997 3.435
## 4         Pérola    3.193 0.1094 55  29.19 3.703e-35 2.973 3.412
##-----------------------------------------------------------------------------
## Gráficos.

xlab <- expression("CTC efetiva"~(cmol[c]~dm^{-3}))

p1 <- 
    segplot(cober~lwr+upr, centers=estimate,
            data=lsmc, draw=FALSE,
            xlab=xlab, ylab="Cobertura do solo")

p2 <- 
    segplot(ges~lwr+upr, centers=estimate,
            data=lsmg, draw=FALSE,
            xlab=xlab, ylab="Aplicação de gesso")

p3 <- 
    segplot(vari~lwr+upr, centers=estimate,
            data=lsmv, draw=FALSE,
            xlab=xlab, ylab="Variedade de abacaxi")

plot(p1, split=c(1,1,1,3), more=TRUE)
plot(p2, split=c(1,2,1,3), more=TRUE)
plot(p3, split=c(1,3,1,3), more=FALSE)

plot of chunk unnamed-chunk-24

Saturação de bases (V%)

##-----------------------------------------------------------------------------
## Preliminar.

xyplot(v~cober|vari, groups=ges, data=da[!is.na(da$mg),],
       jitter.x=TRUE, type=c("p","a"), layout=c(NA,1))

plot of chunk unnamed-chunk-25

##-----------------------------------------------------------------------------
## Modelo.

m0 <- lm(v~blo+vari*ges*cober, data=da)

## Diagnóstico dos resíduos.
par(mfrow=c(2,2))
plot(m0)

plot of chunk unnamed-chunk-26

layout(1)

## Quadro de anova.
anova(m0)
## Analysis of Variance Table
## 
## Response: v
##                Df Sum Sq Mean Sq F value  Pr(>F)    
## blo             3    118      39    3.29   0.029 *  
## vari            3     65      22    1.80   0.160    
## ges             1    406     406   34.01 5.5e-07 ***
## cober           1    589     589   49.31 9.5e-09 ***
## vari:ges        3     42      14    1.16   0.335    
## vari:cober      3     23       8    0.64   0.594    
## ges:cober       1      6       6    0.50   0.483    
## vari:ges:cober  3     24       8    0.68   0.572    
## Residuals      45    538      12                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

##-----------------------------------------------------------------------------
## Modelo com interações abandonadas.

m1 <- update(m0, .~blo+vari+ges+cober)
anova(m1, m0)
## Analysis of Variance Table
## 
## Model 1: v ~ blo + vari + ges + cober
## Model 2: v ~ blo + vari * ges * cober
##   Res.Df RSS Df Sum of Sq    F Pr(>F)
## 1     55 633                         
## 2     45 538 10      94.8 0.79   0.64

##-----------------------------------------------------------------------------
## Comparações múltiplas.

## LSmeans(m0, effect="cober")
lsmc <- LSmeans(m1, effect=c("cober"))
lsmc <- cbind(lsmc$grid, lsmc$coef)
lsmc <- equallevels(lsmc, da)
lsmc
##           cober estimate     se df t.stat   p.value   lwr   upr
## 1 com cobertura    67.99 0.5995 55  113.4 6.808e-67 66.79 69.19
## 2 sem cobertura    61.92 0.5995 55  103.3 1.137e-64 60.72 63.12

## LSmeans(m0, effect="ges")
lsmg <- LSmeans(m1, effect=c("ges"))
lsmg <- cbind(lsmg$grid, lsmg$coef)
lsmg <- equallevels(lsmg, da)
lsmg
##         ges estimate     se df t.stat   p.value   lwr   upr
## 1 com gesso    67.48 0.5995 55  112.6 1.032e-66 66.27 68.68
## 2 sem gesso    62.44 0.5995 55  104.1 7.233e-65 61.23 63.64

## LSmeans(m0, effect="vari")
lsmv <- LSmeans(m1, effect=c("vari"))
lsmv <- cbind(lsmv$grid, lsmv$coef)
lsmv <- equallevels(lsmv, da)
lsmv
##             vari estimate     se df t.stat   p.value   lwr   upr
## 1          Havai    64.81 0.8478 55  76.45 1.566e-57 63.11 66.51
## 2 IAC Fantástico    66.13 0.8478 55  78.00 5.235e-58 64.43 67.83
## 3       Imperial    65.47 0.8478 55  77.22 9.030e-58 63.77 67.17
## 4         Pérola    63.41 0.8478 55  74.80 5.147e-57 61.71 65.11
##-----------------------------------------------------------------------------
## Gráficos.

xlab <- expression("Saturação de bases (%)")

p1 <- 
    segplot(cober~lwr+upr, centers=estimate,
            data=lsmc, draw=FALSE,
            xlab=xlab, ylab="Cobertura do solo")

p2 <- 
    segplot(ges~lwr+upr, centers=estimate,
            data=lsmg, draw=FALSE,
            xlab=xlab, ylab="Aplicação de gesso")

p3 <- 
    segplot(vari~lwr+upr, centers=estimate,
            data=lsmv, draw=FALSE,
            xlab=xlab, ylab="Variedade de abacaxi")

plot(p1, split=c(1,1,1,3), more=TRUE)
plot(p2, split=c(1,2,1,3), more=TRUE)
plot(p3, split=c(1,3,1,3), more=FALSE)

plot of chunk unnamed-chunk-27