Aula 1 da disciplina métodos de otimização e simulação - MOS do Programa de Pós-Graduação em Engenharia unesp-FEG Guaratinguetá-SP: DoE planejamento fatorial completo 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)
library(nortest)
library(Rsolnp) # Otimização não linear
DOE<- expand.grid(x1=c(-1,1),
                  x2=c(-1,1))
DOE
DOE$y<-c(500,1100,900,1900)
DOE
funcao<- lm(y~ x1*x2,data = DOE)  
summary(funcao)

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

Residuals:
ALL 4 residuals are 0: no residual degrees of freedom!

Coefficients:
            Estimate Std. Error t value Pr(>|t|)
(Intercept)     1100        NaN     NaN      NaN
x1               400        NaN     NaN      NaN
x2               300        NaN     NaN      NaN
x1:x2            100        NaN     NaN      NaN

Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared:      1, Adjusted R-squared:    NaN 
F-statistic:   NaN on 3 and 0 DF,  p-value: NA
# DOE com Replicação
DOE<- expand.grid(x1=c(-1,1),
                  x2=c(-1,1))
DOE
DOE<- rbind(DOE,DOE) # Replicação
DOE
DOE$y<-c(500,1100,900,1900,
         510,1000,940,1920)
funcao<- lm(y~ x1*x2,data = DOE)
summary(funcao)

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

Residuals:
  1   2   3   4   5   6   7   8 
 -5  50 -20 -10   5 -50  20  10 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1096.25      13.75  79.727 1.48e-07 ***
x1            383.75      13.75  27.909 9.81e-06 ***
x2            318.75      13.75  23.182 2.05e-05 ***
x1:x2         111.25      13.75   8.091  0.00127 ** 
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 38.89 on 4 degrees of freedom
Multiple R-squared:  0.9971,    Adjusted R-squared:  0.9949 
F-statistic: 460.6 on 3 and 4 DF,  p-value: 1.561e-05
summary(aov(funcao))
            Df  Sum Sq Mean Sq F value   Pr(>F)    
x1           1 1178113 1178113  778.92 9.81e-06 ***
x2           1  812812  812812  537.40 2.05e-05 ***
x1:x2        1   99012   99012   65.46  0.00127 ** 
Residuals    4    6050    1513                     
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
hist(funcao$residuals,freq = F,
     col="blue", lwd=2, 
     main="Histograma dos Resídos",
     xlab = "Observações")
curve(dnorm(x,mean(funcao$residuals),
            sd(funcao$residuals)),add =T,
      col="magenta", lwd=4)

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


shapiro.test(funcao$residuals)

    Shapiro-Wilk normality test

