###################################
## Q2 — Modelos Mistos ##
## Autora: Victória Souza ##
###################################
# Pacotes: modelos mistos (lme/lmer) e gráficos.
library (lme4)
## Carregando pacotes exigidos: Matrix
library (nlme)
##
## Anexando pacote: 'nlme'
## O seguinte objeto é mascarado por 'package:lme4':
##
## lmList
library (ggplot2)
# Ler a base de dados (delimitado por tab)
dados <- read.delim("produtividade.txt")
# Inspeção rápida do cabeçalho
head (dados) #olhar o cabeçalho da base de dados
## producao bloco irrigacao densidade fertilizante
## 1 90 A controle baixo N
## 2 95 A controle baixo P
## 3 107 A controle baixo NP
## 4 92 A controle medio N
## 5 89 A controle medio P
## 6 92 A controle medio NP
# Visualização geral
dados
## producao bloco irrigacao densidade fertilizante
## 1 90 A controle baixo N
## 2 95 A controle baixo P
## 3 107 A controle baixo NP
## 4 92 A controle medio N
## 5 89 A controle medio P
## 6 92 A controle medio NP
## 7 81 A controle alto N
## 8 92 A controle alto P
## 9 93 A controle alto NP
## 10 80 A irrigado baixo N
## 11 87 A irrigado baixo P
## 12 100 A irrigado baixo NP
## 13 121 A irrigado medio N
## 14 110 A irrigado medio P
## 15 119 A irrigado medio NP
## 16 78 A irrigado alto N
## 17 98 A irrigado alto P
## 18 122 A irrigado alto NP
## 19 83 B controle baixo N
## 20 80 B controle baixo P
## 21 95 B controle baixo NP
## 22 98 B controle medio N
## 23 98 B controle medio P
## 24 106 B controle medio NP
## 25 74 B controle alto N
## 26 81 B controle alto P
## 27 74 B controle alto NP
## 28 102 B irrigado baixo N
## 29 109 B irrigado baixo P
## 30 105 B irrigado baixo NP
## 31 99 B irrigado medio N
## 32 94 B irrigado medio P
## 33 123 B irrigado medio NP
## 34 136 B irrigado alto N
## 35 133 B irrigado alto P
## 36 132 B irrigado alto NP
## 37 85 C controle baixo N
## 38 88 C controle baixo P
## 39 88 C controle baixo NP
## 40 112 C controle medio N
## 41 104 C controle medio P
## 42 91 C controle medio NP
## 43 82 C controle alto N
## 44 78 C controle alto P
## 45 94 C controle alto NP
## 46 60 C irrigado baixo N
## 47 104 C irrigado baixo P
## 48 114 C irrigado baixo NP
## 49 90 C irrigado medio N
## 50 118 C irrigado medio P
## 51 113 C irrigado medio NP
## 52 119 C irrigado alto N
## 53 122 C irrigado alto P
## 54 136 C irrigado alto NP
## 55 86 D controle baixo N
## 56 78 D controle baixo P
## 57 89 D controle baixo NP
## 58 79 D controle medio N
## 59 86 D controle medio P
## 60 87 D controle medio NP
## 61 85 D controle alto N
## 62 89 D controle alto P
## 63 83 D controle alto NP
## 64 73 D irrigado baixo N
## 65 114 D irrigado baixo P
## 66 114 D irrigado baixo NP
## 67 109 D irrigado medio N
## 68 131 D irrigado medio P
## 69 126 D irrigado medio NP
## 70 116 D irrigado alto N
## 71 136 D irrigado alto P
## 72 133 D irrigado alto NP
# Tornar colunas acessíveis por nome, sem a necessidade de especificar fatores (dados$)
attach (dados)
#------------------------------------------------
# SELEÇÃO DE FIXOS COM ML (comparação de modelos)
#------------------------------------------------
# Modelo Nulo (apenas intercepto nos fixos)
# Ajustando o modelo nulo, mantendo apenas produção como variável resposta e nenhuma variável explicativa.
# Aleátorios aninhados (~1|bloco/irrigacao/densidade) = (1|bloco)+(1|bloco:irrigacao)+(1|bloco:irrigacao:densidade)
# method = "ML" -> Maximum Likelihood, permite que a comparação entre modelos que diferem nos fatores fixos seja feita usando ANOVA e AIC/BIC.
m.nulo = lme (fixed = producao ~ 1,
random = ~ 1|bloco/irrigacao/densidade,
method = "ML") # retira o efeito de blocos (e níveis aninhados) ao tratá-los como ALEATÓRIOS.
# Modelo 1: fatores isolados + todas as interações entre irrigação, densidade e fertilizante.
m1 = lme (fixed = producao ~ irrigacao*densidade*fertilizante,
random = ~ 1|bloco/irrigacao/densidade,
method = "ML") #ajustando o modelo com produção em função de irrigação, densidade e fertilidade, com interação entre eles (*)
# LRT (via anova), para comparar os modelos (m.nulo vs m1) por verossimilhança e investigar se os fatores fixos explicam algo além do modelo nulo
anova (m.nulo, m1)
## Model df AIC BIC logLik Test L.Ratio p-value
## m.nulo 1 5 605.4183 616.8016 -297.7091
## m1 2 22 573.5108 623.5974 -264.7554 1 vs 2 65.9075 <.0001
Interpretação: LRT χ²=65,91 (gl=17), p<0,0001 (significativo): o modelo com fixos (m1) explica a produção melhor que o nulo. Prosseguir com m1.
# ANOVA por termo do Modelo 1, para ver a contribuição de cada termo e simplificar o modelo, se preciso.
anova (m1)
## numDF denDF F-value p-value
## (Intercept) 1 36 2674.6636 <.0001
## irrigacao 1 3 30.9211 0.0115
## densidade 2 12 3.7842 0.0532
## fertilizante 2 36 11.4493 0.0001
## irrigacao:densidade 2 12 5.9119 0.0163
## irrigacao:fertilizante 2 36 5.5204 0.0081
## densidade:fertilizante 4 36 0.8826 0.4841
## irrigacao:densidade:fertilizante 4 36 0.6795 0.6107
Interpretação: A interação tripla irrigação×densidade×fertilizante não é significativa (p=0,61): manter apenas interações duplas.
# Modelo 2: mantém principais + todas as duplas
m2 = lme (fixed = producao ~ (irrigacao+densidade+fertilizante)^2,
random = ~ 1|bloco/irrigacao/densidade,
method = "ML") #^2 mantém apenas até as interações duplas
# LRT m1 vs m2
anova (m1, m2)
## Model df AIC BIC logLik Test L.Ratio p-value
## m1 1 22 573.5108 623.5974 -264.7554
## m2 2 18 569.0046 609.9845 -266.5023 1 vs 2 3.493788 0.4788
Interpretação: m2 (só duplas) é tão bom quanto m1 (p=0,48; não significativo) e mais simples: optar pelo m2.
# ANOVA (m2): identificar duplas não significativas
anova (m2)
## numDF denDF F-value p-value
## (Intercept) 1 40 2872.7400 <.0001
## irrigacao 1 3 33.2110 0.0104
## densidade 2 12 4.0645 0.0449
## fertilizante 2 40 11.4341 0.0001
## irrigacao:densidade 2 12 6.3499 0.0132
## irrigacao:fertilizante 2 40 5.5131 0.0077
## densidade:fertilizante 4 40 0.8815 0.4837
Interpretação: A interação dupla densidade×fertilizante não é significativa (p=0,48): remover esse termo (gerar m3).
# Modelo 3: (sem densidade:fertilizante): principais + (irrigação×densidade) + (irrigação×fertilizante).
m3 = lme (fixed = producao ~ irrigacao+densidade+fertilizante+
irrigacao:densidade+irrigacao:fertilizante,
random = ~ 1|bloco/irrigacao/densidade,
method = "ML")
# LRT m2 vs m3
anova (m2, m3)
## Model df AIC BIC logLik Test L.Ratio p-value
## m2 1 18 569.0046 609.9845 -266.5023
## m3 2 14 565.1933 597.0667 -268.5967 1 vs 2 4.188774 0.3811
Interpretação: m3 é tão bom quanto m2 (p=0,38; não significativo), é mais simples e tem AIC menor: optar pelo m3.
# ANOVA (m3)
anova (m3)
## numDF denDF F-value p-value
## (Intercept) 1 44 3070.8771 <.0001
## irrigacao 1 3 35.5016 0.0095
## densidade 2 12 4.3448 0.0381
## fertilizante 2 44 11.2013 0.0001
## irrigacao:densidade 2 12 6.7878 0.0107
## irrigacao:fertilizante 2 44 5.4008 0.0080
Interpretação: todas as variaveis são significativas agora. A produção depende dos três fatores e os efeitos de densidade e de fertilizante mudam com a irrigação.
# Sumário do m3: componentes de variância (aleatórios) e coeficientes (fixos, relativos aos níveis de referência).
summary (m3)
## Linear mixed-effects model fit by maximum likelihood
## Data: NULL
## AIC BIC logLik
## 565.1933 597.0667 -268.5967
##
## Random effects:
## Formula: ~1 | bloco
## (Intercept)
## StdDev: 0.0005261003
##
## Formula: ~1 | irrigacao %in% bloco
## (Intercept)
## StdDev: 1.716888
##
## Formula: ~1 | densidade %in% irrigacao %in% bloco
## (Intercept) Residual
## StdDev: 5.722413 8.718327
##
## Fixed effects: producao ~ irrigacao + densidade + fertilizante + irrigacao:densidade + irrigacao:fertilizante
## Value Std.Error DF t-value p-value
## (Intercept) 82.08333 4.756285 44 17.257867 0.0000
## irrigacaoirrigado 27.80556 6.726403 3 4.133793 0.0257
## densidadebaixo 4.83333 5.807347 12 0.832279 0.4215
## densidademedio 10.66667 5.807347 12 1.836754 0.0911
## fertilizanteNP 4.33333 3.835552 44 1.129781 0.2647
## fertilizanteP 0.91667 3.835552 44 0.238992 0.8122
## irrigacaoirrigado:densidadebaixo -29.75000 8.212829 12 -3.622382 0.0035
## irrigacaoirrigado:densidademedio -19.66667 8.212829 12 -2.394628 0.0338
## irrigacaoirrigado:fertilizanteNP 16.83333 5.424290 44 3.103325 0.0033
## irrigacaoirrigado:fertilizanteP 13.50000 5.424290 44 2.488805 0.0167
## Correlation:
## (Intr) irrgcr dnsddb dnsddm frtlNP frtlzP
## irrigacaoirrigado -0.707
## densidadebaixo -0.610 0.432
## densidademedio -0.610 0.432 0.500
## fertilizanteNP -0.403 0.285 0.000 0.000
## fertilizanteP -0.403 0.285 0.000 0.000 0.500
## irrigacaoirrigado:densidadebaixo 0.432 -0.610 -0.707 -0.354 0.000 0.000
## irrigacaoirrigado:densidademedio 0.432 -0.610 -0.354 -0.707 0.000 0.000
## irrigacaoirrigado:fertilizanteNP 0.285 -0.403 0.000 0.000 -0.707 -0.354
## irrigacaoirrigado:fertilizanteP 0.285 -0.403 0.000 0.000 -0.354 -0.707
## irrgcrrgd:dnsddb irrgcrrgd:dnsddm irr:NP
## irrigacaoirrigado
## densidadebaixo
## densidademedio
## fertilizanteNP
## fertilizanteP
## irrigacaoirrigado:densidadebaixo
## irrigacaoirrigado:densidademedio 0.500
## irrigacaoirrigado:fertilizanteNP 0.000 0.000
## irrigacaoirrigado:fertilizanteP 0.000 0.000 0.500
##
## Standardized Within-Group Residuals:
## Min Q1 Med Q3 Max
## -2.58166960 -0.51480884 0.07893407 0.60157076 2.19570825
##
## Number of Observations: 72
## Number of Groups:
## bloco irrigacao %in% bloco
## 4 8
## densidade %in% irrigacao %in% bloco
## 24
Interpretação: Ser irrigado é o que mais aumenta a produção (coef. de irrigaçãoirrigado = +27,8)
# Modelo 4, apenas para confirmar se esse é o MMA (modelo mínimo adequado): retirando a interação (irrigação:fertilizante), o modelo piora?
m4 = lme (fixed = producao ~ irrigacao+densidade+fertilizante+irrigacao:densidade,
random = ~ 1|bloco/irrigacao/densidade,
method = "ML")
# ANOVA(m4) apenas para referência dos termos em m4
anova (m4)
## numDF denDF F-value p-value
## (Intercept) 1 46 3169.893 <.0001
## irrigacao 1 3 36.646 0.0090
## densidade 2 12 4.485 0.0351
## fertilizante 2 46 9.167 0.0004
## irrigacao:densidade 2 12 7.007 0.0096
# LRT m3 vs m4
anova (m3, m4)
## Model df AIC BIC logLik Test L.Ratio p-value
## m3 1 14 565.1933 597.0667 -268.5967
## m4 2 12 572.3373 599.6573 -274.1687 1 vs 2 11.14397 0.0038
Interpretação: Remover irrigação×fertilizante piora o ajuste (LRT p=0,0038): manter a interação; m3 segue como modelo final.
#---------------------------------------------
# O MODELO MISTO É MESMO NECESSÁRIO?
#---------------------------------------------
# Modelo linear simples (sem aleatório de bloco) com os principais e uma das duplas.
ml = lm (producao ~ irrigacao+densidade+fertilizante+irrigacao:densidade) #Modelo sem fator aleatório
# LRT misto (m3) vs (ml)
anova.lme (m3, ml)
## Model df AIC BIC logLik Test L.Ratio p-value
## m3 1 14 565.1933 597.0667 -268.5967
## ml 2 9 569.9342 590.4242 -275.9671 1 vs 2 14.74085 0.0115
Interpretação: Significativo (LRT p=0,0115): o fator aleatório (bloco) melhora o ajuste, ou seja, o modelo misto é necessário. É coerente retirar o efeito dos blocos.
#---------------------------------------------
# DIAGNÓSTICOS DO MODELO (PRESSUPOSTOS)
#---------------------------------------------
# Resíduos padronizados vs valores ajustados: avaliar homocedasticidade e tendência.
plot (m3)
Interpretação: Dispersão aleatória em torno de zero, sem “funil” visível: homocedasticidade ok.
# Observado vs ajustado: verificar alinhamento (qualidade de ajuste).
plot (m3, producao ~ fitted(.))
Interpretação: a variavel resposta é razoavelmente uma função linear dos valores ajustados: ajuste adequado.
# QQ-plot dos resíduos, por bloco: checar normalidade dos erros em cada bloco.
qqnorm (m3, ~ resid(.)| bloco)
Interpretação: Em cada bloco, os pontos formam um padrão aproximadamente retilíneo, com pequenas curvaturas apenas nas caudas. Isso é compatível com normalidade aceitável dos resíduos.
# Ajuste final em REML (inferência): reportar F/p dos fixos e variâncias (bloco, residual).
m3_REML <- update(m3, method="REML")
# Tabela final de F/p
anova(m3_REML)
## numDF denDF F-value p-value
## (Intercept) 1 44 2674.6034 <.0001
## irrigacao 1 3 30.9204 0.0115
## densidade 2 12 3.7842 0.0532
## fertilizante 2 44 11.9239 0.0001
## irrigacao:densidade 2 12 5.9119 0.0163
## irrigacao:fertilizante 2 44 5.7492 0.0061
Interpretação: Em REML, irrigação (p=0,0115) e fertilizante (p=0,0001) são significativos; densidade é marginal (p=0,053). As interações duplas com irrigação permanecem significativas. Ou seja, a produção depende de irrigação e fertilizante, e os efeitos de densidade e de fertilizante mudam com a irrigação
# Componentes de variância
VarCorr(m3_REML)
## Variance StdDev
## bloco = pdLogChol(1)
## (Intercept) 3.097876e-07 0.0005565857
## irrigacao = pdLogChol(1)
## (Intercept) 3.930759e+00 1.9826142192
## densidade = pdLogChol(1)
## (Intercept) 4.980311e+01 7.0571318966
## Residual 8.291915e+01 9.1059950596
Interpretação: variância de bloco praticamente nula, a variabilidade concentra-se no nível residual (≈61% (82,91/136,65)). Confirma que o efeito de blocos foi adequadamente controlado.Obs: percentuais: 3.1e-7, 3.93, 49.80, 82.92 ⇒ total ≈136.65.
# VISUALIZAÇÃO DAS INTERAÇÕES - Figuras Finais
# 1) Interação Fertilizante × Irrigação
if (interactive() && !isTRUE(getOption("knitr.in.progress"))) windows(10, 8)
interaction.plot(fertilizante, irrigacao, producao)
Interpretação: Irrigação eleva a produção; sob irrigação, NP tende a superar N e P; as linhas não paralelas indicam interação entre fertilizante e irrigação.
# 2) Interação Densidade × Irrigação
if (interactive() && !isTRUE(getOption("knitr.in.progress"))) windows(10, 8)
interaction.plot(densidade, irrigacao, producao)
Interpretação: Sob irrigação, densidades maiores tendem a apresentar médias mais altas; as linhas não paralelas indicam interação entre densidade e irrigação.
Conclusão final: A produção depende de irrigação (F(1,3)=30,92; p=0,0115) e de fertilizante (F(2,44)=11,92; p=0,0001). O efeito de densidade é marginal no geral (F(2,12)=3,78; p≈0,053), mas há interações significativas com irrigação: irrigação×densidade (p=0,016) e irrigação×fertilizante (p=0,006). Isso indica que os efeitos de densidade e de fertilizante dependem do regime de irrigação. A variância de bloco é praticamente nula, confirmando que seu efeito foi adequadamente controlado.