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
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 contrastats::AICestats::BIC; AICc e pesos de Akaike contraMuMIn::AICceMuMIn::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)
stats::as.formula(m$formula)
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