Extensões de Modelos de Regressão

leg.ufpr.br/~walmes/ensino/extensoes

1 Ajuste do modelo

# Lista de pacotes.
pkg <- c("lattice",
         "latticeExtra",
         "reshape",
         "car",
         "alr3",
         "nlme",
         "nls2",
         "nlstools",
         "rootSolve",
         "plyr",
         "wzRfun")
sapply(pkg,
       FUN = library,
       character.only = TRUE,
       logical.return = TRUE)
#-----------------------------------------------------------------------
# Ajuste de modelo de regressão não linear.

# Estrutura.
str(turk0)
## 'data.frame':    35 obs. of  2 variables:
##  $ A   : num  0 0 0 0 0 0 0 0 0 0 ...
##  $ Gain: int  644 631 661 624 633 610 615 605 608 599 ...
xyplot(Gain ~ A, data = turk0, type = c("p", "smooth"))

#-----------------------------------------------------------------------
# Valores iniciais baseados na interpretação gráfica.
# Modelo: th0 + th1 * x/(th2 + x);

start <- list(th0 = 625, th1 = 800 - 625, th2 = 0.1)

xyplot(Gain ~ A, data = turk0) +
    layer(panel.curve(th0 + th1 * x/(th2 + x)),
          data = start)

#-----------------------------------------------------------------------
# Ajuste.

n0 <- nls(Gain ~ th0 + th1 * A/(th2 + A),
          data = turk0,
          start = start,
          trace = FALSE)

# Resumo do ajuste.
summary(n0)
## 
## Formula: Gain ~ th0 + th1 * A/(th2 + A)
## 
## Parameters:
##      Estimate Std. Error t value Pr(>|t|)    
## th0 622.24167    6.20283 100.316  < 2e-16 ***
## th1 235.21690   22.56028  10.426 8.09e-12 ***
## th2   0.15476    0.04059   3.812 0.000591 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 20.14 on 32 degrees of freedom
## 
## Number of iterations to convergence: 4 
## Achieved convergence tolerance: 1.151e-06
# Verificando.
xyplot(Gain ~ A, data = turk0) +
    layer(panel.curve(th0 + th1 * x/(th2 + x)),
          data = as.list(coef(n0)))

1.1 Intervalos de confiança para os parâmetros

# Intervalos de Wald: são baseado na aproximação quadrática da
# verossimilhança, conhecido como intervalos de Wald ou
# assintóticos. São simétricos por construção.
wci <- confint.default(n0)
wci
##            2.5 %      97.5 %
## th0 610.08434930 634.3989826
## th1 190.99955017 279.4342411
## th2   0.07519662   0.2343179
# Intervalos de confiança baseados no perfil da log-verossimilhança.
pci <- confint(n0)
pci
##           2.5%       97.5%
## th0 609.656524 634.7143666
## th1 196.536953 290.9141161
## th2   0.094081   0.2665297
# Perfil.
par(mfrow = c(2, 2))
plot(profile(n0))
layout(1)