# Superfície de resposta # Planejamento de experimentos I # Profa. Cibele Russo # Instalar e carregar pacotes necessários #install.packages("rsm") #install.packages("plotly") #library(rsm) #library(plotly) # Gera dados simulados set.seed(123) Temperatura <- seq(10, 40, length.out = 5) Pressao <- seq(10, 50, length.out = 5) dados <- expand.grid(Temperatura = Temperatura, Pressao = Pressao) dados$Resposta <- with(dados, 5 + 1.2*Temperatura - 0.5*Pressao + 1.5*Temperatura*Pressao + 1.5*Temperatura^2*Pressao + rnorm(nrow(dados), sd=2)) # Ajusta o modelo de regressão com termos quadráticos modelo <- lm(Resposta ~ poly(Temperatura, 2) + poly(Pressao, 2) + Temperatura:Pressao, data = dados) summary(modelo) Temperatura_seq <- seq(min(dados$Temperatura), max(dados$Temperatura), length.out = 30) Pressao_seq <- seq(min(dados$Pressao), max(dados$Pressao), length.out = 30) # Cria uma grade de combinações de Temperatura e Pressao grid <- expand.grid(Temperatura = Temperatura_seq, Pressao = Pressao_seq) # Prevê as respostas para cada combinação de Temperatura e Pressao grid$Predito <- predict(modelo, newdata = grid) Temperatura_matrix <- matrix(Temperatura_seq, nrow = 30, ncol = 30, byrow = TRUE) Pressao_matrix <- matrix(Pressao_seq, nrow = 30, ncol = 30) Resposta_matrix <- matrix(grid$Predito, nrow = 30, ncol = 30, byrow = TRUE) #install.packages("rgl") library(rgl) # Visualizar a superfície de resposta com plot3d plot3d(Temperatura_matrix, Pressao_matrix, Resposta_matrix, type = "n") surface3d(Temperatura_matrix, Pressao_matrix, Resposta_matrix, color = "lightblue", alpha = 0.5) # Adicionar pontos dos dados reais points3d(dados$Temperatura, dados$Pressao, dados$Resposta, col = "red", size = 5) library(scatterplot3d) scatterplot3d(Temperatura_matrix, Pressao_matrix, Resposta_matrix) scatterplot3d(grid$Temperatura, grid$Pressao, grid$Predito, angle=30)