Aula DOE em Linguagem R Aula 1. Experimento da Catapulta com projetos fatoriais completos com 2 nĂ­veis.

library(car) # Pacotes para anĂ¡lise estatĂ­stica
library(rsm) # Pacotes para Metodologia da superfĂ­cie de resposta - RSM
library(FrF2) #pacote para DOE fatorial
library(nortest) #pacote para normalidade
library(olsrr) #pacote para homocedasticidade
library(lmtest)
library(rio)
DOE = expand.grid(x1=c(3,6),
                  x2=c(3,5),
                  x3=c(2,4))
DOE<- rbind(DOE,DOE)
DOE$y<- c(1.52,1.28,3.27,3.41,3.39,3.80,5.80,5.48,
      1.63,1.68,3.70,3.62,3.51,3.26,5.36,5.53)
funcao<- lm(y~ x1*x2*x3,data = DOE)
summary(funcao)

Call:
lm.default(formula = y ~ x1 * x2 * x3, data = DOE)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.2700 -0.1288  0.0000  0.1288  0.2700 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.95750    2.44904  -0.799    0.447
x1          -0.29250    0.51630  -0.567    0.587
x2           0.64250    0.59398   1.082    0.311
x3           0.47500    0.77446   0.613    0.557
x1:x2        0.06750    0.12522   0.539    0.605
x1:x3        0.09917    0.16327   0.607    0.560
x2:x3        0.12500    0.18783   0.665    0.524
x1:x2:x3    -0.02333    0.03960  -0.589    0.572

Residual standard error: 0.2376 on 8 degrees of freedom
Multiple R-squared:  0.9862,    Adjusted R-squared:  0.9741 
F-statistic: 81.66 on 7 and 8 DF,  p-value: 8.28e-07
funcao<- lm(y~ -1+x1*x2*x3,data = DOE)
summary(funcao)

Call:
lm.default(formula = y ~ -1 + x1 * x2 * x3, data = DOE)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.29303 -0.14882 -0.01256  0.12763  0.27027 

Coefficients:
         Estimate Std. Error t value Pr(>|t|)   
x1       -0.68400    0.15996  -4.276  0.00206 **
x2        0.18191    0.14114   1.289  0.22959   
x3       -0.11225    0.23994  -0.468  0.65103   
x1:x2     0.15962    0.04798   3.327  0.00884 **
x1:x3     0.21662    0.06973   3.107  0.01259 * 
x2:x3     0.26318    0.07197   3.657  0.00526 **
x1:x2:x3 -0.05097    0.01891  -2.695  0.02460 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2328 on 9 degrees of freedom
Multiple R-squared:  0.9979,    Adjusted R-squared:  0.9962 
F-statistic: 606.2 on 7 and 9 DF,  p-value: 2.663e-11
funcao2<- lm(y~ x1*x2*x3,data = DOE)
predict(funcao,newdata = data.frame(x1=3,
                                    x2=3,
                                    x3=2),
        se.fit = T,interval = "pred")
$fit
       fit      lwr      upr
1 1.667118 1.074934 2.259302

$se.fit
[1] 0.1197625

$df
[1] 9

$residual.scale
[1] 0.2327765
1.52- predict(funcao,newdata = data.frame(x1=3,
                                    x2=3,
                                    x3=2)) # ResĂ­duos
         1 
-0.1471176 
curve(dnorm(x,mean(funcao$residuals),sd(funcao$residuals)),
      from = min(funcao$residuals),to=max(funcao$residuals),
      col="blue",lwd=3,main="Curva dos ResĂ­duos",
      xlab = "Observações",ylab = "Densidade")
lines(density(funcao$residuals),col="red",lwd=3)
legend("topleft",  legend = c("Real","Estimada"),
       col = c("blue","red"),lwd=2)

qqnorm(funcao$residuals,col="turquoise",lwd=3)
qqline(funcao$residuals,col="blue",lwd=3)

shapiro.test(funcao$residuals)

    Shapiro-Wilk normality test

data:  funcao$residuals
W = 0.94628, p-value = 0.4332
residualPlot(funcao)

ols_test_breusch_pagan(funcao2,rhs = T,multiple = T)

 Breusch Pagan Test for Heteroskedasticity
 -----------------------------------------
 Ho: the variance is constant            
 Ha: the variance is not constant        

                     Data                      
 ----------------------------------------------
 Response : y 
 Variables: x1 x2 x3 x1:x2 x1:x3 x2:x3 x1:x2:x3 

         Test Summary (Unadjusted p values)        
 ------------------------------------------------
  Variable            chi2        df        p     
 ------------------------------------------------
  x1               0.085183201     1    0.7703924 
  x2               0.027546972     1    0.8681784 
  x3               0.100037971     1    0.7517841 
  x1:x2            0.111293116     1    0.7386767 
  x1:x3            0.225922519     1    0.6345638 
  x2:x3            0.002306547     1    0.9616951 
  x1:x2:x3         0.014828932     1    0.9030779 
 ------------------------------------------------
  simultaneous     6.482851250     7    0.4846300 
 ------------------------------------------------
