prcompprcomp;# Instale os pacotes caso não tenha:
# install.packages(c("tidyverse", "factoextra", "ggplot2", "knitr", "kableExtra","dplyr"))
library(tidyverse)
library(factoextra)
library(ggplot2)
library(knitr)
library(kableExtra)
library(dplyr)
df = read.table("https://raw.githubusercontent.com/leocbc/ANALISE-MULTIVARIADA/refs/heads/main/agro_meteoro.csv",
header = TRUE,
sep = ",")
df <- df %>%
select(where(is.numeric))
str(df)
## 'data.frame': 48 obs. of 9 variables:
## $ Precipitacao_mm : num 25.3 18.7 32.5 12.1 28.9 15.6 35.2 20.8 30.1 17.3 ...
## $ Temp_Max_C : num 32.1 30.8 28.9 35.2 29.5 33.8 27.3 31.5 28.7 34.1 ...
## $ Temp_Min_C : num 21.5 20.2 19.8 22.1 20.5 21.8 18.9 20.9 19.6 21.6 ...
## $ Umidade_Relativa_. : int 78 72 85 65 82 68 88 75 83 70 ...
## $ Veloc_Vento_km_h : num 12.5 15.3 8.9 18.2 10.1 16.8 7.5 13.2 9.3 14.9 ...
## $ Insolacao_h : num 8.2 7.8 6.5 9.1 7.1 8.5 5.9 7.6 6.8 8.3 ...
## $ Evapotranspiracao_mm : num 4.1 3.8 3.2 4.5 3.5 4.2 2.9 3.7 3.3 4 ...
## $ Produtividade_soja_sc_ha : num 65.2 63.5 68.9 60.1 67.3 61.8 70.5 64.7 69.2 62.4 ...
## $ Produtividade_milho_sc_ha: num 121 119 125 116 122 ...
summary(df)
## Precipitacao_mm Temp_Max_C Temp_Min_C Umidade_Relativa_.
## Min. :12.10 Min. :26.50 Min. :17.90 Min. :60.00
## 1st Qu.:17.52 1st Qu.:28.85 1st Qu.:19.38 1st Qu.:70.75
## Median :22.70 Median :30.85 Median :20.50 Median :77.50
## Mean :23.14 Mean :31.49 Mean :20.69 Mean :76.27
## 3rd Qu.:28.52 3rd Qu.:34.15 3rd Qu.:21.73 3rd Qu.:83.00
## Max. :35.20 Max. :37.50 Max. :24.10 Max. :90.00
## Veloc_Vento_km_h Insolacao_h Evapotranspiracao_mm
## Min. : 6.50 Min. : 5.400 Min. :2.700
## 1st Qu.:10.03 1st Qu.: 6.800 1st Qu.:3.375
## Median :12.60 Median : 7.650 Median :3.750
## Mean :13.21 Mean : 7.685 Mean :3.808
## 3rd Qu.:16.27 3rd Qu.: 8.525 3rd Qu.:4.225
## Max. :21.70 Max. :10.100 Max. :5.200
## Produtividade_soja_sc_ha Produtividade_milho_sc_ha
## Min. :56.10 Min. :110.3
## 1st Qu.:61.88 1st Qu.:116.8
## Median :66.00 Median :121.0
## Mean :65.57 Mean :121.0
## 3rd Qu.:69.28 3rd Qu.:124.9
## Max. :74.20 Max. :132.7
df_scaled <- scale(df, center = TRUE, scale = TRUE)
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
prcomppca_res <- prcomp(df_scaled)
fviz_eig(pca_res, addlabels = TRUE)
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
loadings <- pca_res$rotation
loadings
## PC1 PC2 PC3 PC4
## Precipitacao_mm -0.3222913 -0.83513772 -0.03158975 0.02974115
## Temp_Max_C 0.3348532 -0.13696151 -0.19760967 0.34257329
## Temp_Min_C 0.3319757 -0.46014928 -0.13865168 0.16849014
## Umidade_Relativa_. -0.3349233 -0.10713218 0.19932178 -0.47837737
## Veloc_Vento_km_h 0.3354570 0.07538376 0.25632653 0.27070033
## Insolacao_h 0.3357830 -0.08937307 0.42315476 -0.29494304
## Evapotranspiracao_mm 0.3343034 -0.19946454 0.59716316 -0.10902765
## Produtividade_soja_sc_ha -0.3357352 0.08106780 0.41040703 0.17764567
## Produtividade_milho_sc_ha -0.3344573 0.02331352 0.36221269 0.64869876
## PC5 PC6 PC7 PC8
## Precipitacao_mm 0.34036597 -0.17342171 0.107423161 -0.18557495
## Temp_Max_C -0.55652197 -0.52830477 0.153154699 -0.31686810
## Temp_Min_C -0.29305085 0.55448052 -0.431826390 0.20140839
## Umidade_Relativa_. -0.42966029 -0.38217490 -0.471948066 0.21595732
## Veloc_Vento_km_h 0.48562741 -0.35335773 -0.596813592 -0.09549384
## Insolacao_h -0.06924355 0.09992117 -0.009063649 -0.25008326
## Evapotranspiracao_mm -0.02179061 -0.03978598 0.433410134 0.27057058
## Produtividade_soja_sc_ha -0.20516347 0.31521536 -0.105176691 -0.66519956
## Produtividade_milho_sc_ha -0.14405558 -0.03902701 0.024895788 0.43657077
## PC9
## Precipitacao_mm -0.069921138
## Temp_Max_C 0.004947578
## Temp_Min_C 0.100372948
## Umidade_Relativa_. 0.087959417
## Veloc_Vento_km_h 0.129625305
## Insolacao_h -0.731989207
## Evapotranspiracao_mm 0.465675557
## Produtividade_soja_sc_ha 0.292767140
## Produtividade_milho_sc_ha -0.349424850
loadings <- pca_res$rotation
kable(round(loadings[, 1:4], 4), caption = "Loadings (autovetores)") %>% kable_styling(full_width = FALSE)
| PC1 | PC2 | PC3 | PC4 | |
|---|---|---|---|---|
| Precipitacao_mm | -0.3223 | -0.8351 | -0.0316 | 0.0297 |
| Temp_Max_C | 0.3349 | -0.1370 | -0.1976 | 0.3426 |
| Temp_Min_C | 0.3320 | -0.4601 | -0.1387 | 0.1685 |
| Umidade_Relativa_. | -0.3349 | -0.1071 | 0.1993 | -0.4784 |
| Veloc_Vento_km_h | 0.3355 | 0.0754 | 0.2563 | 0.2707 |
| Insolacao_h | 0.3358 | -0.0894 | 0.4232 | -0.2949 |
| Evapotranspiracao_mm | 0.3343 | -0.1995 | 0.5972 | -0.1090 |
| Produtividade_soja_sc_ha | -0.3357 | 0.0811 | 0.4104 | 0.1776 |
| Produtividade_milho_sc_ha | -0.3345 | 0.0233 | 0.3622 | 0.6487 |
fviz_pca_biplot(pca_res, repel = TRUE,
col.var = "black",
col.ind = "steelblue",
show.legend = FALSE,
title = "Biplot: Observações e Variáveis (PC1 x PC2)")
fviz_contrib(pca_res, choice = "var", axes = 1, top = 10) + labs(title = "Contribuições para PC1")
fviz_contrib(pca_res, choice = "var", axes = 2, top = 10) + labs(title = "Contribuições para PC2")
A PCA permite: - Reduzir a dimensionalidade mantendo variância máxima; - Interpretar relações entre variáveis via loadings; - Identificar agrupamentos e padrões nos dados.