Este exercício prático tem como objetivo aplicar as etapas da Sumarização de dados e Análise de Componentes Principais (PCA) em R, conforme os procedimentos apresentados em sala de aula. As questões envolvem a sumarização de dados, padronização, execução da PCA e interpretação gráfica.
Use apenas as funções e pacotes descritos:
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(ggplot2)
library(knitr)
library(dplyr)
O arquivo de dados deve ser de livre escolha do aluno (pode ser um dataset do próprio R ou um arquivo online).
Escolha um conjunto de dados de sua preferência e carregue-o. Em seguida:
df = read.table("https://raw.githubusercontent.com/leocbc/ANALISE-MULTIVARIADA/refs/heads/main/agro_meteoro.csv",
header = TRUE,
sep = ",")
str(), etc) e
um resumo estatístico (summary()).df <- df %>% select(where(is.numeric))
Pergunta: Quantas variáveis numéricas restaram após a filtragem e qual delas apresenta maior variância?
Padronize as variáveis numéricas:
df_scaled <- scale(df, center = TRUE, scale = TRUE)
Mostre as médias e desvios-padrão antes e depois da padronização.
df_scaled
## Precipitacao_mm Temp_Max_C Temp_Min_C Umidade_Relativa_.
## [1,] 0.33801070 0.184533415 0.496092000 0.20538430
## [2,] -0.69360577 -0.209811965 -0.295625156 -0.50727447
## [3,] 1.46341048 -0.786162904 -0.539230435 1.03681952
## [4,] -1.72522224 1.124895473 0.861499919 -1.33870969
## [5,] 0.90071059 -0.604157344 -0.112921197 0.68049014
## [6,] -1.17815290 0.700215834 0.678795959 -0.98238031
## [7,] 1.88543540 -1.271511063 -1.087342313 1.39314890
## [8,] -0.36536417 0.002527855 0.130684082 -0.15094508
## [9,] 1.08827722 -0.846831424 -0.661033075 0.79926660
## [10,] -0.91243350 0.791218614 0.556993320 -0.74482739
## [11,] -0.09964477 -0.391817524 -0.356526476 0.08660784
## [12,] -1.28756676 1.519240853 1.531414436 -1.57626261
## [13,] 0.72877451 -0.725494384 -0.843737034 0.56171368
## [14,] -0.61545301 0.427207494 0.374289361 -0.38849801
## [15,] 1.65097711 -1.119839763 -1.209144952 1.15559598
## [16,] -1.05310848 1.306901033 1.105105197 -1.10115677
## [17,] 1.01012446 -0.937834204 -0.965539673 0.91804306
## [18,] -0.28721140 -0.088474925 0.008881442 -0.03216862
## [19,] 0.57246899 -0.513154564 -0.417427796 0.44293722
## [20,] -1.47513340 1.701246412 1.896822354 -1.81381553
## [21,] 1.30710496 -1.210842543 -1.330947591 1.27437244
## [22,] -0.66234466 0.609213054 0.252486721 -0.26972154
## [23,] 0.24422738 -0.300814745 -0.234723836 0.32416076
## [24,] -1.25630566 1.428238073 1.348710476 -1.45748615
## [25,] 0.82255783 -0.786162904 -0.782835714 0.68049014
## [26,] -0.86554185 0.973224173 0.739697279 -0.62605093
## [27,] 1.82291319 -1.453516623 -1.513651551 1.51192536
## [28,] -0.56856135 0.245201935 0.069782762 -0.15094508
## [29,] 0.11918296 -0.209811965 -0.173822517 0.20538430
## [30,] -1.39698063 1.822583452 2.079526313 -1.93259199
## [31,] 1.21332164 -1.332179583 -1.148243632 1.03681952
## [32,] -0.47477803 0.487876014 0.435190681 -0.38849801
## [33,] 0.38490236 -0.573823084 -0.478329115 0.56171368
## [34,] -0.99058627 1.215898253 1.226907837 -1.21993323
## [35,] 1.43214938 -1.392848103 -1.391848911 1.39314890
## [36,] -0.22468919 0.093530635 -0.052019877 0.08660784
## [37,] 0.63499120 -0.877165684 -0.904638353 0.79926660
## [38,] -0.74049743 0.851887134 0.617894640 -0.50727447
## [39,] 0.96323280 -1.119839763 -1.087342313 1.15559598
## [40,] -0.03712256 -0.422151784 -0.295625156 0.32416076
## [41,] -1.14689179 1.610243632 1.714118395 -1.69503907
## [42,] 0.46305512 -0.664825864 -0.600131755 0.68049014
## [43,] -0.52166969 0.366538974 0.191585402 -0.26972154
## [44,] 0.16607462 -0.998502723 -1.270046272 0.91804306
## [45,] -0.94369461 1.337235293 1.287809157 -1.33870969
## [46,] 1.35399661 -1.514185143 -1.696355510 1.63070182
## [47,] 0.04103020 -0.179477705 -0.112921197 0.20538430
## [48,] -1.08436958 1.731580672 1.957723674 -1.57626261
## Veloc_Vento_km_h Insolacao_h Evapotranspiracao_mm
## [1,] -0.172558318 0.43208846 0.47667297
## [2,] 0.509554563 0.09621403 -0.01361923
## [3,] -1.049560594 -0.99537787 -0.99420362
## [4,] 1.216028618 1.18780593 1.13039589
## [5,] -0.757226502 -0.49156623 -0.50391142
## [6,] 0.874972178 0.68399428 0.64010370
## [7,] -1.390617034 -1.49918952 -1.48449581
## [8,] -0.002030098 -0.07172319 -0.17704996
## [9,] -0.952115896 -0.74347205 -0.83077289
## [10,] 0.412109866 0.51605707 0.31324224
## [11,] -0.343086538 -0.23966040 -0.34048069
## [12,] 1.532723884 1.43971176 1.45725736
## [13,] -0.586698282 -0.65950344 -0.66734215
## [14,] 0.606999260 0.34811985 0.14981150
## [15,] -1.220088814 -1.24728370 -1.15763435
## [16,] 0.996778049 0.93590011 0.96696516
## [17,] -0.854671199 -0.82744066 -0.83077289
## [18,] -0.075113621 0.01224542 -0.01361923
## [19,] -0.489253584 -0.32362901 -0.34048069
## [20,] 1.727613279 1.69161758 1.78411882
## [21,] -1.317533511 -1.41522091 -1.32106508
## [22,] 0.314665168 0.43208846 0.47667297
## [23,] -0.270003015 -0.15569179 -0.17704996
## [24,] 1.386556838 1.27177454 1.29382663
## [25,] -0.659781805 -0.74347205 -0.66734215
## [26,] 0.704443957 0.76796289 0.80353443
## [27,] -1.536784080 -1.75109534 -1.64792655
## [28,] 0.144136948 0.18018264 0.14981150
## [29,] -0.416170061 -0.40759762 -0.50391142
## [30,] 2.068669719 2.02749201 2.27441102
## [31,] -1.122644117 -1.16331509 -0.99420362
## [32,] 0.460832214 0.60002568 0.64010370
## [33,] -0.318725364 -0.23966040 -0.34048069
## [34,] 1.191667444 1.10383732 1.13039589
## [35,] -1.463700557 -1.58315813 -1.48449581
## [36,] 0.071053425 0.09621403 -0.01361923
## [37,] -0.732865327 -0.65950344 -0.66734215
## [38,] 0.899333352 0.85193150 0.80353443
## [39,] -1.000838245 -0.99537787 -0.99420362
## [40,] -0.123835969 -0.07172319 -0.17704996
## [41,] 1.605807407 1.52368036 1.62068809
## [42,] -0.513614759 -0.49156623 -0.50391142
## [43,] 0.387748691 0.51605707 0.47667297
## [44,] -0.830310025 -0.91140926 -0.83077289
## [45,] 1.069861572 1.01986872 0.96696516
## [46,] -1.634228777 -1.91903256 -1.81135728
## [47,] -0.221280667 0.01224542 -0.01361923
## [48,] 1.873780325 1.85955479 1.94754955
## Produtividade_soja_sc_ha Produtividade_milho_sc_ha
## [1,] -0.07766253 -0.04007217
## [2,] -0.43368849 -0.38162187
## [3,] 0.69721751 0.76886133
## [4,] -1.14574041 -0.95686347
## [5,] 0.36213425 0.24754863
## [6,] -0.78971445 -0.68721897
## [7,] 1.03230076 1.27219774
## [8,] -0.18237604 -0.21983517
## [9,] 0.76004562 0.64302723
## [10,] -0.66405823 -0.81305307
## [11,] 0.11082181 0.04980933
## [12,] -1.39705285 -1.37031837
## [13,] 0.52967588 0.48124053
## [14,] -0.51745930 -0.52543227
## [15,] 1.17889969 1.16433993
## [16,] -1.22951122 -1.11865017
## [17,] 0.88570184 0.87671913
## [18,] -0.01483442 -0.14792997
## [19,] 0.46684777 0.33743013
## [20,] -1.73213611 -1.63996287
## [21,] 1.36738402 1.50588964
## [22,] -0.55934471 -0.57936117
## [23,] 0.23647803 0.10373823
## [24,] -1.33422474 -1.24448427
## [25,] 0.82287373 0.67897983
## [26,] -0.89442796 -0.90293457
## [27,] 1.63963917 1.82946304
## [28,] -0.28708956 -0.36364557
## [29,] 0.32024884 0.19361973
## [30,] -1.98344855 -1.92758367
## [31,] 1.30455591 1.38005554
## [32,] -0.62217282 -0.63329007
## [33,] 0.59250399 0.44528793
## [34,] -1.08291230 -1.04674497
## [35,] 1.53492565 1.70362894
## [36,] 0.06893640 -0.05804847
## [37,] 0.94852995 0.94862433
## [38,] -0.76877174 -0.74114787
## [39,] 1.24172780 1.21826883
## [40,] 0.40401966 0.15766713
## [41,] -1.52270907 -1.44222357
## [42,] 0.71816021 0.57112203
## [43,] -0.37086038 -0.43555077
## [44,] 1.09512887 1.05648213
## [45,] -0.99914148 -0.93888717
## [46,] 1.80718079 2.09910754
## [47,] 0.15270721 0.01385673
## [48,] -1.66930800 -1.53210507
## attr(,"scaled:center")
## Precipitacao_mm Temp_Max_C Temp_Min_C
## 23.137500 31.491667 20.685417
## Umidade_Relativa_. Veloc_Vento_km_h Insolacao_h
## 76.270833 13.208333 7.685417
## Evapotranspiracao_mm Produtividade_soja_sc_ha Produtividade_milho_sc_ha
## 3.808333 65.570833 121.022917
## attr(,"scaled:scale")
## Precipitacao_mm Temp_Max_C Temp_Min_C
## 6.397726 3.296603 1.642001
## Umidade_Relativa_. Veloc_Vento_km_h Insolacao_h
## 8.419177 4.104892 1.190921
## Evapotranspiracao_mm Produtividade_soja_sc_ha Produtividade_milho_sc_ha
## 0.611880 4.774933 5.562880
Execute a PCA utilizando prcomp():
pca_res <- prcomp(df_scaled)
Faça um sumário da pca:
summary(pca_res)
## Importance of components:
## PC1 PC2 PC3 PC4 PC5 PC6 PC7
## Standard deviation 2.9611 0.35189 0.19276 0.17547 0.14217 0.09893 0.07277
## Proportion of Variance 0.9742 0.01376 0.00413 0.00342 0.00225 0.00109 0.00059
## Cumulative Proportion 0.9742 0.98797 0.99210 0.99552 0.99777 0.99886 0.99945
## PC8 PC9
## Standard deviation 0.06129 0.03515
## Proportion of Variance 0.00042 0.00014
## Cumulative Proportion 0.99986 1.00000
Crie o gráfico de variância explicada:
fviz_eig(pca_res, addlabels = TRUE)
Pergunta: Na sua opinião, a análise foi eficiente, por quê**?
Pergunta: Quantos componentes principais são necessários para explicar pelo menos 90% da variância total?
Crie uma tabela com os autovetores:
loadings <- pca_res$rotation
Pergunta: Quais variáveis mais contribuem para o
PC1 e o PC2?
O que essa contribuição indica sobre a relação entre as variáveis
originais?
Crie o biplot:
fviz_pca_biplot(pca_res, repel = TRUE,
col.var = "black",
col.ind = "steelblue",
title = "Biplot: Observações e Variáveis (PC1 x PC2)")
Pergunta:
#) para explicar
brevemente cada etapa do seu código.