bptest(funcao)

    studentized Breusch-Pagan test

data:  funcao
BP = 12.4, df = 6, p-value = 0.05361
dwt(funcao)
 lag Autocorrelation D-W Statistic p-value
   1       0.4736006      1.005327   0.082
 Alternative hypothesis: rho != 0
dwtest(funcao)

    Durbin-Watson test

data:  funcao
DW = 1.0053, p-value = 0.0511
alternative hypothesis: true autocorrelation is greater than 0
durbinWatsonTest(funcao)
 lag Autocorrelation D-W Statistic p-value
   1       0.4736006      1.005327   0.098
 Alternative hypothesis: rho != 0

Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.

MEPlot(funcao)

persp(funcao,~x1+x2,zlab="y",col = rainbow(100),
      contours ="colors")

persp(funcao,~x1+x3,zlab="y",col = topo.colors(10),
      contours ="colors")

persp(funcao,~x2+x3,zlab="y",col = rainbow(100),
      contours ="colors")

contour(funcao,~x1+x2,image = T)
points(3,5,col="red",lwd=5)

contour(funcao,~x1+x3,col=topo.colors(10))
points(3,3,col="red",lwd=5)

contour(funcao,~x2+x3,col=rainbow(10))
points(3,3,col="red",lwd=5)

obj=function(x){a<- predict(funcao, newdata = 
                              data.frame(x1=x[1],
                                        x2=x[2],
                                        x3=x[3]))
return(-a)}
x0<-c(0,0,0)
optim(par = x0,fn=obj,lower = c(3,3,2),
      upper =c(6,5,4),method = c("L-BFGS-B"))
$par
[1] 3 5 4

$value
[1] -5.607635

$counts
function gradient 
       5        5 

$convergence
[1] 0

