Coleção modelos

Prever

Aplica um modelo já ajustado a uma tabela nova (ou ao próprio treino), e devolve a previsão de cada linha.

O que o bloco faz

models/predict anexa a previsão de cada observação a dados novos — ou, sem dados ligada, às linhas do próprio ajuste. A saída é data/table com previsto, prob_<nível> na classificação e, quando pedidos, limites.

Antes de continuar

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

Intervalo de confiança
Uma faixa de valores calculada a partir da amostra. Com 95% de confiança, o procedimento produz intervalos que contêm o valor verdadeiro em 95% das amostras possíveis; não quer dizer que um intervalo específico tenha 95% de probabilidade de acertar.
Hipótese nula
A afirmação que o teste põe à prova, em geral a de que não há efeito ou diferença (médias iguais, ausência de tendência). O teste mede o quanto os dados são incompatíveis com ela; não rejeitá-la não prova que ela é verdadeira.
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.
Nível
Cada valor que um fator assume no estudo: as doses 0, 50 e 100 kg/ha são três níveis do fator dose.

Quando usar

Use após ajustar o modelo para aplicar a equação a linhas novas que contenham os preditores necessários.

Pressupostos

  • As linhas novas estão dentro da faixa dos preditores do ajuste: fora dela é extrapolação, e a previsão (e o intervalo) supõe que a forma do modelo continua valendo onde não houve dado. Na regressão múltipla a faixa é a da nuvem conjunta, não a de cada coluna.

    Verificar:DispersoResíduos

    Se falhar: Leia a previsão fora da faixa como hipótese, não como estimativa; o intervalo não cobre o erro de forma do modelo.

  • O modelo está bem especificado e os pressupostos dele valem (os do bloco que o ajustou): a previsão herda a forma, e o intervalo herda a normalidade e a variância constante do erro.

    Verificar:Diagnóstico dos resíduosNormalidade dos resíduos

  • O intervalo certo para a pergunta: confiança cobre a MÉDIA da resposta naquele x; predição cobre UMA observação nova, e é mais largo porque soma a variância do erro. Para dizer onde cairá a próxima parcela, é o de predição.

    Se falhar: Troque o param Intervalo.

  • A unidade nova vem da mesma população do ajuste (mesmas condições, mesmos níveis de fator; o bloco recusa nível que o ajuste não viu).

  • A medida de acerto no próprio treino por resubstituição sai otimista.

    Verificar:Avaliar previsões

    Se falhar: Use a validação cruzada, ou dados de teste separados.

Configuração

Sem dados, Validação escolhe resubstituição (padrão) ou cruzada (cada linha prevista por um modelo ajustado sem ela). Intervalo pode ser nenhum, confiança ou predição, no nível de Confiança (padrão 0,95); os dois intervalos estão disponíveis para lm. Dados novos precisam conter preditores e níveis fatoriais vistos no ajuste.

Exemplo

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

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

tr_flow(reg) |>
  tr_add("dados", "models/example", dataset = "mtcars") |>
  tr_add("ajuste", "models/lm", formula = "mpg ~ wt", from = "dados") |>
  tr_add("prev", "models/predict", intervalo = "nenhum", from = c("ajuste", "dados"))

O ajuste e os dados novos compartilham wt, preditor usado para estimar mpg.

Como interpretar

Previsão está na escala da resposta. Num GLM binomial de resposta 0/1, previsto é a classe (corte 0,5) e a probabilidade está em prob_1 — até a Fase 4 ela saía em previsto. Confiança cobre a média esperada; predição também inclui a variação de uma nova observação.

Implementação

  • stats::predict() versão 4.6.0Pelo contrato de cada modelo (predict.lm, predict.glm com type = "response", predict.merMod, predict.nls); intervalo só no lm (interval = "confidence"/"prediction"), conferido contra a fórmula ŷ0 ± t·s·√(h0) e √(1 + h0) com h0 = x0'(X'X)⁻¹x0 feita à mão (1e-10).

No código O bloco chama trama.models::tr_models_predict(), em trama.models/R/prever.R:130.

A conta é implementada pelo próprio trama, sem um pacote R de referência por trás.

Referências

Livro-texto

  • Draper, N. R.; Smith, H. (1998). Applied Regression Analysis. 3. ed. New York: Wiley. doi:10.1002/9781118625590
  • Rencher, A. C.; Schaalje, G. B. (2008). Linear Models in Statistics. 2. ed. Hoboken: Wiley.

Ver a bibliografia completa do trama