library(readxl)
library(tidyverse)
library(viridis)
library(hrbrthemes)
library(patchwork)
library(reshape2)
library(plotly)
library(htmlwidgets)
dados <- read_xlsx("C:/Users/Rhyan/Desktop/Trabalhos/Mestrado/Análise Multivariada/Atividade Final/Dados.xlsx")
dados_limpos <- dados %>%
select(`Idade`, `Cafeína (mg)`, `Qualidade de sono`, `Nível de foco`, `Tipo de bebida`) %>%
drop_na()
pca_resultado <- prcomp(dados_limpos[, 1:4], scale = TRUE)
variancia_explicada <- summary(pca_resultado)$importance[2, ] * 100
lbl_pc1 <- paste0("PC1 (", round(variancia_explicada[1], 1), "%)")
lbl_pc2 <- paste0("PC2 (", round(variancia_explicada[2], 1), "%)")
lbl_pc3 <- paste0("PC3 (", round(variancia_explicada[3], 1), "%)")
df_pca_3d <- as.data.frame(pca_resultado$x[, 1:3]) %>%
mutate(
Bebida = dados_limpos$`Tipo de bebida`,
Texto_Hover = paste("Bebida:", Bebida,
"<br>", lbl_pc1, ":", round(PC1, 2),
"<br>", lbl_pc2, ":", round(PC2, 2),
"<br>", lbl_pc3, ":", round(PC3, 2)))
cores_projeto <- c("café" = "#FF5B2A", "chá" = "#10288C", "energético" = "#31FF2B")
PCA <- plot_ly(
data = df_pca_3d,
x = ~PC1,
y = ~PC2,
z = ~PC3,
color = ~Bebida,
colors = cores_projeto,
text = ~Texto_Hover,
hoverinfo = "text",
type = "scatter3d",
mode = "markers",
marker = list(size = 5, opacity = 0.8, line = list(color = "white", width = 0.5))) %>%
layout(
scene = list(
xaxis = list(title = lbl_pc1),
yaxis = list(title = lbl_pc2),
zaxis = list(title = lbl_pc3)))
PCA
PCA_caminho <- "C:/Users/Rhyan/Desktop/Trabalhos/Mestrado/Análise Multivariada/Atividade Final/pca_3d_interativo.html"
saveWidget(PCA, file = PCA_caminho, selfcontained = TRUE)