Coleção modelos
Regressão não linear
Ajusta uma curva não linear pronta (logística, Michaelis-Menten, Gompertz, platô...) sem pedir chute.
O que o bloco faz
models/nls ajusta por mínimos quadrados não lineares uma das curvas prontas — logístico, Michaelis-Menten, exponencial assintótico, Gompertz ou linear-platô — com a resposta e uma preditora numérica. Os valores iniciais saem dos próprios dados. A saída é models/fit.
Antes de continuar
Termos que esta página usa, em poucas palavras. As definições completas estão no glossário.
- Erro padrão
- O desvio padrão de uma estimativa: quanto ela variaria se o estudo fosse repetido com outra amostra. Diminui quando a amostra cresce e é a base dos intervalos de confiança e dos testes.
- 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.
- 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.
- Coeficiente de determinação (R²)
- A fração da variação da resposta que o modelo explica, entre 0 e 1. Nunca diminui quando se acrescentam variáveis, por isso não serve sozinho para escolher entre modelos.
Quando usar
Use para curvas de crescimento (logístico, Gompertz), de absorção e saturação (Michaelis-Menten), de resposta a adubo que se aproxima de um teto (exponencial assintótico) ou de dose a partir da qual não há ganho (linear-platô).
Pressupostos
A curva escolhida é a forma certa da relação (logística, Michaelis-Menten, assintótica, Gompertz ou linear-platô): o ajuste acha os melhores parâmetros DA curva, não a melhor curva.
Verificar:Gráfico de regressãoDiagnóstico dos resíduos
Se falhar: Compare modelos pelo AIC no
models/fit_statse olhe os resíduos contra o x: tendência sobrando é forma errada.Os erros são independentes, normais e de variância constante (mínimos quadrados sem peso).
Verificar:Diagnóstico dos resíduosNormalidade dos resíduos
Se falhar: Variância que cresce com a resposta pede transformar (log) os dois lados da curva, fora deste bloco.
Há pontos dos dois lados da mudança (antes e depois do platô, da inflexão, da saturação): sem eles os parâmetros não se identificam e o erro padrão explode.
Verificar:Disperso
Os intervalos dos parâmetros são de Wald (linearização em torno da estimativa): em amostra pequena e curva muito não linear nos parâmetros, eles saem simétricos quando a incerteza real não é.
Verificar:Coeficientes
Configuração
Resposta e Preditor são colunas numéricas; Modelo escolhe a curva. Os quatro primeiros modelos usam os self-starters do R; o linear-platô procura o ponto de quebra de menor soma de quadrados. Uma curva por grupo não é feita aqui: filtre a tabela e ajuste cada grupo.
Exemplo
library(trama)
reg <- tr_registry()
tr_use("trama.models", registry = reg)
tr_flow(reg) |>
tr_add("dados", "models/example", dataset = "Puromycin") |>
tr_add("resultado", "models/nls", resposta = "rate", preditor = "conc", modelo = "Michaelis-Menten", from = "dados")A velocidade de reação satura com a concentração do substrato; o ajuste dá a velocidade máxima Vm e a concentração K em que se chega à metade dela.
Como interpretar
Cada parâmetro tem significado na curva: assíntota, ponto de inflexão, início do platô. A tabela traz cada um com erro padrão e intervalo de Wald. O R² das medidas sai na coluna r2_pseudo, e o gráfico o rotula “R² (pseudo)”; para escolher entre curvas na mesma resposta, compare o AIC e o rmse. Quando o ajuste não converge, o card diz que forma o modelo espera.
Implementação
stats::nls()versão 4.6.0Gauss-Newton com os self-startersSSlogis,SSmicmen,SSasympeSSgompertz; o linear-platô parte de uma busca da quebra. Conferido contra os valores certificados do NIST StRD: Rat42 (logístico) e Misra1d (Michaelis-Menten), parâmetros a 1e-6, SQ residual a 1e-6 e erro padrão a 1e-5.
No código O bloco chama trama.models::tr_models_nls(), em trama.models/R/naolinear.R:73.
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 (6)
stats::complete.cases(d[, vars, drop = FALSE])stats::as.formula(paste(Y, "~", rhs))stats::median(u)stats::lm.fit(cbind(1, pmin(x, c)), y)stats::lm.fit(cbind(1, pmin(x, x0)), y)stats::nls.control(maxiter = 200L)
Referências
Livro-texto
- Bates, D. M.; Watts, D. G. (1988). Nonlinear Regression Analysis and Its Applications. New York: Wiley. doi:10.1002/9780470316757