15 ANOVA desbalanceada com dois fatores
Agora, trataremos da ANOVA com dois fatores em conjuntos de dados desbalanceados. O modelo desbalanceado com dois fatores é dado por:
\[ \begin{align} y_{ijk} = \mu + \alpha_i + \beta_j + \gamma{ij} + \epsilon_{ij} = \mu_{ij} + \epsilon_{ijk} \\ i = 1,\dots,a \space \text{ , } \space j = 1,\dots,b \space \text{ e } \space k = 1, \dots, n_{ij} \end{align} \]
Para realizar inferências, assumiremos \(\epsilon_{ijk} \sim N(\mu_{ij}, \sigma^2)\) são independentes e identicamente distribuídos.
Para o caso fatorial desbalanceado, utilizaremos o modelo de médias de caselas, que fornece uma abordagem mais simples e sem ambiguidades para testar hipóteses, quando comparado ao modelo superparametrizado.
Como exemplo, considere: Em um experimento de substituição do farelo de soja pelo farelo de girassol na ração de suínos, montou-se um experimento fatorial 2x5, com os fatores Sexo (1:Macho e 2:Fêmea) e Girassol (0, 25, 50, 75 e 100% de substituição). Foram utilizados 30 suínos (15 machos e 15 fêmeas) castrados da raça Duroc-Jersey, num delineamento inteiramente casualizado com 3 repetições. Na fase final do período experimental ocorreu a morte de três suínos. Os ganhos de peso dos animais aos 112 dias de experimento estão apresentados a seguir:
| Macho | Fêmea | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 0 | 25 | 50 | 75 | 100 | 0 | 25 | 50 | 75 | 100 |
| - | 94,5 | 99,5 | 93,0 | 83,0 | 77,9 | 71,5 | 67,5 | 71,5 | 89,5 |
| 86,0 | 96,0 | 98,0 | 96,0 | 80,0 | 83,2 | 73,5 | - | 70,8 | 91,8 |
| 84,0 | 95,8 | - | 90,5 | 78,5 | 83,5 | 70,5 | 65,0 | 72,5 | 92,9 |
O modelo matemático é dado por:
\[ \begin{align} y_{ijk}& = \mu_{ij} + \epsilon_{ijk} \\ i = 1,2 \space \text{ , } \space &j = 1,\dots,5 \space \text{ e } \space k = n_{ij} \end{align} \]
Já o modelo matricial de médias de caselas \(\mathbf{y} = \mathbf{W}\boldsymbol{\mu} + \boldsymbol{\epsilon}\) é dado por:
\[ \begin{bmatrix} y_{111} \\ y_{112} \\ y_{113} \\ y_{121} \\ y_{122} \\ y_{123} \\ y_{131} \\ y_{132} \\ y_{141} \\ y_{142} \\ y_{143} \\ y_{151} \\ y_{152} \\ y_{153} \\ y_{211} \\ y_{212} \\ y_{221} \\ y_{222} \\ y_{223} \\ y_{231} \\ y_{232} \\ y_{241} \\ y_{242} \\ y_{243} \\ y_{251} \\ y_{252} \\ y_{253} \end{bmatrix} = \begin{bmatrix} 77.9 \\ 83.2 \\ 83.5 \\ 71.5 \\ 73.5 \\ 70.5 \\ 67.5 \\ 65 \\ 71.5 \\ 70.8 \\ 72.5 \\ 89.5 \\ 91.8 \\ 92.9 \\ 86 \\ 84 \\ 94.5 \\ 96 \\ 95.8 \\ 99.5 \\ 98 \\ 93 \\ 96 \\ 90.5 \\ 83 \\ 80 \\ 78.5 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ \end{bmatrix} \begin{bmatrix} \mu_{11} \\ \mu_{12} \\ \mu_{13} \\ \mu_{14} \\ \mu_{15} \\ \mu_{21} \\ \mu_{22} \\ \mu_{23} \\ \mu_{24} \\ \mu_{25} \end{bmatrix} \begin{bmatrix} \epsilon_{111} \\ \epsilon_{112} \\ \epsilon_{113} \\ \epsilon_{121} \\ \epsilon_{122} \\ \epsilon_{123} \\ \epsilon_{131} \\ \epsilon_{132} \\ \epsilon_{141} \\ \epsilon_{142} \\ \epsilon_{143} \\ \epsilon_{151} \\ \epsilon_{152} \\ \epsilon_{153} \\ \epsilon_{211} \\ \epsilon_{212} \\ \epsilon_{221} \\ \epsilon_{222} \\ \epsilon_{223} \\ \epsilon_{231} \\ \epsilon_{232} \\ \epsilon_{241} \\ \epsilon_{242} \\ \epsilon_{243} \\ \epsilon_{251} \\ \epsilon_{252} \\ \epsilon_{253} \end{bmatrix} \]
y <- c(77.9,83.2,83.5,71.5,73.5,70.5,67.5,65,71.5,70.8,72.5,89.5,91.8,92.9,86,84,94.5,96,95.8,99.5,98,93,96,90.5,83,80,78.5)
n <- length(y)
n[1] 27
W <- matrix(c(
1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1
), ncol = 10, byrow = TRUE
)Nota-se que posto\((W) = k = 10\), sendo \(k\) o número de parâmetros do modelo.
# Número de parâmetros
k <- ncol(W)
k[1] 10
[1] 10
# Déficit de rank
deficit_rank <- k - rank_W
deficit_rank[1] 0
Dessa forma, o sistema de equações normais \(\mathbf{(W'W)} \boldsymbol{\hat\mu} = \mathbf{(W'y)}\) tem solução única:
\[ \boldsymbol{\hat\mu} = \mathbf{(W'W)}^{-1} \mathbf{W'y} = \mathbf{\bar{y}} = \begin{bmatrix} \bar{y}_{11.} \\ \bar{y}_{12.} \\ \bar{y}_{13.} \\ \bar{y}_{14.} \\ \bar{y}_{15.} \\ \bar{y}_{21.} \\ \bar{y}_{22.} \\ \bar{y}_{23.} \\ \bar{y}_{24.} \\ \bar{y}_{25.} \end{bmatrix} \]
Onde o vetor \(\mathbf{\bar{y}}\) contém as médias amostrais das caselas.
data Girassol;
input Sexo Girassol Trat Rep GP;
* n11=2 n12=3 n13=2 n14=3 n15=3;
* n21=2 n22=3 n23=2 n24=3 n25=3;
cards;
1 0 1 1 77.9
1 0 1 2 83.2
1 0 1 3 83.5
1 25 2 1 71.5
1 25 2 2 73.5
1 25 2 3 70.5
1 50 3 1 67.5
1 50 3 3 65.0
1 75 4 1 71.5
1 75 4 2 70.8
1 75 4 3 72.5
1 100 5 1 89.5
1 100 5 2 91.8
1 100 5 3 92.9
2 0 6 2 86.0
2 0 6 3 84.0
2 25 7 1 94.5
2 25 7 2 96.0
2 25 7 3 95.8
2 50 8 1 99.5
2 50 8 2 98.0
2 75 9 1 93.0
2 75 9 2 96.0
2 75 9 3 90.5
2 100 10 1 83.0
2 100 10 2 80.0
2 100 10 3 78.5
;
proc iml;
varNames = {"Sexo" "Girassol" "Trat" "Rep" "GP"};
use work.Girassol;
read all var varNames;
close work.Girassol;
print Sexo Girassol Trat Rep GP;
y = GP;
n = nrow(y);
W = design(Trat);
Mi = inv(t(W)*W)*t(W)*GP;
print GP W Mi[format=8.2];15.1 Teste de hipótese
15.1.1 Modelo de médias
A seguir, testaremos a hipótese de igualdade entre as médias dos tratamentos utilizando a abordagem do modelo completo x modelo reduzido.
A soma de quadrados total (SQTotal) é dada por:
\[ SQTotal = \mathbf{y'} \left(\mathbf{I} - \frac{1}n \mathbf{J}\right) \mathbf{y} \]
[,1]
[1,] 2896.396
[1] 26
A soma de quadrados dos resíduos (SQRes) é dada por:
\[ SQRes = \mathbf{y'} [\mathbf{I} - \mathbf{W(W'W)^{-}W'}] \mathbf{y} \]
[,1]
[1,] 65.23667
[1] 17
QMRes <- SQRes / gl_res
QMRes [,1]
[1,] 3.837451
A soma de quadrados de tratamento é:
\[ SQTrat = \mathbf{y'} \left[\mathbf{W(W'W)^{-}W'} - \frac{1}n \mathbf{J}\right] \mathbf{y} \]
# Tratamento
AG <- W %*% ginv(t(W) %*% W) %*% t(W) - (1/n) * Jnxn
SQTrat <- t(y) %*% AG %*% y
SQTrat [,1]
[1,] 2831.16
[1] 9
QMTrat <- SQTrat / gl_trat
QMTrat [,1]
[1,] 314.5733
# F e p-valor
Fcalc <- QMTrat / QMRes
Fcalc [,1]
[1,] 81.97454
Ftab <- qf(0.95, gl_trat, gl_res)
Ftab[1] 2.494291
p_valor <- 1 - pf(Fcalc, gl_trat, gl_res)
p_valor [,1]
[1,] 0.000000000003195444
A seguir, o quadro da ANOVA traz os resultados obtidos.
| FV | gl | SQ | QM | Fcal | Ftab | p-valor (5%) |
|---|---|---|---|---|---|---|
| Tratamentos | 9 | 2831.1596 | 314.5733 | 81.9745 | 2.4943 | 0 |
| Resíduo | 17 | 65.2367 | 3.8375 | |||
| Total | 26 | 2896.3963 |
Dado que o \(F_{cal} > F_{tab}\), considerando \(F_{(0,05;9;17)}\), rejeita-se a hipótese nula de igualdade de médias, ou seja, pelo menos duas médias diferem entre si.
Com isso, precisamos analisar o efeito de interação entre os tratamentos.
AT = I(n)-(1/n)*J(n,n,1);
SQTotal = t(Y)*AT*y;
gl_total = n-1;
ARes = I(n)- W*inv(t(W)*W)*t(W);
SQRes = t(y)*ARes*y;
gl_res = round(trace(ARes*ginv(ARes)));
QMRes = SQRes/gl_Res;
ATrat = W*inv(t(W)*W)*t(W) - (1/n)*J(n,n,1);
SQTrat = t(y)*ATrat*y;
gl_trat = round(trace(ATrat*ginv(ATrat)));
QMTrat = SQTrat/gl_trat;
F_trat = QMTrat/QMRes;
p_trat = 1-cdf('F',F_trat,gl_trat,gl_res);
print 'ANOVA - modelo de médias',,
'Tratamentos ' gl_trat SQTrat[format=12.4] QMTrat[format=12.4] F_trat[format=12.4] p_trat[format=12.4],,
'Resíduo ' gl_res SQRes[format=12.4] QMRes[format=12.4],,
'Total ' gl_total SQTotal[format=12.4];15.1.2 Efeito de interação
Para avaliar se há interação entre os fatores, realizaremos outra ANOVA, avaliando os efeitos principais de ambos os fatores (vide Seção 13.3).
\[ \begin{align} H_0 &: \text{Não há efeito da interação entre os fatores A e B} \\ H_1 &: \text{Há efeito da interação entre os fatores A e B} \end{align} \]
Para isso, utilizaremos a hipótese linear geral. A soma de quadrados obtida a partir desta abordagem é dada por:
\[ SQ_{Hip} = (\boldsymbol{C\hat{\beta}})' \left[\mathbf{C(X'X)^-C'}\right]^{-1} (\boldsymbol{C\hat{\beta}}) \]
A matriz de coeficientes \(\mathbf{C}\) do fator Sexo (CS), do fator Girassol (CG) e da interação entre os fatores (CSxG) são dadas a seguir:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 1 1 1 1 -1 -1 -1 -1 -1
CG <- matrix(c(
-2, -1, 0, 1, 2, -2, -1, 0, 1, 2,
2, -1, -2, -1, 2, 2, -1, -2, -1, 2,
-1, 2, 0, -2, 1, -1, 2, 0, -2, 1,
1, -4, 6, -4, 1, 1, -4, 6, -4, 1
), ncol = 10, byrow = TRUE
)
CG [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] -2 -1 0 1 2 -2 -1 0 1 2
[2,] 2 -1 -2 -1 2 2 -1 -2 -1 2
[3,] -1 2 0 -2 1 -1 2 0 -2 1
[4,] 1 -4 6 -4 1 1 -4 6 -4 1
CSxG <- rbind(
sweep(CS, 2, CG[1,], `*`),
sweep(CS, 2, CG[2,], `*`),
sweep(CS, 2, CG[3,], `*`),
sweep(CS, 2, CG[4,], `*`)
)
CSxG [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] -2 -1 0 1 2 2 1 0 -1 -2
[2,] 2 -1 -2 -1 2 -2 1 2 1 -2
[3,] -1 2 0 -2 1 1 -2 0 2 -1
[4,] 1 -4 6 -4 1 -1 4 -6 4 -1
A matriz CSxG é construída a partir da mutiplicação, elemento a elemento, da matriz CS com a primeira, segunda, terceira e quarta linhas da matriz CG. Para isso, utilizamos a função sweep() para realizar esta operação e, posteriormente, com a rbind(), juntamos os resultados por linha.
# Fator Sexo
SQSexo <- t(CS %*% Mi) %*% solve(CS %*% ginv(t(W) %*% W) %*% t(CS)) %*% (CS %*% Mi)
SQSexo [,1]
[1,] 1286.797
gl_sexo <- nrow(CS)
gl_sexo[1] 1
QMSexo <- SQSexo / gl_sexo
QMSexo [,1]
[1,] 1286.797
F_sexo <- QMSexo / QMRes
F_sexo [,1]
[1,] 335.3259
p_sexo <- 1 - pf(F_sexo, gl_sexo, gl_res)
p_sexo [,1]
[1,] 0.000000000001258105
# Fator Girassol
SQGirassol <- t(CG %*% Mi) %*% solve(CG %*% ginv(t(W) %*% W) %*% t(CG)) %*% (CG %*% Mi)
SQGirassol [,1]
[1,] 47.35935
gl_girassol <- nrow(CG)
gl_girassol[1] 4
QMGirassol <- SQGirassol / gl_girassol
QMGirassol [,1]
[1,] 11.83984
F_girassol <- QMGirassol / QMRes
F_girassol [,1]
[1,] 3.085339
p_girassol <- 1 - pf(F_girassol, gl_girassol, gl_res)
p_girassol [,1]
[1,] 0.0442227
# Interação Sexo x Girassol
SQSxG <- t(CSxG %*% Mi) %*% solve(CSxG %*% ginv(t(W) %*% W) %*% t(CSxG)) %*% (CSxG %*% Mi)
SQSxG [,1]
[1,] 1624.61
gl_SxG <- nrow(CSxG)
gl_SxG[1] 4
QMSxG <- SQSxG / gl_SxG
QMSxG [,1]
[1,] 406.1526
F_SxG <- QMSxG / QMRes
F_SxG [,1]
[1,] 105.8392
p_SxG <- 1 - pf(F_SxG, gl_SxG, gl_res)
p_SxG [,1]
[1,] 0.000000000008890666
No caso fatorial desbalanceado, a soma das somas de quadrados não será igual a soma de quadrados dos tratamentos, pois não utilizamos contrastes ortogonais ponderados.
SSQ <- SQSexo + SQGirassol + SQSxG
SSQ [,1]
[1,] 2958.767
SQTrat [,1]
[1,] 2831.16
O quadro de ANOVA resume os resultados obtidos.
| FV | gl | SQ | QM | Fcal | p-valor (5%) |
|---|---|---|---|---|---|
| Sexo (A) | 1 | 1286.797 | 1286.797 | 335.326 | 0.0000 |
| Girassol (B) | 4 | 47.359 | 11.840 | 3.085 | 0.0442 |
| Interação (AxB) | 4 | 1624.610 | 406.153 | 105.839 | 0.0000 |
| Resíduo | 17 | 65.237 | 3.837 | ||
| Total | 26 | 2896.396 |
Dado que o p-valor da interação é menor que p-valor = 0,05, rejeita-se \(H_0: \text{Não há efeito da interação entre os fatores A e B}\), ou seja, há efeito de interação entre os fatores Sexo e Girassol (há dependência).
Visto que há interação entre os fatores, precisamos avaliar os efeitos simples dos tratamentos.
CS = { 1 1 1 1 1 -1 -1 -1 -1 -1};
*CG = {-4 1 1 1 1 -4 1 1 1 1,
0 -3 1 1 1 0 -3 1 1 1,
0 0 -2 1 1 0 0 -2 1 1,
0 0 0 -1 1 0 0 0 -1 1};
CG = {-2 -1 0 1 2 -2 -1 0 1 2,
2 -1 -2 -1 2 2 -1 -2 -1 2,
-1 2 0 -2 1 -1 2 0 -2 1,
1 -4 6 -4 1 1 -4 6 -4 1};
CSxG = CS#CG[1,]//CS#CG[2,]//CS#CG[3,]//CS#CG[4,];
print CS,, CG,, CSxG;
SQSexo = t(CS*Mi)*inv(CS*inv(t(W)*W)*t(CS))*(CS*Mi);
gl_Sexo = nrow(CS);
QMSexo = SQSexo/gl_Sexo;
F_sexo =QMSexo/QMRes;
p_sexo = 1-cdf('F',F_sexo,gl_sexo,gl_res);
SQGirassol = t(CG*Mi)*inv(CG*inv(t(W)*W)*t(CG))*(CG*Mi);
gl_Girassol = nrow(CG);
QMGirassol = SQGirassol/gl_Girassol;
F_Girassol = QMGirassol/QMRes;
p_girassol = 1-cdf('F',F_Girassol,gl_Girassol,gl_res);
SQSxG = t(CSxG*Mi)*inv(CSxG*inv(t(W)*W)*t(CSxG))*(CSxG*Mi);
gl_SxG = nrow(CSxG);
QMSxG = SQSxG/gl_SxG;
F_SxG = QMSxG/QMRes;
p_SxG = 1-cdf('F',F_SxG,gl_SxG,gl_res);
SQTrats = SQSexo + SQGirassol + SQSxG;
print 'ANOVA - FATORIAL SEXO x GIRASSOL',,
'Sexo ' gl_sexo SQSexo[format=12.4] QMSexo[format=12.4] F_sexo[format=12.4] p_sexo[format=12.4],,
'Girassol ' gl_girassol SQGirassol[format=12.4] QMGirassol[format=12.4] F_Girassol[format=12.4] p_Girassol[format=12.4],,
'Interação SxG ' gl_SxG SQSxG[format=12.4] QMSxG[format=12.4] F_SxG[format=12.4] p_SxG[format=12.4],,
'Resíduo ' gl_res SQRes[format=12.4] QMRes[format=12.4],,
'Total ' gl_total SQTotal[format=12.4],,;
print 'SQTrats = SQS + SQG + SQSxG = ' SQTrats[format=12.4] SQTrat[format=12.4];15.1.3 Efeitos Simples
Dado que há interação entre os fatores, devemos avaliar os efeitos simples de cada fator, ou seja, avaliar o efeito do fator A (Sexo) dentro de cada nível do fator B (Girassol) e/ou o efeito do fator B (Girassol) dentro de cada nível do fator A (Sexo).
Para isso, utilizaremos contrastes ortogonais não ponderados.
Sexo dentro de Girassol
Primeiramente, compararemos as médias dos dois sexos dentro de cada nível do fator Girassol.
\[ H_0: \mu_{1j} = \mu_{2j}, \quad \text{para } j = 1,2,3,4,5 \]
A soma de quadrados dos contrastes é calculada da seguinte forma:
\[ SQ_c = (\boldsymbol{\lambda' \mu})' \left[\boldsymbol{\lambda'} (\mathbf{W'W})^{-1} \boldsymbol{\lambda}\right]^{-1} (\boldsymbol{\lambda' \mu}) \]
Cada contraste tem um graus de liberdade.
[,1]
[1,] 14.42133
[,1]
[1,] 835.44
[,1]
[1,] 1056.25
[,1]
[1,] 697.6817
[,1]
[1,] 178.215
gl_a <- 1A estatística F e o p-valor de cada contraste é dado por:
Fcalc1 <- SQa1 / QMRes
p_valor1 <- 1 - pf(Fcalc1, 1, gl_res)
p_valor1 [,1]
[1,] 0.06934062
Fcalc2 <- SQa2 / QMRes
p_valor2 <- 1 - pf(Fcalc2, 1, gl_res)
p_valor2 [,1]
[1,] 0.00000000004020073
Fcalc3 <- SQa3 / QMRes
p_valor3 <- 1 - pf(Fcalc3, 1, gl_res)
p_valor3 [,1]
[1,] 0.000000000006192602
Fcalc4 <- SQa4 / QMRes
p_valor4 <- 1 - pf(Fcalc4, 1, gl_res)
p_valor4 [,1]
[1,] 0.0000000001658613
Fcalc5 <- SQa5 / QMRes
p_valor5 <- 1 - pf(Fcalc5, 1, gl_res)
p_valor5 [,1]
[1,] 0.000003010948
O quadro de ANOVA resume os resultados obtidos.
| Hipóteses | gl | SQ | Fcal | p-valor (5%) |
|---|---|---|---|---|
| Girassol = 0: M = F | 1 | 14.421 | 3.758 | 0.0693 |
| Girassol = 25: M = F | 1 | 835.440 | 217.707 | 0.0000 |
| Girassol = 50: M = F | 1 | 1056.250 | 275.248 | 0.0000 |
| Girassol = 75: M = F | 1 | 697.682 | 181.809 | 0.0000 |
| Girassol = 100: M = F | 1 | 178.215 | 46.441 | 0.0000 |
Apenas para Girassol = 0% \(H_0: \mu_{1j} = \mu_{2j}\) não foi rejeitada. No demais níveis (25%, 50%, 75% e 100%), rejeita-se a hipótese nula, ou seja, há diferença entre o ganho de peso entre machos e fêmeas.
Para verificar a diferença do percentual de farelo de girassol entre os sexo, devemos analisar as médias dos efeitos simples.
| Sexo | 0 | 25 | 50 | 75 | 100 |
|---|---|---|---|---|---|
| F | 81.53 | 71.83 | 66.25 | 71.60 | 91.4 |
| M | 85.00 | 95.43 | 98.75 | 93.17 | 80.5 |
Uma vez que para girassol = 0% não houve significância, as médias entre os sexos não diferem, estatisticamente. Para os níveis 25%, 50%, 75% e 100%, o ganho médio de peso dos machos foi superior ao das fêmeas, mas com 100% de Girassol, as fêmeas tiveram maior ganho médio de peso.
| Sexo | 0 | 25 | 50 | 75 | 100 |
|---|---|---|---|---|---|
| F | 81.53 a | 71.83 b | 66.25 b | 71.60 b | 91.4 a |
| M | 85.00 a | 95.43 a | 98.75 a | 93.17 a | 80.5 b |
a1 = {1 0 0 0 0 -1 0 0 0 0};
a2 = {0 1 0 0 0 0 -1 0 0 0};
a3 = {0 0 1 0 0 0 0 -1 0 0};
a4 = {0 0 0 1 0 0 0 0 -1 0};
a5 = {0 0 0 0 1 0 0 0 0 -1};
SQa1 = t(a1*Mi)*inv(a1*inv(t(W)*W)*t(a1))*(a1*Mi);
SQa2 = t(a2*Mi)*inv(a2*inv(t(W)*W)*t(a2))*(a2*Mi);
SQa3 = t(a3*Mi)*inv(a3*inv(t(W)*W)*t(a3))*(a3*Mi);
SQa4 = t(a4*Mi)*inv(a4*inv(t(W)*W)*t(a4))*(a4*Mi);
SQa5 = t(a5*Mi)*inv(a5*inv(t(W)*W)*t(a5))*(a5*Mi);
gl_a = 1;
Fa1 = SQa1/QMRes; Fa2 = SQa2/QMRes; Fa3 = SQa3/QMRes; Fa4 = SQa4/QMRes; Fa5 = SQa5/QMRes;
p_a1 = 1-cdf('F',Fa1,1,gl_res); p_a2 = 1-cdf('F',Fa2,1,gl_res);
p_a3 = 1-cdf('F',Fa3,1,gl_res); p_a4 = 1-cdf('F',Fa4,1,gl_res);
p_a5 = 1-cdf('F',Fa5,1,gl_res);
print '------------------------------------------------------------------------',
' Desdobramento (1): Compara as médias de Sexo em cada nível de Girassol ',
'------------------------------------------------------------------------',,
'Girassol= 0: M=F' gl_a SQa1[format=12.4] Fa1[format=12.4] p_a1[format=12.4],,
'Girassol= 25: M=F' gl_a SQa2[format=12.4] Fa2[format=12.4] p_a2[format=12.4],,
'Girassol= 50: M=F' gl_a SQa3[format=12.4] Fa3[format=12.4] p_a3[format=12.4],,
'Girassol= 75: M=F' gl_a SQa4[format=12.4] Fa4[format=12.4] p_a4[format=12.4],,
'Girassol=100: M=F' gl_a SQa5[format=12.4] Fa5[format=12.4] p_a5[format=12.4];
quit;Girassol dentro de Sexo
Agora, compararemos as médias do fator Girassol dentro de cada nível de sexo. Como Girassol é um fator quantitativo e seus níveis são igualmente espaçados, vamos usar coeficientes de polinômios ortogonais para realizar os testes de tendência, separadamente, para cada Sexo.
\[ H_0: \mu_{i1} = \mu_{i2} = \mu_{i3} = \mu_{i4} = \mu_{i5}, \quad \text{para } i = 1,2 \]
Como são 5 níveis, utilizaremos os coeficientes até o 4º grau.
Para as fêmeas vamos usar:
e para os machos:
Com os contrastes ortogonais para cada sexo, realizaremos a ANOVA para cada um deles, a fim de verificar qual o grau de polinômio que melhor explica o ganho de peso de cada um dos sexos.
- Fêmeas:
SQf1 <- t(t(F1) %*% Mi) %*% solve(t(F1) %*% solve(t(W) %*% W) %*% F1) %*% (t(F1) %*% Mi)
SQf2 <- t(t(F2) %*% Mi) %*% solve(t(F2) %*% solve(t(W) %*% W) %*% F2) %*% (t(F2) %*% Mi)
SQf3 <- t(t(F3) %*% Mi) %*% solve(t(F3) %*% solve(t(W) %*% W) %*% F3) %*% (t(F3) %*% Mi)
SQf4 <- t(t(F4) %*% Mi) %*% solve(t(F4) %*% solve(t(W) %*% W) %*% F4) %*% (t(F4) %*% Mi)
gl_f <- 1
Fcalc1 <- SQf1 / QMRes
p_valor1 <- 1 - pf(Fcalc1, 1, gl_res)
Fcalc2 <- SQf2 / QMRes
p_valor2 <- 1 - pf(Fcalc2, 1, gl_res)
Fcalc3 <- SQf3 / QMRes
p_valor3 <- 1 - pf(Fcalc3, 1, gl_res)
Fcalc4 <- SQf4 / QMRes
p_valor4 <- 1 - pf(Fcalc4, 1, gl_res)| Grau | gl | SQ | Fcal | p-valor (5%) |
|---|---|---|---|---|
| 1º | 1 | 114.075 | 29.727 | 0.0000 |
| 2º | 1 | 917.001 | 238.961 | 0.0000 |
| 3º | 1 | 32.033 | 8.348 | 0.0102 |
| 4º | 1 | 0.371 | 0.097 | 0.7596 |
Analisando, decrescentemente, a ordem dos graus, o 3º grau é o primeiro a apresentar significância estatística, considerando p-valor = 5%. Assim, o comportamento do ganho de peso em função do aumento da porcentagem de substituição do farelo de soja por farelo de girassol pode ser bem explicado por um polinômio de 3º grau para as fêmeas.
- Machos:
SQm1 <- t(t(M1) %*% Mi) %*% solve(t(M1) %*% solve(t(W) %*% W) %*% M1) %*% (t(M1) %*% Mi)
SQm2 <- t(t(M2) %*% Mi) %*% solve(t(M2) %*% solve(t(W) %*% W) %*% M2) %*% (t(M2) %*% Mi)
SQm3 <- t(t(M3) %*% Mi) %*% solve(t(M3) %*% solve(t(W) %*% W) %*% M3) %*% (t(M3) %*% Mi)
SQm4 <- t(t(M4) %*% Mi) %*% solve(t(M4) %*% solve(t(W) %*% W) %*% M4) %*% (t(M4) %*% Mi)
gl_m <- 1
Fcalc1 <- SQm1 / QMRes
p_valor1 <- 1 - pf(Fcalc1, 1, gl_res)
Fcalc2 <- SQm2 / QMRes
p_valor2 <- 1 - pf(Fcalc2, 1, gl_res)
Fcalc3 <- SQm3 / QMRes
p_valor3 <- 1 - pf(Fcalc3, 1, gl_res)
Fcalc4 <- SQm4 / QMRes
p_valor4 <- 1 - pf(Fcalc4, 1, gl_res)| Grau | gl | SQ | Fcal | p-valor (5%) |
|---|---|---|---|---|
| 1º | 1 | 31.734 | 8.270 | 0.0105 |
| 2º | 1 | 506.002 | 131.859 | 0.0000 |
| 3º | 1 | 0.000 | 0.000 | 0.9928 |
| 4º | 1 | 0.439 | 0.114 | 0.7392 |
Enquanto isso, para os machos, o comportamento do ganho de peso em função do aumento da porcentagem de substituição do farelo de soja por farelo de girassol pode ser bem explicado por um polinômio de 2º grau.
A seguir, ajustaremos as curvas de regressão de ambos os modelos. Para isso, utilizaremos a função fat2.dic() do pacote ExpDes.pt, a fim de obter os coeficientes de regressão estimados.
install.packages("ExpDes.pt")
library(ExpDes.pt)dados <- data.frame(
Sexo = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2),
Girassol = c(0, 0, 0, 25, 25, 25, 50, 50, 75, 75, 75, 100, 100, 100, 0, 0, 25, 25, 25, 50, 50, 75, 75, 75, 100, 100, 100),
Trat = c(1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 10),
Rep = c(1, 2, 3, 1, 2, 3, 1, 3, 1, 2, 3, 1, 2, 3, 2, 3, 1, 2, 3, 1, 2, 1, 2, 3, 1, 2, 3),
GP = c(77.9, 83.2, 83.5, 71.5, 73.5, 70.5, 67.5, 65.0, 71.5, 70.8, 72.5, 89.5, 91.8, 92.9, 86.0, 84.0, 94.5, 96.0, 95.8, 99.5, 98.0, 93.0, 96.0, 90.5, 83.0, 80.0, 78.5)
)
with(
dados,
fat2.dic(Sexo, Girassol, resp = GP, quali = c(TRUE, FALSE))
)------------------------------------------------------------------------
Legenda:
FATOR 1: F1
FATOR 2: F2
------------------------------------------------------------------------
Quadro da analise de variancia
------------------------------------------------------------------------
GL SQ QM Fc Pr>Fc
F1 1 1158.91 3 302.001 0.000000
F2 4 47.63 2 3.103 0.043427
F1*F2 4 1624.61 5 105.839 0.000000
Residuo 17 65.24 4
Total 26 2896.40 1
------------------------------------------------------------------------
CV = 2.34 %
------------------------------------------------------------------------
Teste de normalidade dos residuos (Shapiro-Wilk)
valor-p: 0.9783552
De acordo com o teste de Shapiro-Wilk a 5% de significancia, os residuos podem ser considerados normais.
------------------------------------------------------------------------
Interacao significativa: desdobrando a interacao
------------------------------------------------------------------------
Desdobrando F1 dentro de cada nivel de F2
------------------------------------------------------------------------
------------------------------------------------------------------------
Quadro da analise de variancia
------------------------------------------------------------------------
GL SQ QM Fc Pr.Fc
F2 4 47.63486 11.90872 3.1033 0.0434
F1:F2 0 1 14.42133 14.42133 3.7581 0.0693
F1:F2 25 1 835.44000 835.44000 217.707 0
F1:F2 50 1 1056.25000 1056.25000 275.2478 0
F1:F2 75 1 697.68167 697.68167 181.8086 0
F1:F2 100 1 178.21500 178.21500 46.441 0
Residuo 17 65.23667 3.83745
Total 26 2896.39630 111.39986
------------------------------------------------------------------------
F1 dentro do nivel 0 de F2
De acordo com o teste F, as medias desse fator sao estatisticamente iguais.
------------------------------------------------------------------------
Niveis Medias
1 1 81.53333
2 2 85.00000
------------------------------------------------------------------------
F1 dentro do nivel 25 de F2
------------------------------------------------------------------------
Teste de Tukey
------------------------------------------------------------------------
Grupos Tratamentos Medias
a 2 95.43333
b 1 71.83333
------------------------------------------------------------------------
F1 dentro do nivel 50 de F2
------------------------------------------------------------------------
Teste de Tukey
------------------------------------------------------------------------
Grupos Tratamentos Medias
a 2 98.75
b 1 66.25
------------------------------------------------------------------------
F1 dentro do nivel 75 de F2
------------------------------------------------------------------------
Teste de Tukey
------------------------------------------------------------------------
Grupos Tratamentos Medias
a 2 93.16667
b 1 71.6
------------------------------------------------------------------------
F1 dentro do nivel 100 de F2
------------------------------------------------------------------------
Teste de Tukey
------------------------------------------------------------------------
Grupos Tratamentos Medias
a 1 91.4
b 2 80.5
------------------------------------------------------------------------
Desdobrando F2 dentro de cada nivel de F1
------------------------------------------------------------------------
------------------------------------------------------------------------
Quadro da analise de variancia
------------------------------------------------------------------------
GL SQ QM Fc Pr.Fc
F1 1 1158.91432 1158.91432 302.0011 0
F2:F1 1 4 1081.49595 270.37399 70.4567 0
F2:F1 2 4 590.74936 147.68734 38.4858 0
Residuo 17 65.23667 3.83745
Total 26 2896.39630 111.39986
------------------------------------------------------------------------
F2 dentro do nivel 1 de F1
------------------------------------------------------------------------
Ajuste de modelos polinomiais de regressao
------------------------------------------------------------------------
Modelo Linear
=========================================
Estimativa Erro.padrao tc valor.p
-----------------------------------------
b0 73.3571 0.8864 82.7554 0
b1 0.0780 0.0143 5.4522 0.00004
-----------------------------------------
R2 do modelo linear
--------
1
--------
0.105479
--------
Analise de variancia do modelo linear
=======================================================
GL SQ QM Fc valor.p
-------------------------------------------------------
Efeito linear 1 114.0750 114.0750 29.73 0.00004
Desvios de Regressao 3 967.4209 322.4737 84.03 0
Residuos 17 65.2367 3.8374
-------------------------------------------------------
------------------------------------------------------------------------
Modelo quadratico
==========================================
Estimativa Erro.padrao tc valor.p
------------------------------------------
b0 82.6042 1.0662 77.4781 0
b1 -0.7187 0.0530 -13.5586 0
b2 0.0080 0.0005 15.6095 0
------------------------------------------
R2 do modelo quadratico
--------
1
--------
0.970037
--------
Analise de variancia do modelo quadratico
========================================================
GL SQ QM Fc valor.p
--------------------------------------------------------
Efeito linear 1 114.0750 114.0750 29.73 0.00004
Efeito quadratico 1 935.0164 935.0164 243.66 0
Desvios de Regressao 2 32.4046 16.2023 4.22 0.03246
Residuos 17 65.2367 3.8374
--------------------------------------------------------
------------------------------------------------------------------------
Modelo cubico
=========================================
Estimativa Erro.padrao tc valor.p
-----------------------------------------
b0 81.5708 1.1245 72.5364 0
b1 -0.4224 0.1154 -3.6601 0.0019
b2 -0.0003 0.0029 -0.1032 0.9190
b3 0.0001 0.00002 2.8892 0.0102
-----------------------------------------
R2 do modelo cubico
--------
1
--------
0.999657
--------
Analise de variancia do modelo cubico
========================================================
GL SQ QM Fc valor.p
--------------------------------------------------------
Efeito linear 1 114.0750 114.0750 29.73 0.00004
Efeito quadratico 1 935.0164 935.0164 243.66 0
Efeito cubico 1 32.0333 32.0333 8.35 0.01019
Desvios de Regressao 1 0.3713 0.3713 0.1 0.75955
Residuos 17 65.2367 3.8374
--------------------------------------------------------
------------------------------------------------------------------------
F2 dentro do nivel 2 de F1
------------------------------------------------------------------------
Ajuste de modelos polinomiais de regressao
------------------------------------------------------------------------
Modelo Linear
=========================================
Estimativa Erro.padrao tc valor.p
-----------------------------------------
b0 94.1030 0.9940 94.6686 0
b1 -0.0693 0.0155 -4.4855 0.0003
-----------------------------------------
R2 do modelo linear
--------
2
--------
0.130697
--------
Analise de variancia do modelo linear
=======================================================
GL SQ QM Fc valor.p
-------------------------------------------------------
Efeito linear 1 77.2089 77.2089 20.12 0.00033
Desvios de Regressao 3 513.5405 171.1802 44.61 0
Residuos 17 65.2367 3.8374
-------------------------------------------------------
------------------------------------------------------------------------
Modelo quadratico
==========================================
Estimativa Erro.padrao tc valor.p
------------------------------------------
b0 84.9466 1.2709 66.8412 0
b1 0.5824 0.0584 9.9650 0
b2 -0.0063 0.0005 -11.5632 0
------------------------------------------
R2 do modelo quadratico
--------
2
--------
0.999255
--------
Analise de variancia do modelo quadratico
========================================================
GL SQ QM Fc valor.p
--------------------------------------------------------
Efeito linear 1 77.2089 77.2089 20.12 0.00033
Efeito quadratico 1 513.1003 513.1003 133.71 0
Desvios de Regressao 2 0.4402 0.2201 0.06 0.94445
Residuos 17 65.2367 3.8374
--------------------------------------------------------
------------------------------------------------------------------------
Modelo cubico
=========================================
Estimativa Erro.padrao tc valor.p
-----------------------------------------
b0 84.9390 1.3734 61.8462 0
b1 0.5840 0.1250 4.6709 0.0002
b2 -0.0063 0.0030 -2.0906 0.0519
b3 0.000000 0.00002 0.0146 0.9885
-----------------------------------------
R2 do modelo cubico
--------
2
--------
0.999256
--------
Analise de variancia do modelo cubico
========================================================
GL SQ QM Fc valor.p
--------------------------------------------------------
Efeito linear 1 77.2089 77.2089 20.12 0.00033
Efeito quadratico 1 513.1003 513.1003 133.71 0
Efeito cubico 1 0.0008 0.0008 0 0.98848
Desvios de Regressao 1 0.4393 0.4393 0.11 0.73924
Residuos 17 65.2367 3.8374
--------------------------------------------------------
------------------------------------------------------------------------
A seguir, contruiremos os gráficos dos modelos ajustados.
dados <- dados |> dplyr::mutate(Sexo = as.factor(Sexo))
## Fêmeas
dados_f <- dados |> dplyr::filter(Sexo == 1)
## Machos
dados_m <- dados |> dplyr::filter(Sexo == 2)
## Gráfico
library(ggplot2)
dados |>
ggplot() +
geom_point(aes(x = Girassol, y = GP, color = Sexo)) +
stat_function(
data = dados_f,
fun = function(Girassol) {81.577 - 0.425*Girassol - 0.0003*Girassol^2 + 0.00006 * Girassol^3},
color = "#F77D7D", linewidth = 1, linetype = 2
) +
stat_function(
data = dados_m,
fun = function(Girassol) {84.951 + 0.5847*Girassol - 0.0063*Girassol^2},
color = "#52A7E8", linewidth = 1, linetype = 2
) +
theme_minimal() +
labs(x = NULL, y = "Ganho de peso", color = NULL) +
scale_color_discrete(labels = c("Fêmea", "Macho")) +
theme(legend.position = "bottom")
proc glm;
class trat;
model GP = trat / ss3;
contrast 'Sexo' trat 1 1 1 1 1 -1 -1 -1 -1 -1;
contrast 'Girassol' trat -2 -1 0 1 2 -2 -1 0 1 2,
trat 2 -1 -2 -1 2 2 -1 -2 -1 2,
trat -1 2 0 -2 1 -1 2 0 -2 1,
trat 1 -4 6 -4 1 1 -4 6 -4 1;
contrast 'Interação' trat -4 1 1 1 1 4 -1 -1 -1 -1,
trat 0 -3 1 1 1 0 3 -1 -1 -1,
trat 0 0 -2 1 1 0 0 2 -1 -1,
trat 0 0 0 -1 1 0 0 0 1 -1;
contrast 'Girassol= 0: F = M' trat 1 0 0 0 0 -1 0 0 0 0;
contrast 'Girassol= 25: F = M' trat 0 1 0 0 0 0 -1 0 0 0;
contrast 'Girassol= 50: F = M' trat 0 0 1 0 0 0 0 -1 0 0;
contrast 'Girassol= 75: F = M' trat 0 0 0 1 0 0 0 0 -1 0;
contrast 'Girassol=100: F = M' trat 0 0 0 0 1 0 0 0 0 -1;
contrast 'Machos: Girassol grau 1' trat -2 -1 0 1 2 0 0 0 0 0;
contrast 'Machos: Girassol grau 2' trat 2 -1 -2 -1 2 0 0 0 0 0;
contrast 'Machos: Girassol grau 3' trat -1 2 0 -2 1 0 0 0 0 0;
contrast 'Machos: Girassol grau 4' trat 1 -4 6 -4 1 0 0 0 0 0;
contrast 'Fêmeas: Girassol grau 1' trat 0 0 0 0 0 -2 -1 0 1 2;
contrast 'Fêmeas: Girassol grau 2' trat 0 0 0 0 0 2 -1 -2 -1 2;
contrast 'Fêmeas: Girassol grau 3' trat 0 0 0 0 0 -1 2 0 -2 1;
contrast 'Fêmeas: Girassol grau 4' trat 0 0 0 0 0 1 -4 6 -4 1;
run;
proc glm;
class Sexo Girassol;
model GP = Sexo Girassol / ss1 ss2 ss3;
run;