
Thiago, Você tem que debruçar-se mais sobre os seus dados/modelos. Pega o comando e vai testando modelo, inventa formas funcionais, não fique preso a modelos de páginas de livros. Eu ajustei outro modelo e observei um melhor ajuste. Ainda assim há falta de ajuste com relação ao modelo de médias, veja com relação ao modelo de médias, que diga-se, usa todos os graus de liberdade possíveis e não permite extrapolação. O modelo de médias é sem dúvida o melhor modelo em termos de ajuste, vai dá melhor R2 que qualquer outro, mas não dá para extrapolar. Já o não linear permite isso. Causas da falta de ajuste: * o modelo não ser mesmo o correto para representar, ser uma versão aproximada de um modelo com mais parâmetros que traduzam aquela forma dos dados; * haver uma causa de variação associada a cada UR que tá deslocando todas as repetições de uma UR, coisa que acontece com frequência, por exemplo se você medisse todas as repetições da UR_i em um dia, da UR_j no dia seguinte, estaria aí o efeito do dia, ou da pessoa que faz as determinações no laboratório, ou do local de onde vieram, ou do aparelho usado, das condições do momento. O que fazer: * se o foco são as estimativas dos parâmetros, usar o modelo como está; * se o foco é apenas fazer predição, usar uma função suave da UR, lowess, spline, etc, ou uma linear segmentada; * tentar uma função com mais parâmetros para alcançar mais o comportamento dos dados; Em todos os casos, você vai ter que sentar e espremer possibilidades sobre isso, fazer o seu trabalho. #----------------------------------------------------------------------------- da <- read.table("http://www.leg.ufpr.br/~walmes/docs/umi.txt", header=TRUE) str(da) plot(UEQ~UR, da) with(da, tapply(UEQ, UR, length)) A <- 5 B <- 0.01 # mudar até obter bons chutes C <- 0.085 # mudar até obter bons chutes plot(UEQ~UR, da) curve(A+B*exp(C*x), add=TRUE) n0 <- nls(UEQ~A+B*exp(C*UR), data=da, start=list(A=A, B=B, C=C)) summary(n0) A <- coef(n0)["A"] B <- coef(n0)["B"] C <- coef(n0)["C"] plot(UEQ~UR, da) curve(A+B*exp(C*x), add=TRUE) abline(v=c(40,50,60), col=3) # causas da falta de ajuste m0 <- lm(UEQ~factor(UR), da) anova(n0, m0) qqnorm(residuals(n0)) plot(residuals(n0)~fitted(n0)) #----------------------------------------------------------------------------- À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================