used (Mb) gc trigger (Mb) max used (Mb)
Ncells 561493 30.0 1282138 68.5 644254 34.5
Vcells 992773 7.6 8388608 64.0 1635074 12.5
Planejamento de Experimentos - Anova One Way
Planejamento de Experimentos
Conforme o aprendido em sala de aula, o objetivo é utilizar uma problemática e colocá-la em prática. Utilizaremos um hipótetico problema retirado do Livro sobre planejamento de Experimentos do Montgomery. Segue a descrição da problemática abaixo.
Problemática definida
- Um desenvolvedor de produto está investigando a resistência à tração de uma nova fibra sintética que será usada para fazer tecidos para camisas masculinas. A força é geralmente afetada pela porcentagem de algodão utilizado na mistura de materiais para a fibra. O engenheiro conduz um experimento completamente aleatório com cinco níveis de conteúdo de algodão e replica o experimento cinco vezes. Os dados são mostrados na tabela a seguir.
Vemos que se encaixa em um modelo de fixo
Cotton Weight Percent | Observations | ||||
---|---|---|---|---|---|
15 | 7 | 7 | 15 | 11 | 9 |
20 | 12 | 17 | 12 | 18 | 18 |
25 | 14 | 19 | 19 | 18 | 18 |
30 | 19 | 25 | 22 | 19 | 23 |
35 | 7 | 10 | 11 | 15 | 11 |
setwd("C:/Users/Pessoal/Desktop/ESTATÍSTICA/UFPB/8º PERÍODO/PLANEJAMENTO DE EXPERIMENTOS I/AULA - ANOVA ONEWAY/EXERCÍCIO")
Carregando o banco de dados, que foi salvo em csv.
<- read.csv2("dados.csv", header = T, col.names = c("Percentual", "Observação")) dados
Vamos observar os dados, para o conhecimento de todos
::kable(dados) knitr
Percentual | Observação |
---|---|
15 | 7 |
15 | 7 |
15 | 15 |
15 | 11 |
15 | 9 |
20 | 12 |
20 | 17 |
20 | 12 |
20 | 18 |
20 | 19 |
25 | 14 |
25 | 19 |
25 | 19 |
25 | 18 |
25 | 18 |
30 | 19 |
30 | 25 |
30 | 22 |
30 | 19 |
30 | 23 |
35 | 7 |
35 | 10 |
35 | 11 |
35 | 15 |
35 | 11 |
::skim(dados) skimr
Name | dados |
Number of rows | 25 |
Number of columns | 2 |
_______________________ | |
Column type frequency: | |
numeric | 2 |
________________________ | |
Group variables | None |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
Percentual | 0 | 1 | 25.00 | 7.22 | 15 | 20 | 25 | 30 | 35 | ▇▇▇▇▇ |
Observação | 0 | 1 | 15.08 | 5.18 | 7 | 11 | 15 | 19 | 25 | ▅▆▃▇▃ |
Verificando se há diferença entre os grupos e ajustando um modelo de regressão
Vamos verificar se existe diferença entre os grupos e logo em seguida ajustar um modelo de regressão e verificar qual ajuste se é o melhor na problemática, se de fato houver diferença devido ao percentual de algodão.
attach(dados)
::crd(Percentual, Observação, quali = F,
ExpDesmcomp = "tukey", nl = FALSE, hvar = "levene",
sigT = 0.05, sigF = 0.05)
------------------------------------------------------------------------
Analysis of Variance Table
------------------------------------------------------------------------
DF SS MS Fc Pr>Fc
Treatament 4 476.64 119.16 14.254 1.1722e-05
Residuals 20 167.20 8.36
Total 24 643.84
------------------------------------------------------------------------
CV = 19.17 %
------------------------------------------------------------------------
Shapiro-Wilk normality test
p-value: 0.1444829
According to Shapiro-Wilk normality test at 5% of significance, residuals can be considered normal.
------------------------------------------------------------------------
------------------------------------------------------------------------
Homogeneity of variances test
p-value: 0.5749962
According to the test of levene at 5% of significance, residuals can be considered homocedastic.
------------------------------------------------------------------------
Adjustment of polynomial models of regression
------------------------------------------------------------------------
Linear Model
=========================================
Estimate Standard.Error tc p.value
-----------------------------------------
b0 11.0800 2.1247 5.2148 0.00004
b1 0.1600 0.0818 1.9565 0.0645
-----------------------------------------
R2 of linear model
--------
0.067137
--------
Analysis of Variance of linear model
================================================
DF SS MS Fc p.value
------------------------------------------------
Linear Effect 1 32 32 3.83 0.06452
Lack of fit 3 444.6400 148.2133 17.73 1e-05
Residuals 20 167.2000 8.3600
------------------------------------------------
------------------------------------------------------------------------
Quadratic Model
==========================================
Estimate Standard.Error tc p.value
------------------------------------------
b0 -40.1771 8.2275 -4.8833 0.0001
b1 4.6171 0.6960 6.6339 0
b2 -0.0891 0.0138 -6.4487 0
------------------------------------------
R2 of quadratic model
--------
0.796528
--------
Analysis of Variance of quadratic model
===================================================
DF SS MS Fc p.value
---------------------------------------------------
Linear Effect 1 32 32 3.83 0.06452
Quadratic Effect 1 347.6571 347.6571 41.59 0
Lack of fit 2 96.9829 48.4914 5.8 0.01031
Residuals 20 167.2000 8.3600
---------------------------------------------------
------------------------------------------------------------------------
Cubic Model
==========================================
Estimate Standard.Error tc p.value
------------------------------------------
b0 58.8229 37.7096 1.5599 0.1345
b1 -8.5095 4.9289 -1.7264 0.0997
b2 0.4609 0.2049 2.2490 0.0359
b3 -0.0073 0.0027 -2.6901 0.0141
------------------------------------------
R2 of cubic model
--------
0.923458
--------
Analysis of Variance of cubic model
===================================================
DF SS MS Fc p.value
---------------------------------------------------
Linear Effect 1 32 32 3.83 0.06452
Quadratic Effect 1 347.6571 347.6571 41.59 0
Cubic Effect 1 60.5000 60.5000 7.24 0.01408
Lack of fit 1 36.4829 36.4829 4.36 0.0497
Residuals 20 167.2000 8.3600
---------------------------------------------------
------------------------------------------------------------------------
De acordo com os resultados, tomamos as seguintes conclusões: sim, existe efeito devido ao percentual de algodão na camisa, pois conforme é emitido do teste, no qual o p-valor foi de \(1.1722 \times 10^{-5}\), implicando assim na rejeição da hipótese nula que diz que não existe diferença devido ao percentual de algodão. Obtivemos também que o melhor ajuste para um modelo de regressão seria o ajuste cúbico, mesmo assim não é significante a ponto de ser utilizado, tendo também um coeficiente de determinação alto no modelo cúbico.
Continuemos na análise da problemática, sabendo que existe diferença significativa entre os percentuais de algodão.
Estimação do intervalo de confiança dos grupos
::kable(rcompanion::groupwiseMean(Observação~Percentual,
knitrdata = dados, conf = 0.95, traditional = T,
digits = 4))
Percentual | n | Mean | Conf.level | Trad.lower | Trad.upper |
---|---|---|---|---|---|
15 | 5 | 9.8 | 0.95 | 5.645 | 13.96 |
20 | 5 | 15.6 | 0.95 | 11.430 | 19.77 |
25 | 5 | 17.6 | 0.95 | 15.030 | 20.17 |
30 | 5 | 21.6 | 0.95 | 18.360 | 24.84 |
35 | 5 | 10.8 | 0.95 | 7.244 | 14.36 |
Vemos com base nesses resultados que alguns grupos são iguais entre si, mas não todos os grupos.
Verificando as suposições do modelo
Vamos verificar algumas suposições do modelo que foi ajustado, verificando que existe efeito devido ao tratamento.
<- aov(Observação~factor(Percentual), data = dados)
anova summary(anova)
Df Sum Sq Mean Sq F value Pr(>F)
factor(Percentual) 4 476.6 119.16 14.25 1.17e-05 ***
Residuals 20 167.2 8.36
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Mais uma vez, como já foi observado mais acima, o resultado é que tem diferença significativa devido ao percentual de algodão, o resultado do p-valor foi de \(1.17 \times 10^{-5}\). Rejeitamos \(H_0\), ou seja, existe evidências estatísticas de que o percentual de algodão na camisa faz a diferença na força.
<- as.factor(Percentual)
Percentual ::ggplot(dados, ggplot2::aes(y = Observação, x = factor(Percentual), fill = factor(Percentual)), legend.tile = "Percentual") + ggplot2::scale_fill_brewer(palette="Dark2") +
ggplot2::geom_boxplot(outlier.colour = "red", notch = F)+
ggplot2::ggtitle("Boxplot da força de acordo com o percentual de algodão")+
ggplot2::xlab("Percentual") + ggplot2::ylab("Observação")+
ggplot2::theme_minimal() + ggplot2::labs(fill = "Percentual") ggplot2
Faremos a padronização dos resíduos para continuar com a verificação das suposições do modelo.
<- anova$residuals
res <- sum(res^2)
SSE <- SSE/anova$df.residual
MSE <- res/sqrt(MSE)
resid.padronizado resid.padronizado
1 2 3 4 5 6
-0.96840025 -0.96840025 1.79845761 0.41502868 -0.27668579 -1.24508603
7 8 9 10 11 12
0.48420012 -1.24508603 0.83005736 1.17591459 -1.24508603 0.48420012
13 14 15 16 17 18
0.48420012 0.13834289 0.13834289 -0.89922880 1.17591459 0.13834289
19 20 21 22 23 24
-0.89922880 0.48420012 -1.31425748 -0.27668579 0.06917145 1.45260037
25
0.06917145
Esses são os resíduos padronizados.
Através do teste de dixon, testa-se a hipótese de outliers com base nos resíduos padronizados.
::dixon.test(res) outliers
Dixon test for outliers
data: res
Q.3 = 0.20455, p-value = 0.9427
alternative hypothesis: highest value 5.2 is an outlier
Conforme o resultado do teste, no qual o p-valor foi de 0.9427, maior do que o meu nível de significância fixado, sendo assim, é conclui-se que não temos outliers.
Teste de Normalidade
Utilizaremos o teste de Shapiro - Wilk para verificar se os resíduos são distribuidos normalmente.
shapiro.test(res)
Shapiro-Wilk normality test
data: res
W = 0.93954, p-value = 0.1445
De acordo com o resultado do teste, obtivemos um p-valor de 0.144, e como é maior do que é o nível de significância adotado, concluimos que os resíduos estão distribuidos normalmente.
Teste de Homogeneidade de Variâncias
- Teste de Levene, um teste que é bastante utilizado quando não se tem normalidade.
::levene.test(Observação, Percentual) lawstat
Modified robust Brown-Forsythe Levene-type test based on the absolute
deviations from the median
data: Observação
Test Statistic = 0.39474, p-value = 0.81
- Teste de Fligner
fligner.test(Observação~Percentual, data = dados)
Fligner-Killeen test of homogeneity of variances
data: Observação by Percentual
Fligner-Killeen:med chi-squared = 1.963, df = 4, p-value = 0.7426
bartlett.test(Observação,Percentual)
Bartlett test of homogeneity of variances
data: Observação and Percentual
Bartlett's K-squared = 1.0797, df = 4, p-value = 0.8975
Como observamos através do resultado do p-valor, que foi respectivamente: 0.81,0.74 e 0.897. Então, concluímos que a homogeneidade das variâncias é aceita.
Teste Robusto para a anova oneway
Utlizado supondo a heterocedasticidade dos dados
Teste de Welch
Esperamos que se o p-valor for menor do que \(\alpha\), significa que há efeito devido ao percentual.
::welch.test(Observação~Percentual, data = dados) onewaytests
Welch's Heteroscedastic F Test (alpha = 0.05)
-------------------------------------------------------------
data : Observação and Percentual
statistic : 12.42802
num df : 4
denom df : 9.905549
p.value : 0.0007070279
Result : Difference is statistically significant.
-------------------------------------------------------------
De acordo com o p-valor, que foi de 7.1^{-4}. Sendo assim, concluimos então que existe efeito significativo devido ao percentual.
Teste de Bryan Forsythe
Esperamos que se o p-valor for menor do que \(\alpha\), significa que há efeito devido ao percentual.
::bf.test(Observação~factor(Percentual), data = dados) onewaytests
Brown-Forsythe Test (alpha = 0.05)
-------------------------------------------------------------
data : Observação and factor(Percentual)
statistic : 14.25359
num df : 4
denom df : 18.14843
p.value : 1.978908e-05
Result : Difference is statistically significant.
-------------------------------------------------------------
Estes testes são utilizados quando se tem a violação da homocedasticidade, ou seja, quando as variâncias dos grupos não são iguais.
De acordo com o p-valor, que foi de 1.979^{-5}. Sendo assim, concluimos então que existe efeito significativo devido ao percentual.
Depois, de observarmos que tem diferença significativa devido ao percentual de algodão na força da camisa, vamos observar agora quais são os grupos diferentes e os iguais através de comparações múltiplas.
Comparações Múltiplas
Supondo heterocedasticidade utilizaremos comparações múltiplas através do teste de Welch.
::kable(onewaytests::paircomp(onewaytests::welch.test(Observação~Percentual, data = dados))) knitr
Welch's Heteroscedastic F Test (alpha = 0.05)
-------------------------------------------------------------
data : Observação and Percentual
statistic : 12.42802
num df : 4
denom df : 9.905549
p.value : 0.0007070279
Result : Difference is statistically significant.
-------------------------------------------------------------
Bonferroni Correction (alpha = 0.05)
-----------------------------------------------------
Level (a) Level (b) p.value No difference
1 15 20 0.256810809 Not reject
2 15 25 0.034148385 Reject
3 15 30 0.003223292 Reject
4 15 35 1.000000000 Not reject
5 20 25 1.000000000 Not reject
6 20 30 0.146065454 Not reject
7 20 35 0.419052058 Not reject
8 25 30 0.289912826 Not reject
9 25 35 0.032427474 Reject
10 30 35 0.002587586 Reject
-----------------------------------------------------
Level (a) | Level (b) | p.value | No difference |
---|---|---|---|
15 | 20 | 0.2568108 | Not reject |
15 | 25 | 0.0341484 | Reject |
15 | 30 | 0.0032233 | Reject |
15 | 35 | 1.0000000 | Not reject |
20 | 25 | 1.0000000 | Not reject |
20 | 30 | 0.1460655 | Not reject |
20 | 35 | 0.4190521 | Not reject |
25 | 30 | 0.2899128 | Not reject |
25 | 35 | 0.0324275 | Reject |
30 | 35 | 0.0025876 | Reject |
O teste de Welch é utilizado quando existe heterocedasticidade, o teste de Welch, para comparações múltiplas permitem que façamos comparações entre os grupos para saber se existe diferença ou não.
Teste de Tukey
TukeyHSD(aov(Observação~factor(Percentual), data = dados))
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = Observação ~ factor(Percentual), data = dados)
$`factor(Percentual)`
diff lwr upr p adj
20-15 5.8 0.3279622 11.2720378 0.0344652
25-15 7.8 2.3279622 13.2720378 0.0030995
30-15 11.8 6.3279622 17.2720378 0.0000244
35-15 1.0 -4.4720378 6.4720378 0.9810840
25-20 2.0 -3.4720378 7.4720378 0.8076796
30-20 6.0 0.5279622 11.4720378 0.0273435
35-20 -4.8 -10.2720378 0.6720378 0.1033135
30-25 4.0 -1.4720378 9.4720378 0.2246058
35-25 -6.8 -12.2720378 -1.3279622 0.0105536
35-30 -10.8 -16.2720378 -5.3279622 0.0000791
Obtivemos que, o grupo do percentual 15 é igual ao grupo 35. O grupo 20 é igual ao 25 e 35. O grupo 25 é igual ao 30. São estes que são iguais entre sim, os outros pares e combinações são diferentes.
<- agricolae::HSD.test(anova, "factor(Percentual)")
out out
$statistics
MSerror Df Mean CV MSD
8.36 20 15.08 19.17352 5.472038
$parameters
test name.t ntr StudentizedRange alpha
Tukey factor(Percentual) 5 4.231857 0.05
$means
Observação std r Min Max Q25 Q50 Q75
15 9.8 3.346640 5 7 15 7 9 11
20 15.6 3.361547 5 12 19 12 17 18
25 17.6 2.073644 5 14 19 18 18 19
30 21.6 2.607681 5 19 25 19 22 23
35 10.8 2.863564 5 7 15 10 11 11
$comparison
NULL
$groups
Observação groups
30 21.6 a
25 17.6 ab
20 15.6 bc
35 10.8 cd
15 9.8 d
attr(,"class")
[1] "group"
De acordo com essa saída podemos ver grupos se formando, por exemplo temos o grupo 25 e 30, o grupo 20 e 25, e o 35 e 15. Conforme os teste já utilizados acima também.
plot(out)
Teste de Fisher
<- agricolae::LSD.test(anova, "factor(Percentual)", p.adj = "bonferroni")
out1 out1
$statistics
MSerror Df Mean CV t.value MSD
8.36 20 15.08 19.17352 3.153401 5.7665
$parameters
test p.ajusted name.t ntr alpha
Fisher-LSD bonferroni factor(Percentual) 5 0.05
$means
Observação std r LCL UCL Min Max Q25 Q50 Q75
15 9.8 3.346640 5 7.102727 12.49727 7 15 7 9 11
20 15.6 3.361547 5 12.902727 18.29727 12 19 12 17 18
25 17.6 2.073644 5 14.902727 20.29727 14 19 18 18 19
30 21.6 2.607681 5 18.902727 24.29727 19 25 19 22 23
35 10.8 2.863564 5 8.102727 13.49727 7 15 10 11 11
$comparison
NULL
$groups
Observação groups
30 21.6 a
25 17.6 ab
20 15.6 bc
35 10.8 cd
15 9.8 d
attr(,"class")
[1] "group"
Teste de Scheffé
<- agricolae::scheffe.test(anova, "factor(Percentual)")
out2 out2
$statistics
MSerror Df F Mean CV Scheffe CriticalDifference
8.36 20 2.866081 15.08 19.17352 3.385901 6.191664
$parameters
test name.t ntr alpha
Scheffe factor(Percentual) 5 0.05
$means
Observação std r Min Max Q25 Q50 Q75
15 9.8 3.346640 5 7 15 7 9 11
20 15.6 3.361547 5 12 19 12 17 18
25 17.6 2.073644 5 14 19 18 18 19
30 21.6 2.607681 5 19 25 19 22 23
35 10.8 2.863564 5 7 15 10 11 11
$comparison
NULL
$groups
Observação groups
30 21.6 a
25 17.6 a
20 15.6 ab
35 10.8 b
15 9.8 b
attr(,"class")
[1] "group"
plot(out2, main = "Comparações entre grupos - Teste de Scheffé")
De acordo com o teste de Scheffer, obtivemos que o percentual 25 é igual a dois grupos que se formaram, o grupo do percentual 25 e 30, e igual ao grupo do percentual 15 e 35.
Para os intervalos de confiança da diferença, temos o seguinte:
::ScheffeTest(anova) DescTools
Posthoc multiple comparisons of means: Scheffe Test
95% family-wise confidence level
$`factor(Percentual)`
diff lwr.ci upr.ci pval
20-15 5.8 -0.3916641 11.9916641 0.0739 .
25-15 7.8 1.6083359 13.9916641 0.0089 **
30-15 11.8 5.6083359 17.9916641 0.0001 ***
35-15 1.0 -5.1916641 7.1916641 0.9891
25-20 2.0 -4.1916641 8.1916641 0.8751
30-20 6.0 -0.1916641 12.1916641 0.0606 .
35-20 -4.8 -10.9916641 1.3916641 0.1846
30-25 4.0 -2.1916641 10.1916641 0.3431
35-25 -6.8 -12.9916641 -0.6083359 0.0266 *
35-30 -10.8 -16.9916641 -4.6083359 0.0003 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
O que já foi visto no teste realizado acima e no plot.
Teste de Duncan
<- agricolae::duncan.test(anova, "factor(Percentual)")
out3 out3
$statistics
MSerror Df Mean CV
8.36 20 15.08 19.17352
$parameters
test name.t ntr alpha
Duncan factor(Percentual) 5 0.05
$duncan
Table CriticalRange
2 2.949998 3.814519
3 3.096506 4.003964
4 3.189616 4.124360
5 3.254648 4.208450
$means
Observação std r Min Max Q25 Q50 Q75
15 9.8 3.346640 5 7 15 7 9 11
20 15.6 3.361547 5 12 19 12 17 18
25 17.6 2.073644 5 14 19 18 18 19
30 21.6 2.607681 5 19 25 19 22 23
35 10.8 2.863564 5 7 15 10 11 11
$comparison
NULL
$groups
Observação groups
30 21.6 a
25 17.6 b
20 15.6 b
35 10.8 c
15 9.8 c
attr(,"class")
[1] "group"
<- agricolae::SNK.test(anova, "factor(Percentual)")
out4 out4
$statistics
MSerror Df Mean CV
8.36 20 15.08 19.17352
$parameters
test name.t ntr alpha
SNK factor(Percentual) 5 0.05
$snk
Table CriticalRange
2 2.949998 3.814519
3 3.577935 4.626478
4 3.958293 5.118305
5 4.231857 5.472038
$means
Observação std r Min Max Q25 Q50 Q75
15 9.8 3.346640 5 7 15 7 9 11
20 15.6 3.361547 5 12 19 12 17 18
25 17.6 2.073644 5 14 19 18 18 19
30 21.6 2.607681 5 19 25 19 22 23
35 10.8 2.863564 5 7 15 10 11 11
$comparison
NULL
$groups
Observação groups
30 21.6 a
25 17.6 b
20 15.6 b
35 10.8 c
15 9.8 c
attr(,"class")
[1] "group"
Teste de Waller
<- agricolae::waller.test(anova, "factor(Percentual)")
out5 out5
$statistics
Mean Df CV MSerror F.Value Waller CriticalDifference
15.08 20 19.17352 8.36 14.25359 1.949 3.56406
$parameters
test name.t ntr K
Waller-Duncan factor(Percentual) 5 100
$means
Observação std r Min Max Q25 Q50 Q75
15 9.8 3.346640 5 7 15 7 9 11
20 15.6 3.361547 5 12 19 12 17 18
25 17.6 2.073644 5 14 19 18 18 19
30 21.6 2.607681 5 19 25 19 22 23
35 10.8 2.863564 5 7 15 10 11 11
$comparison
NULL
$groups
Observação groups
30 21.6 a
25 17.6 b
20 15.6 b
35 10.8 c
15 9.8 c
attr(,"class")
[1] "group"
Todos os testes que foram realizados acima, podem ser feitos por causa da aceitação da homocedasticidade.
Teste de Dunnet
Esse teste geralmente se é utilizado quando temos um grupo de controle, e como estamos analisando a resistência a tração da fibra em que será utilizada para ser feita a camisa masculina, obtemos que quanto maior o valor de interesse melhor, já foi observado que o grupo que tem a maior média é o grupo do percentual 30, logo, este valor será o valor de referência utilizado como controle.
::DunnettTest(Observação, Percentual, control = "30",
DescToolsconf.level = 0.95)
Dunnett's test for comparing several treatments with a control :
95% family-wise confidence level
$`30`
diff lwr.ci upr.ci pval
15-30 -11.8 -16.650493 -6.949507 6.7e-06 ***
20-30 -6.0 -10.850493 -1.149507 0.0130 *
25-30 -4.0 -8.850493 0.850493 0.1247
35-30 -10.8 -15.650493 -5.949507 2.3e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
É observado que como o objetivo é ter uma alta tração a resistência, não existe evidências estatísticas a um nível de significância de 5% para se dizer que os percentuais 30 e 25 são diferentes entre si, sendo preferível o uso destes, para que seja obtido um material de alta qualidade.
Contrastes ortogonais
Como no exemplo que está sendo considerado temos 5 grupos, temos 4 contrastes ortogonais, que serão verificados, que são eles.
\[\begin{cases} & C_1: \mu_{15} = \mu_{20} \\ & C_2: \mu_{25} = \mu_{30} \\ & C_3: \mu_{15} + \mu_{20} = \mu_{25} + \mu_{30} \\ & C_4: \mu_{15} + \mu_{20} + \mu_{25} + \mu_{30} = \mu_{35} \end{cases}\]
Criando os contrastes, depois prosseguindo para saber se são ortogonais.
<- c(1,-1,0,0,0)
C1 <- c(0,0,1,-1,0)
C2 <- c(1,1,-1,-1,0)
C3 <- c(-1,-1,-1,-1,4) C4
::check.orthogonality(rbind(C1,C2,C3,C4)) ibd
[1] 1
Como o resultado do teste, foi observado que os contrastes são ortogonais.
Prosseguindo com a análise dos contrastes ortogonais
<-factor(Percentual)
Percentual = rbind("C1: 15 = 20" = C1,
c2 "C2: 25 = 30" = C2,
"C3: 15 + 20 = 25 + 30" = C3,
"C4: 15 + 20 + 25 + 30 = 35 " = C4)
= gmodels::make.contrasts(c2) contraste2
Registered S3 method overwritten by 'gdata':
method from
reorder.factor DescTools
= aov(Observação ~ Percentual,
Anovac2 contrasts = list(Percentual = contraste2))
summary(Anovac2, split = list(Percentual=list("C1: 15 = 20"=1, "C2: 25 = 30"=2, "C3: 15 + 20 = 25 + 30" =3, "C4: 15 + 20 + 25 + 30 = 35" = 4)))
Df Sum Sq Mean Sq F value Pr(>F)
Percentual 4 476.6 119.16 14.254 1.17e-05 ***
Percentual: C1: 15 = 20 1 84.1 84.10 10.060 0.00480 **
Percentual: C2: 25 = 30 1 40.0 40.00 4.785 0.04076 *
Percentual: C3: 15 + 20 = 25 + 30 1 238.1 238.05 28.475 3.19e-05 ***
Percentual: C4: 15 + 20 + 25 + 30 = 35 1 114.5 114.49 13.695 0.00142 **
Residuals 20 167.2 8.36
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
A um nível de significância de 5 % rejeitamos todos os contrastes, ou seja, nenhum dos teste de contrastes foi aceito.
Conclusão
Com base em tudo o que foi analisado, em todas as suposições que foram checadas e nos ajustes que foram necessários serem realizados, concluimos que existe efeito significativo na força de determinada camisa, devido ao percentual de algodão utilizado. Concluimos também que existe grupos que são iguais entre si e outros que são diferentes, foi observado também que percentuais mais baixos e mais altos tendem a ter um efeito negativo na força, sendo assim preferível os que estão entre esses valores.