Coleção modelos
Scott-Knott
Scott-Knott: separa as médias em grupos sem sobreposição.
O que o bloco faz
models/scott_knott agrupa as médias de um tratamento pelo método de Scott & Knott (1974): ordena as médias, acha o corte que divide o conjunto em dois grupos com a maior soma de quadrados entre eles, testa esse corte pela razão de verossimilhança e repete dentro de cada lado enquanto o corte for significativo. A saída é models/emm, com uma letra por média.
Antes de continuar
Termos que esta página usa, em poucas palavras. As definições completas estão no glossário.
- Variância
- A média dos quadrados das distâncias de cada valor à média: mede o quanto os dados se espalham. O desvio padrão é a raiz quadrada da variância e fica na mesma unidade dos dados.
- Resíduo
- A diferença entre o valor observado e o valor que o modelo ajustado prevê para aquela observação. É nos resíduos que se conferem os pressupostos do modelo: eles devem parecer ruído, sem padrão.
- Modelo linear generalizado (GLM)
- Uma extensão do modelo linear para respostas que não são normais, como contagens (Poisson) e proporções ou sim/não (binomial). Uma função de ligação conecta a média da resposta à parte linear do modelo.
- Fator
- Uma variável explicativa categórica cujo efeito se quer estudar, como adubo, cultivar ou dose. Num experimento fatorial, dois ou mais fatores são combinados.
- Comparações múltiplas
- Comparar muitos pares de tratamentos aumenta a chance de achar alguma diferença só por acaso. Os procedimentos de comparações múltiplas (Tukey, Dunnett, Scott-Knott...) controlam essa chance de formas diferentes, e por isso podem discordar entre si.
Quando usar
Para dividir muitos tratamentos em grupos que não se sobrepõem, sobre uma ANOVA balanceada (DIC, DBC, DQL, fatorial, parcela subdividida). O nível vale para cada corte, não para o agrupamento inteiro. Com bloco incompleto, covariável ou repetições desiguais o bloco recusa: as médias da tabela deixam de ter a variância comum que o teste supõe. Nesses casos, use o models/emmeans.
Pressupostos
O modelo que entra atende aos seus pressupostos (erros normais, variância constante, independência): as comparações usam o erro padrão dele.
Verificar:Normalidade dos resíduosLeveneDiagnóstico dos resíduos
Se falhar: Acerte o modelo antes: transformação,
models/glm, oumodels/lmerpara erros correlacionados.As médias vêm de uma ANOVA com um erro só por fator (o bloco escolhe o erro (a) ou (b) na parcela subdividida), e os dados são balanceados: as médias usadas são as da tabela.
Se falhar: No desbalanceado, ou em GLM e misto, use o
models/emmeans.Sem interação relevante com outro fator; havendo, a média de um fator somada sobre o outro esconde o que aconteceu.
Verificar:Quadro da ANOVA
Se falhar: Compare dentro de cada nível do outro fator (Por no
models/emmeans).Todo outro termo do modelo é ortogonal ao tratamento (bloco completo, sem covariável): a média da tabela estima a do nível, com variância QM / rᵢ. Repetições desiguais são aceitas no DIC; em cada corte s² é a média de QM / rᵢ do grupo (Jelihovschi, Faria & Allaman 2014;
ScottKnott:::MaxValue).Se falhar: O bloco recusa; use o
models/emmeanscom médias ajustadas.O alfa vale para cada corte, não para o agrupamento inteiro: a taxa de erro por experimento é maior que a nominal quando há muitas médias.
Configuração
Informe o tratamento e a confiança (padrão 0,95; cada corte é testado a alfa = 1 − confiança). Na parcela subdividida, o bloco usa o erro (a) ou (b) do fator.
Exemplo
library(trama)
reg <- tr_registry()
tr_use("trama.models", registry = reg)
tr_flow(reg) |>
tr_add("milho", "models/example", dataset = "milho_dbc") |>
tr_add("dbc", "models/anova_dbc", resposta = "producao", tratamento = "hibrido",
bloco = "bloco", from = "milho") |>
tr_add("sk", "models/scott_knott", tratamento = "hibrido", from = "dbc")No milho_dbc (QM do resíduo 0,0931 com 12 gl), os cinco híbridos formam três grupos: H3 (9,07) no grupo a, H5 (8,47) no b, e H1, H2 e H4 (7,96, 7,87 e 7,66) no c.
Como interpretar
Médias com a mesma letra ficaram no mesmo grupo: nenhum corte entre elas foi significativo. Como cada média tem uma letra só, a leitura é mais simples que a do Tukey, mas o método não controla a taxa de erro do experimento inteiro.
Implementação
trama::tr_models_scott_knott()versão 0.5.11Implementação própria das fórmulas de Scott & Knott (1974): médias da tabela, s2 das médias = média de QM / rᵢ no grupo partido (QM / r no balanceado), qui-quadrado com k/(pi - 2) gl; conferida contraScottKnott::SK1.4-0 (DIC, DBC, DIC desbalanceado, InsectSprays, CRD2).
No código O bloco chama trama.models::tr_models_scott_knott(), em trama.models/R/agricolae.R:192.
A conta é implementada pelo próprio trama, sem um pacote R de referência por trás.
Outras funções de pacotes que o bloco usa (36)
stats::anova(aj)reformulas::nobars(stats::formula(aj))stats::formula(aj)stats::setNames(rep(list("contr.sum"), length(usados)), usados)MASS::glm.nb(stats::formula(aj), data = fit$dados, contrasts = if (length(ctr)) ctr else NULL)stats::formula(aj)stats::glm(stats::formula(aj), family = stats::family(aj), data = fit$dados, contrasts = if (length(ctr)) ctr else NULL)stats::formula(aj)stats::family(aj)lme4::glmer(stats::formula(aj), data = as.data.frame(fit$dados), family = stats::family(aj), contrasts = if (length(ctr)) ctr else NULL)stats::formula(aj)stats::family(aj)stats::contrasts(d[[v]])stats::contr.sum(nlevels(d[[v]]))stats::lm(stats::formula(aj), data = fit$dados, contrasts = if (length(ctr)) ctr else NULL)car::Anova(m, type = if (tipo == "II") 2 else 3)stats::family(aj)stats::anova(aj, test = if (usa_f) "F" else "Chisq")car::Anova(m, type = if (tipo == "II") 2 else 3, test.statistic = if (usa_f) "F" else "LR")stats::anova(modelo$ajuste, type = tipo)stats::anova(m, type = if (tipo == "I") "sequential" else "marginal")car::Anova(m, type = tipo)stats::anova(fit$ajuste)stats::pf(tab$F[i], tab$gl[i], gl_a, lower.tail = FALSE)car::Anova(modelo$ajuste, type = 2)reformulas::nobars(stats::as.formula(fit$formula))stats::as.formula(fit$formula)stats::terms(fixa)stats::as.formula(paste("~", t))stats::anova(aj)car::Anova(aj, type = 2)stats::residuals(fit$ajuste)stats::df.residual(fit$ajuste)stats::formula(modelo$ajuste)stats::qchisq(1 - alfa, k/(pi - 2))stats::qt(1 - alfa/2, b$gl)
Referências
Teoria
- Scott, A. J.; Knott, M. (1974). A cluster analysis method for grouping means in the analysis of variance. Biometrics, 30(3), 507-512. doi:10.2307/2529204
Complementar
- Jelihovschi, E. G.; Faria, J. C.; Allaman, I. B. (2014). ScottKnott: a package for performing the Scott-Knott clustering algorithm in R. TEMA (São Carlos), 15(1), 3-17. doi:10.5540/tema.2014.015.01.0003