$message
[1] "CONVERGENCE: NORM OF PROJECTED GRADIENT <= PGTOL"
LS0tDQp0aXRsZTogIkF1bGEgMTogRGluw6JtaWNhIENhdGFwdWx0YTogVHVybWEgMSBhbm8iDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpBdWxhIFtET0UgZW0gTGluZ3VhZ2VtIFJdKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20pIEF1bGEgMS4gRXhwZXJpbWVudG8gZGEgQ2F0YXB1bHRhIGNvbSBwcm9qZXRvcyBmYXRvcmlhaXMgY29tcGxldG9zIGNvbSAyIG7DrXZlaXMuIA0KDQoNCmBgYHtyfQ0KbGlicmFyeShjYXIpICMgUGFjb3RlcyBwYXJhIGFuw6FsaXNlIGVzdGF0w61zdGljYQ0KbGlicmFyeShyc20pICMgUGFjb3RlcyBwYXJhIE1ldG9kb2xvZ2lhIGRhIHN1cGVyZsOtY2llIGRlIHJlc3Bvc3RhIC0gUlNNDQpsaWJyYXJ5KEZyRjIpICNwYWNvdGUgcGFyYSBET0UgZmF0b3JpYWwNCmxpYnJhcnkobm9ydGVzdCkgI3BhY290ZSBwYXJhIG5vcm1hbGlkYWRlDQpsaWJyYXJ5KG9sc3JyKSAjcGFjb3RlIHBhcmEgaG9tb2NlZGFzdGljaWRhZGUNCmxpYnJhcnkobG10ZXN0KQ0KbGlicmFyeShyaW8pDQpgYGANCg0KDQpgYGB7cn0NCkRPRSA9IGV4cGFuZC5ncmlkKHgxPWMoMyw2KSwNCiAgICAgICAgICAgICAgICAgIHgyPWMoMyw1KSwNCiAgICAgICAgICAgICAgICAgIHgzPWMoMiw0KSkNCkRPRTwtIHJiaW5kKERPRSxET0UpDQpET0UkeTwtIGMoMS41MiwxLjI4LDMuMjcsMy40MSwzLjM5LDMuODAsNS44MCw1LjQ4LA0KICAgICAgMS42MywxLjY4LDMuNzAsMy42MiwzLjUxLDMuMjYsNS4zNiw1LjUzKQ0KZnVuY2FvPC0gbG0oeX4geDEqeDIqeDMsZGF0YSA9IERPRSkNCnN1bW1hcnkoZnVuY2FvKQ0KZnVuY2FvPC0gbG0oeX4gLTEreDEqeDIqeDMsZGF0YSA9IERPRSkNCnN1bW1hcnkoZnVuY2FvKQ0KZnVuY2FvMjwtIGxtKHl+IHgxKngyKngzLGRhdGEgPSBET0UpDQpgYGANCg0KDQpgYGB7cn0NCnByZWRpY3QoZnVuY2FvLG5ld2RhdGEgPSBkYXRhLmZyYW1lKHgxPTMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4Mj0zLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDM9MiksDQogICAgICAgIHNlLmZpdCA9IFQsaW50ZXJ2YWwgPSAicHJlZCIpDQoNCjEuNTItIHByZWRpY3QoZnVuY2FvLG5ld2RhdGEgPSBkYXRhLmZyYW1lKHgxPTMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4Mj0zLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDM9MikpICMgUmVzw61kdW9zDQpjdXJ2ZShkbm9ybSh4LG1lYW4oZnVuY2FvJHJlc2lkdWFscyksc2QoZnVuY2FvJHJlc2lkdWFscykpLA0KICAgICAgZnJvbSA9IG1pbihmdW5jYW8kcmVzaWR1YWxzKSx0bz1tYXgoZnVuY2FvJHJlc2lkdWFscyksDQogICAgICBjb2w9ImJsdWUiLGx3ZD0zLG1haW49IkN1cnZhIGRvcyBSZXPDrWR1b3MiLA0KICAgICAgeGxhYiA9ICJPYnNlcnZhw6fDtWVzIix5bGFiID0gIkRlbnNpZGFkZSIpDQpsaW5lcyhkZW5zaXR5KGZ1bmNhbyRyZXNpZHVhbHMpLGNvbD0icmVkIixsd2Q9MykNCmxlZ2VuZCgidG9wbGVmdCIsICBsZWdlbmQgPSBjKCJSZWFsIiwiRXN0aW1hZGEiKSwNCiAgICAgICBjb2wgPSBjKCJibHVlIiwicmVkIiksbHdkPTIpDQpxcW5vcm0oZnVuY2FvJHJlc2lkdWFscyxjb2w9InR1cnF1b2lzZSIsbHdkPTMpDQpxcWxpbmUoZnVuY2FvJHJlc2lkdWFscyxjb2w9ImJsdWUiLGx3ZD0zKQ0Kc2hhcGlyby50ZXN0KGZ1bmNhbyRyZXNpZHVhbHMpDQpgYGANCg0KDQpgYGB7cn0NCnJlc2lkdWFsUGxvdChmdW5jYW8pDQpvbHNfdGVzdF9icmV1c2NoX3BhZ2FuKGZ1bmNhbzIscmhzID0gVCxtdWx0aXBsZSA9IFQpDQpicHRlc3QoZnVuY2FvKQ0KZHd0KGZ1bmNhbykNCmR3dGVzdChmdW5jYW8pDQpkdXJiaW5XYXRzb25UZXN0KGZ1bmNhbykNCmBgYA0KDQpBZGQgYSBuZXcgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpJbnNlcnQgQ2h1bmsqIGJ1dHRvbiBvbiB0aGUgdG9vbGJhciBvciBieSBwcmVzc2luZyAqQ3RybCtBbHQrSSouDQpgYGB7cn0NCk1FUGxvdChmdW5jYW8pDQpwZXJzcChmdW5jYW8sfngxK3gyLHpsYWI9InkiLGNvbCA9IHJhaW5ib3coMTAwKSwNCiAgICAgIGNvbnRvdXJzID0iY29sb3JzIikNCnBlcnNwKGZ1bmNhbyx+eDEreDMsemxhYj0ieSIsY29sID0gdG9wby5jb2xvcnMoMTApLA0KICAgICAgY29udG91cnMgPSJjb2xvcnMiKQ0KcGVyc3AoZnVuY2FvLH54Mit4Myx6bGFiPSJ5Iixjb2wgPSByYWluYm93KDEwMCksDQogICAgICBjb250b3VycyA9ImNvbG9ycyIpDQpjb250b3VyKGZ1bmNhbyx+eDEreDIsaW1hZ2UgPSBUKQ0KcG9pbnRzKDMsNSxjb2w9InJlZCIsbHdkPTUpDQpjb250b3VyKGZ1bmNhbyx+eDEreDMsY29sPXRvcG8uY29sb3JzKDEwKSkNCnBvaW50cygzLDMsY29sPSJyZWQiLGx3ZD01KQ0KY29udG91cihmdW5jYW8sfngyK3gzLGNvbD1yYWluYm93KDEwKSkNCnBvaW50cygzLDMsY29sPSJyZWQiLGx3ZD01KQ0KYGBgDQoNCmBgYHtyfQ0Kb2JqPWZ1bmN0aW9uKHgpe2E8LSBwcmVkaWN0KGZ1bmNhbywgbmV3ZGF0YSA9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5mcmFtZSh4MT14WzFdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgyPXhbMl0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDM9eFszXSkpDQpyZXR1cm4oLWEpfQ0KeDA8LWMoMCwwLDApDQpvcHRpbShwYXIgPSB4MCxmbj1vYmosbG93ZXIgPSBjKDMsMywyKSwNCiAgICAgIHVwcGVyID1jKDYsNSw0KSxtZXRob2QgPSBjKCJMLUJGR1MtQiIpKQ0KYGBgDQoNCg0K