Maurício,

O primeiro gráfico até pode mostrar não independência quando ela é induzida
por falta de ajuste. O código abaixo ilustra minha afirmação.

library(lattice)
library(latticeExtra)

data(wtloss, package = "MASS")
str(wtloss)

xyplot(Weight ~ Days, data = wtloss)

# Ajuste de um modelo linear.
m0 <- lm(Weight ~ Days, data = wtloss)

# Indica falta de ajuste e não independência.
plot(m0, which = 1)

# Mas eles exibem uma não independência devido à falta de ajuste.
plot(acf(residuals(m0)))

# Ajuste do modelo quadrático.
m1 <- lm(Weight ~ poly(Days, degree = 2), data = wtloss)

# Ausência de falta de ajuste.
plot(m1, which = 1)

# E sem correlação seria.
plot(acf(residuals(m1)))

start <- list(th0 = 185, th1 = -100, th2 = 140)
with(start, {
    plot(Weight ~ Days, data = wtloss)
    curve(th0 + th1 * (1 - 2^(-Days/th2)),
          xname = "Days",
          add = TRUE,
          col = 2)
})

# Ajuste do modelo não linear.
m2 <- nls(Weight ~ th0 + th1 * (1 - 2^(-Days/th2)),
          data = wtloss,
          start = start)

with(as.list(coef(m2)), {
    plot(Weight ~ Days, data = wtloss)
    curve(th0 + th1 * (1 - 2^(-Days/th2)),
          xname = "Days",
          add = TRUE,
          col = 2)
})

# Valores preditos de cada modelo.
pred <- with(wtloss, data.frame(Days = seq(min(Days),
                                           max(Days),
                                           length.out = 30)))
pred$y0 <- predict(m0, newdata = pred)
pred$y1 <- predict(m1, newdata = pred)
pred$y2 <- predict(m2, newdata = pred)

# Resíduos e valores ajustados de cada modelo.
L <- lapply(list(m0, m1, m2),
            function(m) {
                data.frame(r = residuals(m), f = fitted(m))
            })
names(L) <- 0:2
rf <- plyr::ldply(L, .id = "model")

# Gráfico da curva predita com os valores observados.
p1 <- xyplot(y0 + y1 + y2 ~ Days,
             outer = TRUE,
             type = "l",
             layout = c(NA, 1),
             data = pred) +
    layer(panel.points(x = wtloss$Days, y = wtloss$Weight))

# Gráfico dos resíduos vs valores ajustados.
p2 <- xyplot(r ~ f | model,
             data = rf,
             layout = c(NA, 1),
             type = c("p", "smooth"))

# Todos numa mesma "página".
c(p1, p2, layout = c(NA, 2))


À disposição.
Walmes.
​
_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo 
m�nimo reproduz�vel.

Responder a