Primeira parte
Criação do dataset dos dados fornecidos, estatísticas descritivas e desvio padrão de cada variável
dados <- data.frame(
Temperatura = c(24, 27, 30, 31, 34, 35, 38, 40, 42, 45),
Consumo = c(80, 82, 84, 101, 110, 115, 140, 142, 156, 157),
Custo_Energia = c(2490, 2550, 2610, 3170, 3890, 4290, 6390, 6441, 7155, 7206)
)
print(summary(dados))
## Temperatura Consumo Custo_Energia
## Min. :24.00 Min. : 80.00 Min. :2490
## 1st Qu.:30.25 1st Qu.: 88.25 1st Qu.:2750
## Median :34.50 Median :112.50 Median :4090
## Mean :34.60 Mean :116.70 Mean :4619
## 3rd Qu.:39.50 3rd Qu.:141.50 3rd Qu.:6428
## Max. :45.00 Max. :157.00 Max. :7206
print(sapply(dados, sd))
## Temperatura Consumo Custo_Energia
## 6.736303 30.306032 1976.775028
Segunda Parte Matriz de correlação
matriz_cor <- cor(dados, method = "pearson")
print(round(matriz_cor, 4))
## Temperatura Consumo Custo_Energia
## Temperatura 1.0000 0.9736 0.9561
## Consumo 0.9736 1.0000 0.9924
## Custo_Energia 0.9561 0.9924 1.0000
print(cor.test(dados$Temperatura, dados$Consumo))
##
## Pearson's product-moment correlation
##
## data: dados$Temperatura and dados$Consumo
## t = 12.058, df = 8, p-value = 2.067e-06
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.8887223 0.9939319
## sample estimates:
## cor
## 0.9735732
print(cor.test(dados$Temperatura, dados$Custo_Energia))
##
## Pearson's product-moment correlation
##
## data: dados$Temperatura and dados$Custo_Energia
## t = 9.2307, df = 8, p-value = 1.538e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.8203393 0.9898556
## sample estimates:
## cor
## 0.9561218
print(cor.test(dados$Consumo, dados$Custo_Energia))
##
## Pearson's product-moment correlation
##
## data: dados$Consumo and dados$Custo_Energia
## t = 22.871, df = 8, p-value = 1.416e-08
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.9671576 0.9982767
## sample estimates:
## cor
## 0.9924398
Visualizações primeiramente foi feito uma função para que o computador interprete quando possui uma correlação muito forte, forte, moderada, fraca ou muito fraca Após isso foi feito o mapa de calor e gráfico de dispersão para cada (Eles foram salvos em arquivos png, por isso não estará no algoritmo, mas, estará no relatório).
interpreta_r <- function(r) {
r_abs <- abs(r)
forca <- if (r_abs >= 0.9) "correlacao muito forte"
else if (r_abs >= 0.7) "correlacao forte"
else if (r_abs >= 0.5) "correlacao moderada"
else if (r_abs >= 0.3) "correlacao fraca"
else "correlacao muito fraca / ausente"
sentido <- if (r > 0) "positiva" else "negativa"
paste0(forca, " e ", sentido, " (r = ", round(r, 3), ")")
}
cat("Temperatura x Consumo: ", interpreta_r(matriz_cor["Temperatura", "Consumo"]), "\n")
## Temperatura x Consumo: correlacao muito forte e positiva (r = 0.974)
cat("Temperatura x Custo_Energia:", interpreta_r(matriz_cor["Temperatura", "Custo_Energia"]), "\n")
## Temperatura x Custo_Energia: correlacao muito forte e positiva (r = 0.956)
cat("Consumo x Custo_Energia: ", interpreta_r(matriz_cor["Consumo", "Custo_Energia"]), "\n")
## Consumo x Custo_Energia: correlacao muito forte e positiva (r = 0.992)
grafico_dispersao <- function() {
pairs(dados,
main = "Diagramas de dispersao entre as variaveis",
pch = 19, col = "steelblue")
}
grafico_mapa_calor <- function() {
cores <- colorRampPalette(c("firebrick", "white", "steelblue"))(200)
image(1:ncol(matriz_cor), 1:ncol(matriz_cor), matriz_cor[, ncol(matriz_cor):1],
col = cores, zlim = c(-1, 1), axes = FALSE, xlab = "", ylab = "",
main = "Matriz de correlacao")
axis(1, at = 1:ncol(matriz_cor), labels = colnames(matriz_cor), las = 2)
axis(2, at = 1:ncol(matriz_cor), labels = rev(colnames(matriz_cor)), las = 2)
for (i in 1:ncol(matriz_cor)) {
for (j in 1:ncol(matriz_cor)) {
valor <- matriz_cor[i, ncol(matriz_cor) - j + 1]
text(j, i, round(valor, 2))
}
}
}
dev.new()
grafico_dispersao()
dev.new()
grafico_mapa_calor()
png("grafico_dispersao.png", width = 900, height = 900, res = 120)
grafico_dispersao()
invisible(dev.off())
png("mapa_correlacao.png", width = 700, height = 700, res = 120)
grafico_mapa_calor()
invisible(dev.off())
cat("\nGraficos exibidos na tela e tambem salvos em 'grafico_dispersao.png' e 'mapa_correlacao.png'.\n")
##
## Graficos exibidos na tela e tambem salvos em 'grafico_dispersao.png' e 'mapa_correlacao.png'.