Coleção experimentos

Planejar, simular e analisar um experimento

Declare o delineamento, componha a resposta termo a termo, analise por contrastes e confira o erro tipo I da análise por simulação.

A ideia

A coleção experiments trata o experimento em três momentos: planejar (declarar o delineamento, sortear e compor a resposta que ele vai ter), analisar (contrastes, Box-Cox, superfície de resposta) e avaliar (poder e teste de aleatorização). As ANOVAs continuam em trama.models: o plano, ligado a elas, vira tabela.

CategoriaBlocosResultado
Planejarexperiments/design, experiments/view, experiments/effect, experiments/errorplano sorteado, vistas do plano, resposta simulada
Analisarexperiments/contrasts, experiments/boxcox, experiments/response_surfacecontrastes com SQ, λ sugerido, modelo de superfície
Avaliarexperiments/power, experiments/randomization_testtaxa de rejeição com IC, p-valor por re-sorteio

Delineamento declarativo

experiments/design recebe uma estrutura (DIC, DBC, quadrado latino, fatorial, parcela subdividida, faixas, BIB, fracionado, composto central, medidas repetidas, crossover…) e os fatores, e sorteia a alocação. O plano guarda para cada fator o papel, a unidade que o recebe, o escopo do sorteio e a semente. experiments/view mostra o mesmo plano em cinco abas: mapa (o croqui), hierarquia (quem é unidade de quê), combinações, ordem de execução e componentes da resposta.

Resposta composta termo a termo

Antes de existir dado, a resposta é montada por uma cadeia de experiments/effect, um termo por card: intercepto, efeito fixo (por nível ou por contraste), efeito aleatório, interação, termo quantitativo ou covariável. Cada termo vira uma coluna .ef_<nome> com o seu valor verdadeiro. experiments/error soma os termos, sorteia o resíduo (normal, Poisson, binomial ou gama) e escreve a coluna de resposta. A aba componentes do experiments/view desenha essa soma, e a análise pode ser conferida contra o que foi declarado.

Tudo é contraste

Um efeito fixo pode ser declarado pelos contrastes que ele contém, com a magnitude de cada um (polinomiais, Helmert, controle ou digitados). experiments/contrasts faz o caminho de volta: abre o SQ do tratamento em uma linha por contraste, com estimativa, erro padrão, F e p, e confere se os SQ somam o do tratamento (só um conjunto completo e ortogonal soma; controle, cada tratamento contra o controle, não é ortogonal). Os mesmos conjuntos e coeficientes servem aos dois lados, então a estimativa devolvida está na mesma escala da magnitude declarada.

O caso da parcela subdividida

Numa parcela subdividida, a irrigação é sorteada às parcelas e a variedade às subparcelas dentro delas: há dois erros. Se a parcela tem variação própria (o termo aleatório bloco:parcela), a irrigação precisa ser testada contra o erro de parcela. A análise ingênua — o fatorial em blocos, models/anova_factorial — a testa contra o resíduo das subparcelas.

Medimos isso com experiments/power, com a irrigação sem efeito no modelo declarado (4 blocos, 2 irrigações, 3 variedades; bloco com sd 3, erro de parcela com sd 4, resíduo com sd 1), em 1000 réplicas — o código abaixo, com a semente padrão do card; sem o erro de parcela, é o mesmo fluxo sem o card parc:

Modelo verdadeiroAnáliseTaxa de rejeição de H0 (IC 95%)p_binomial
com erro de parcelaingênua (models/anova_factorial)38,4% (35,4–41,5%)—
com erro de parcelaparcela subdividida (models/anova_split_plot)5,6% (4,3–7,2%)0,38
sem erro de parcelaingênua5,4% (4,1–7,0%)0,56
sem erro de parcelaparcela subdividida3,7% (2,6–5,1%)0,059

O p_binomial é o teste binomial exato de “taxa = 5%”: nenhuma das três taxas perto de 5% se afasta dele a 5%. Com outra semente os números mudam dentro do erro de Monte Carlo (cerca de ±1,4 ponto em torno de 5%, ±3 em torno de 40%). O F da subdividida é o do aov com Error(bloco:parcela), exato sob o modelo.

Com erro de parcela, a análise ingênua rejeita uma H0 verdadeira em cerca de quatro de cada dez experimentos. O exemplo exemplos/delineamentos monta os dois casos lado a lado: plano → efeitos → erro → as duas ANOVAs → contrastes das variedades → componentes.

Delineamento
Efeito
Efeito
Efeito
Efeito
Efeito
Erro
Poder
library(trama)

reg <- tr_registry()
for (p in c("trama.data", "trama.view", "trama.models", "trama.experiments")) tr_use(p, registry = reg)

tr_flow(reg) |>
  tr_add("plano", "experiments/design", estrutura = "parcela_subdividida",
         fatores = "irrigacao: baixa, alta; variedade: A, B, C", repeticoes = 4L) |>
  tr_add("mu", "experiments/effect", tipo = "intercepto", valor = 50, from = "plano") |>
  tr_add("bloco", "experiments/effect", tipo = "aleatorio", fator = "bloco", sd = 3, from = "mu") |>
  tr_add("irr", "experiments/effect", tipo = "fixo", fator = "irrigacao",
         efeitos = "baixa = 0, alta = 0", from = "bloco") |>
  tr_add("var", "experiments/effect", tipo = "fixo", fator = "variedade",
         conjunto = "controle", controle = "A", magnitudes = "0.5, 2.5", from = "irr") |>
  tr_add("parc", "experiments/effect", tipo = "aleatorio", fator = "bloco:parcela", sd = 4, from = "var") |>
  tr_add("y", "experiments/error", resposta = "producao", sd = 1, from = "parc") |>
  tr_add("poder", "experiments/power", analise = "models/anova_factorial",
         parametros = "fatores = irrigacao, variedade; bloco = bloco",
         termo = "irrigacao", replicas = 1000L, from = "y")

Sem analise, experiments/power usa a análise que experiments/error sugeriu para o plano — aqui, models/anova_split_plot.