Coleção modelos

Selecionar modelos

Ranqueia vários modelos da mesma resposta por AICc, AIC ou BIC, com diferença para o melhor, pesos de Akaike e razão de evidência.

O que o bloco faz

models/select ranqueia dois ou mais modelos da mesma resposta por um critério de informação, numa única tabela. Diferente do models/compare, os modelos não precisam ser aninhados: liga-se um cabo por modelo.

A tabela traz, do melhor ao pior, o valor do critério, a diferença para o melhor (delta), o peso de Akaike (peso) e a razão de evidência (razao_evidencia), que é o peso do melhor dividido pelo do modelo.

Antes de continuar

Termos que esta página usa, em poucas palavras. As definições completas estão no glossário.

Verossimilhança
O quanto um modelo, com certos valores de parâmetros, torna prováveis os dados observados. Estimar por máxima verossimilhança é escolher os parâmetros que maximizam essa medida; critérios como AIC e BIC partem dela.
Modelo linear
Um modelo em que a resposta é a soma de efeitos das variáveis explicativas, cada um multiplicado por um coeficiente, mais um erro aleatório. Regressão e análise de variância são casos dele; “linear” se refere aos coeficientes, não à forma da curva.
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.
Efeito fixo e efeito aleatório
Um efeito fixo é estimado para cada nível que interessa (cada cultivar comparada). Um efeito aleatório trata os níveis observados como sorteio de uma população maior (fazendas, animais, anos) e estima a variância entre eles; modelos com os dois tipos são chamados mistos.
Interação
Há interação quando o efeito de um fator depende do nível de outro: o adubo aumenta a produção numa cultivar e não em outra. Com interação, olhar o efeito médio de cada fator sozinho pode enganar.

Quando usar

Quando há alguns modelos candidatos para os mesmos dados, por exemplo com e sem um termo de interação, ou com formas diferentes de tendência, e se quer saber qual deles o conjunto sustenta melhor. Para dois modelos aninhados, com um teste formal, o bloco indicado é o models/compare.

Pressupostos

  • Os modelos respondem à mesma resposta, na mesma escala e nas mesmas linhas.

  • O conjunto de modelos é definido antes de olhar os dados; os pesos valem só dentro dele.

  • A verossimilhança de cada modelo é a de máxima verossimilhança (REML não compara efeitos fixos diferentes).

Configuração

Critério: AICc (o padrão, que corrige o AIC para amostra pequena e converge para ele com n grande), AIC ou BIC.

Os modelos precisam ter a mesma resposta, escrita da mesma forma (log(y) e y não se comparam), e as mesmas linhas. Modelos mistos e GLS são reajustados por máxima verossimilhança antes da comparação. O bloco não aceita família quasi, que não tem verossimilhança, nem mistura resposta discreta (binomial, Poisson) com contínua (gaussiana, gama).

Exemplo

Exemplo de modelos
Regressão linear
Regressão linear
Regressão linear
Selecionar modelos
library(trama)

reg <- tr_registry()
tr_use("trama.models", registry = reg)

tr_flow(reg) |>
  tr_add("carros", "models/example", dataset = "mtcars") |>
  tr_add("m1", "models/lm", formula = "mpg ~ wt", from = "carros") |>
  tr_add("m2", "models/lm", formula = "mpg ~ wt + hp", from = "carros") |>
  tr_add("m3", "models/lm", formula = "mpg ~ wt * hp", from = "carros") |>
  tr_add("ranking", "models/select", from = c("m1", "m2", "m3"))

Como interpretar

Pela regra de Burnham e Anderson (2002), um delta de até 2 indica suporte substancial; de 4 a 7, bem menos; acima de 10, praticamente nenhum. A transição entre as faixas é gradual, e a regra serve para triagem, não como teste. O peso de Akaike é a probabilidade relativa de o modelo ser o melhor dentro do conjunto comparado, e muda se o conjunto mudar. O ranking diz qual modelo o conjunto sustenta, não se algum deles é bom: os pressupostos do modelo escolhido continuam precisando ser conferidos. Com n − k − 1 ≤ 0 o AICc não existe, e o modelo vai para o fim da tabela, sem peso.

Implementação

  • stats::AIC/BIC/logLik() versão 4.6.0AIC e BIC conferidos contra stats::AIC e stats::BIC; AICc e pesos de Akaike contra MuMIn::AICc e MuMIn::Weights (MuMIn 1.48.19), a 1e-10, no lm.

No código O bloco chama trama.models::tr_models_select(), em trama.models/R/selecionar.R:53.

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 (1)

Referências

Teoria

  • Hurvich, C. M.; Tsai, C.-L. (1989). Regression and time series model selection in small samples. Biometrika 76(2): 297-307. doi:10.1093/biomet/76.2.297

Livro-texto

  • Burnham, K. P.; Anderson, D. R. (2002). Model Selection and Multimodel Inference: A Practical Information-Theoretic Approach, 2nd ed. New York: Springer. doi:10.1007/b97636

Ver a bibliografia completa do trama