data:  funcao$residuals
W = 0.98574, p-value = 0.9856
library(car)
library(lmtest)
library(olsrr)
ols_test_breusch_pagan(funcao,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 x1:x2 

        Test Summary (Unadjusted p values)       
 ----------------------------------------------
  Variable           chi2      df        p      
 ----------------------------------------------
  x1               2.067892     1    0.15042936 
  x2               1.792501     1    0.18062180 
  x1:x2            3.366164     1    0.06654856 
 ----------------------------------------------
  simultaneous     7.226556     3    0.06501674 
 ----------------------------------------------
bptest(funcao)

    studentized Breusch-Pagan test

data:  funcao
BP = 8, df = 3, p-value = 0.04601
dwt(funcao)
 lag Autocorrelation D-W Statistic p-value
   1      -0.3553719      2.690083   0.198
 Alternative hypothesis: rho != 0
dwtest(funcao)

    Durbin-Watson test

data:  funcao
DW = 2.6901, p-value = 0.8778
alternative hypothesis: true autocorrelation is greater than 0
bgtest(funcao)

    Breusch-Godfrey test for serial correlation of
    order up to 1

data:  funcao
LM test = 1.036, df = 1, p-value = 0.3088
library(FrF2)
funcao2<- lm(y~ x1+x2,data = DOE)
MEPlot(funcao2)

funcao<- lm(y~ x1*x2,data = DOE)
IAPlot(funcao)

predict(funcao, newdata = data.frame(
  x1=1, x2=1), se.fit = T,
  interval = "conf")
$fit
   fit      lwr      upr
1 1910 1833.648 1986.352

$se.fit
[1] 27.5

$df
[1] 4

$residual.scale
[1] 38.89087
predict(funcao, newdata = data.frame(
  x1=1, x2=1), se.fit = T,
  interval = "pred")
$fit
   fit      lwr      upr
1 1910 1777.754 2042.246

$se.fit
[1] 27.5

$df
[1] 4

$residual.scale
[1] 38.89087
#========== Otimização=========================================================
obj=function(x){a<- predict(funcao,
newdata = data.frame(x1=x[1],
                     x2=x[2]))
return(-a)}
x0<-c(0,0)
optim(par = x0,fn=obj,lower = -1,upper = 1,
      method = "L-BFGS-B")
$par
[1] 1 1

$value
[1] -1910

$counts
function gradient 
       2        2 

$convergence
[1] 0

$message
[1] "CONVERGENCE: NORM OF PROJECTED GRADIENT <= PGTOL"
solnp(pars = x0,fun = obj,LB = rep(-1,2),
      UB = rep(1,2))

Iter: 1 fn: -1910.0000   Pars:  1.00000 1.00000
Iter: 2 fn: -1910.0000   Pars:  1.00000 1.00000
solnp--> Completed in 2 iterations
$pars
[1] 1 1

$convergence
[1] 0

$values
[1] -1096.25 -1910.00 -1910.00

$lagrange
[1] 0

$hessian
     [,1] [,2]
[1,]    1    0
[2,]    0    1

$ineqx0
NULL

$nfuneval
[1] 100

$outer.iter
[1] 2

$elapsed
Time difference of 0.04138803 secs

$vscale
[1] 1 1 1
#========== Gráficos de Superfície e Contorno===================================
library(rsm)
persp(funcao, ~x1+x2,zlab = "y", col=rainbow(50),
      contours = "colors",lwd=1)

contour(funcao,~x1+x2,image = T,lwd=2)

#================ Gerando Experimentos com Pacotes =============================
library(FrF2)
DOE<-FrF2(nruns = 4,
          nfactors = 2,
          factor.names = c("x1","x2"),
          randomize = F,
          replications = 2)
creating full factorial with 4 runs ...
DOE
class=design, type= full factorial 
NOTE: columns run.no and run.no.std.rp  are annotation, 
 not part of the data frame
DOE$y<-c(500,1100,900,1900,
         510,1000,940,1920)
DOE
class=design, type= full factorial 
NOTE: columns run.no and run.no.std.rp  are annotation, 
 not part of the data frame
funcao<- lm(y~ x1*x2,data = DOE)
summary(funcao)

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

Residuals:
  1   2   3   4   5   6   7   8 
 -5  50 -20 -10   5 -50  20  10 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1096.25      13.75  79.727 1.48e-07 ***
x11           383.75      13.75  27.909 9.81e-06 ***
x21           318.75      13.75  23.182 2.05e-05 ***
x11:x21       111.25      13.75   8.091  0.00127 ** 
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 38.89 on 4 degrees of freedom
Multiple R-squared:  0.9971,    Adjusted R-squared:  0.9949 
F-statistic: 460.6 on 3 and 4 DF,  p-value: 1.561e-05
summary(aov(funcao))
            Df  Sum Sq Mean Sq F value   Pr(>F)    
x1           1 1178113 1178113  778.92 9.81e-06 ***
x2           1  812812  812812  537.40 2.05e-05 ***
x1:x2        1   99012   99012   65.46  0.00127 ** 
Residuals    4    6050    1513                     
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#Esse comando é para inserir as variáveis naturais
DOE<- FrF2(nruns = 4,
     factor.names = list(x1=c(1,2),
                         x2=c(1,4)),
     randomize = F,
     replications = 2)
creating full factorial with 4 runs ...
DOE$y<-c(500,1100,900,1900,
         510,1000,940,1920)

DOE
class=design, type= full factorial 
NOTE: columns run.no and run.no.std.rp  are annotation, 
 not part of the data frame
funcao<- lm(y~ x1*x2,data = DOE)
summary(funcao)

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

Residuals:
  1   2   3   4   5   6   7   8 
 -5  50 -20 -10   5 -50  20  10 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1096.25      13.75  79.727 1.48e-07 ***
x11           383.75      13.75  27.909 9.81e-06 ***
x21           318.75      13.75  23.182 2.05e-05 ***
x11:x21       111.25      13.75   8.091  0.00127 ** 
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 38.89 on 4 degrees of freedom
Multiple R-squared:  0.9971,    Adjusted R-squared:  0.9949 
F-statistic: 460.6 on 3 and 4 DF,  p-value: 1.561e-05
summary(aov(funcao))
            Df  Sum Sq Mean Sq F value   Pr(>F)    
x1           1 1178113 1178113  778.92 9.81e-06 ***
x2           1  812812  812812  537.40 2.05e-05 ***
x1:x2        1   99012   99012   65.46  0.00127 ** 
Residuals    4    6050    1513                     
---
Signif. codes:  
0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
library(lmtest)
library(car)
residualPlots(funcao)

residualPlot(funcao)

curve(dnorm(x,mean(funcao$residuals),sd(funcao$residuals)),
      from = min(funcao$residuals),to=max(funcao$residuals),
      col="purple",lwd=3,ylab="Densidade",
      xlab = "Observações")
lines(density(funcao$residuals),col="blue",lwd=2)
legend("topleft",legend = c("Real","Estimada"),
       col=c("purple","blue"),lwd=3)

LS0tDQp0aXRsZTogIkRlbGluZWFtZW50byBkZSBFeHBlcmltZW50b3M6IFByb2pldG9zIEZhdG9yaWFpcyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCkF1bGEgMSBkYSBkaXNjaXBsaW5hIG3DqXRvZG9zIGRlIG90aW1pemHDp8OjbyBlIHNpbXVsYcOnw6NvIC0gTU9TIGRvIFByb2dyYW1hIGRlIFDDs3MtR3JhZHVhw6fDo28gZW0gRW5nZW5oYXJpYSB1bmVzcC1GRUcgR3VhcmF0aW5ndWV0w6EtU1A6IERvRSBwbGFuZWphbWVudG8gZmF0b3JpYWwgY29tcGxldG8gY29tIDIgbsOtdmVpcyINCi0tLQ0KDQpgYGB7cn0NCmxpYnJhcnkoY2FyKSAjIFBhY290ZXMgcGFyYSBhbsOhbGlzZSBlc3RhdMOtc3RpY2ENCmxpYnJhcnkocnNtKSAjIFBhY290ZXMgcGFyYSBNZXRvZG9sb2dpYSBkYSBzdXBlcmbDrWNpZQ0KI2RlIHJlc3Bvc3RhIC0gUlNNDQpsaWJyYXJ5KEZyRjIpICNwYWNvdGUgcGFyYSBET0UgZmF0b3JpYWwNCmxpYnJhcnkobm9ydGVzdCkgI3BhY290ZSBwYXJhIG5vcm1hbGlkYWRlDQpsaWJyYXJ5KG9sc3JyKSAjcGFjb3RlIHBhcmEgaG9tb2NlZGFzdGljaWRhZGUNCmxpYnJhcnkobG10ZXN0KQ0KbGlicmFyeShyaW8pDQpsaWJyYXJ5KG5vcnRlc3QpDQpsaWJyYXJ5KFJzb2xucCkgIyBPdGltaXphw6fDo28gbsOjbyBsaW5lYXINCmBgYA0KYGBge3J9DQpET0U8LSBleHBhbmQuZ3JpZCh4MT1jKC0xLDEpLA0KICAgICAgICAgICAgICAgICAgeDI9YygtMSwxKSkNCkRPRQ0KRE9FJHk8LWMoNTAwLDExMDAsOTAwLDE5MDApDQpET0UNCmZ1bmNhbzwtIGxtKHl+IHgxKngyLGRhdGEgPSBET0UpICANCnN1bW1hcnkoZnVuY2FvKQ0KIyBET0UgY29tIFJlcGxpY2HDp8Ojbw0KRE9FPC0gZXhwYW5kLmdyaWQoeDE9YygtMSwxKSwNCiAgICAgICAgICAgICAgICAgIHgyPWMoLTEsMSkpDQpET0UNCkRPRTwtIHJiaW5kKERPRSxET0UpICMgUmVwbGljYcOnw6NvDQpET0UNCkRPRSR5PC1jKDUwMCwxMTAwLDkwMCwxOTAwLA0KICAgICAgICAgNTEwLDEwMDAsOTQwLDE5MjApDQpmdW5jYW88LSBsbSh5fiB4MSp4MixkYXRhID0gRE9FKQ0Kc3VtbWFyeShmdW5jYW8pDQpzdW1tYXJ5KGFvdihmdW5jYW8pKQ0KaGlzdChmdW5jYW8kcmVzaWR1YWxzLGZyZXEgPSBGLA0KICAgICBjb2w9ImJsdWUiLCBsd2Q9MiwgDQogICAgIG1haW49Ikhpc3RvZ3JhbWEgZG9zIFJlc8OtZG9zIiwNCiAgICAgeGxhYiA9ICJPYnNlcnZhw6fDtWVzIikNCmN1cnZlKGRub3JtKHgsbWVhbihmdW5jYW8kcmVzaWR1YWxzKSwNCiAgICAgICAgICAgIHNkKGZ1bmNhbyRyZXNpZHVhbHMpKSxhZGQgPVQsDQogICAgICBjb2w9Im1hZ2VudGEiLCBsd2Q9NCkNCnFxbm9ybShmdW5jYW8kcmVzaWR1YWxzLGNvbD0icmVkIikNCnFxbGluZShmdW5jYW8kcmVzaWR1YWxzLGNvbD0iYmx1ZSIsbHdkPTMpDQoNCnNoYXBpcm8udGVzdChmdW5jYW8kcmVzaWR1YWxzKQ0KYGBgDQpgYGB7cn0NCmxpYnJhcnkoY2FyKQ0KbGlicmFyeShsbXRlc3QpDQpsaWJyYXJ5KG9sc3JyKQ0Kb2xzX3Rlc3RfYnJldXNjaF9wYWdhbihmdW5jYW8scmhzID0gVCwNCiAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgPSBUKQ0KYnB0ZXN0KGZ1bmNhbykNCmR3dChmdW5jYW8pDQpkd3Rlc3QoZnVuY2FvKQ0KYmd0ZXN0KGZ1bmNhbykNCmxpYnJhcnkoRnJGMikNCmZ1bmNhbzI8LSBsbSh5fiB4MSt4MixkYXRhID0gRE9FKQ0KTUVQbG90KGZ1bmNhbzIpDQpmdW5jYW88LSBsbSh5fiB4MSp4MixkYXRhID0gRE9FKQ0KSUFQbG90KGZ1bmNhbykNCnByZWRpY3QoZnVuY2FvLCBuZXdkYXRhID0gZGF0YS5mcmFtZSgNCiAgeDE9MSwgeDI9MSksIHNlLmZpdCA9IFQsDQogIGludGVydmFsID0gImNvbmYiKQ0KcHJlZGljdChmdW5jYW8sIG5ld2RhdGEgPSBkYXRhLmZyYW1lKA0KICB4MT0xLCB4Mj0xKSwgc2UuZml0ID0gVCwNCiAgaW50ZXJ2YWwgPSAicHJlZCIpDQpgYGANCmBgYHtyfQ0KIz09PT09PT09PT0gT3RpbWl6YcOnw6NvPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpvYmo9ZnVuY3Rpb24oeCl7YTwtIHByZWRpY3QoZnVuY2FvLA0KbmV3ZGF0YSA9IGRhdGEuZnJhbWUoeDE9eFsxXSwNCiAgICAgICAgICAgICAgICAgICAgIHgyPXhbMl0pKQ0KcmV0dXJuKC1hKX0NCngwPC1jKDAsMCkNCm9wdGltKHBhciA9IHgwLGZuPW9iaixsb3dlciA9IC0xLHVwcGVyID0gMSwNCiAgICAgIG1ldGhvZCA9ICJMLUJGR1MtQiIpDQpzb2xucChwYXJzID0geDAsZnVuID0gb2JqLExCID0gcmVwKC0xLDIpLA0KICAgICAgVUIgPSByZXAoMSwyKSkNCg0KIz09PT09PT09PT0gR3LDoWZpY29zIGRlIFN1cGVyZsOtY2llIGUgQ29udG9ybm89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KbGlicmFyeShyc20pDQpwZXJzcChmdW5jYW8sIH54MSt4Mix6bGFiID0gInkiLCBjb2w9cmFpbmJvdyg1MCksDQogICAgICBjb250b3VycyA9ICJjb2xvcnMiLGx3ZD0xKQ0KY29udG91cihmdW5jYW8sfngxK3gyLGltYWdlID0gVCxsd2Q9MikNCmBgYA0KYGBge3J9DQojPT09PT09PT09PT09PT09PSBHZXJhbmRvIEV4cGVyaW1lbnRvcyBjb20gUGFjb3RlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KbGlicmFyeShGckYyKQ0KRE9FPC1GckYyKG5ydW5zID0gNCwNCiAgICAgICAgICBuZmFjdG9ycyA9IDIsDQogICAgICAgICAgZmFjdG9yLm5hbWVzID0gYygieDEiLCJ4MiIpLA0KICAgICAgICAgIHJhbmRvbWl6ZSA9IEYsDQogICAgICAgICAgcmVwbGljYXRpb25zID0gMikNCkRPRQ0KRE9FJHk8LWMoNTAwLDExMDAsOTAwLDE5MDAsDQogICAgICAgICA1MTAsMTAwMCw5NDAsMTkyMCkNCkRPRQ0KZnVuY2FvPC0gbG0oeX4geDEqeDIsZGF0YSA9IERPRSkNCnN1bW1hcnkoZnVuY2FvKQ0Kc3VtbWFyeShhb3YoZnVuY2FvKSkNCg0KI0Vzc2UgY29tYW5kbyDDqSBwYXJhIGluc2VyaXIgYXMgdmFyacOhdmVpcyBuYXR1cmFpcw0KRE9FPC0gRnJGMihucnVucyA9IDQsDQogICAgIGZhY3Rvci5uYW1lcyA9IGxpc3QoeDE9YygxLDIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgIHgyPWMoMSw0KSksDQogICAgIHJhbmRvbWl6ZSA9IEYsDQogICAgIHJlcGxpY2F0aW9ucyA9IDIpDQpET0UkeTwtYyg1MDAsMTEwMCw5MDAsMTkwMCwNCiAgICAgICAgIDUxMCwxMDAwLDk0MCwxOTIwKQ0KDQpET0UNCmZ1bmNhbzwtIGxtKHl+IHgxKngyLGRhdGEgPSBET0UpDQpzdW1tYXJ5KGZ1bmNhbykNCnN1bW1hcnkoYW92KGZ1bmNhbykpDQpsaWJyYXJ5KGxtdGVzdCkNCmxpYnJhcnkoY2FyKQ0KcmVzaWR1YWxQbG90cyhmdW5jYW8pDQpyZXNpZHVhbFBsb3QoZnVuY2FvKQ0KYGBgDQpgYGB7cn0NCmN1cnZlKGRub3JtKHgsbWVhbihmdW5jYW8kcmVzaWR1YWxzKSxzZChmdW5jYW8kcmVzaWR1YWxzKSksDQogICAgICBmcm9tID0gbWluKGZ1bmNhbyRyZXNpZHVhbHMpLHRvPW1heChmdW5jYW8kcmVzaWR1YWxzKSwNCiAgICAgIGNvbD0icHVycGxlIixsd2Q9Myx5bGFiPSJEZW5zaWRhZGUiLA0KICAgICAgeGxhYiA9ICJPYnNlcnZhw6fDtWVzIikNCmxpbmVzKGRlbnNpdHkoZnVuY2FvJHJlc2lkdWFscyksY29sPSJibHVlIixsd2Q9MikNCmxlZ2VuZCgidG9wbGVmdCIsbGVnZW5kID0gYygiUmVhbCIsIkVzdGltYWRhIiksDQogICAgICAgY29sPWMoInB1cnBsZSIsImJsdWUiKSxsd2Q9MykNCmBgYA0KDQo=