1. Objetivo

2. Carregar pacotes necessários

# 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)

3. Ler o arquivo do GitHub

df = read.table("https://raw.githubusercontent.com/leocbc/ANALISE-MULTIVARIADA/refs/heads/main/agro_meteoro.csv",
                header = TRUE, 
                sep = ",")

Caso o arquivo tenha colunas não-numéricas, selecione apenas as numéricas:

df <- df %>%
  select(where(is.numeric))

4. Inspeção inicial e pré-processamento

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

5. Padronização

df_scaled <- scale(df, center = TRUE, scale = TRUE)

Dados escalonados:

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

6. PCA com prcomp

pca_res <- prcomp(df_scaled)

7. Autovalores e variância explicada

7.1. Scree Plot e variância acumulada

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

8. Loadings (autovetores)

8.1 Criando um objeto chamado “loadings” (pode ser qualquer nome) a partir do “pca_res”:

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

Tabela formatada:

loadings <- pca_res$rotation
kable(round(loadings[, 1:4], 4), caption = "Loadings (autovetores)") %>% kable_styling(full_width = FALSE)
Loadings (autovetores)
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

9. Biplot

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)")

10. Contribuições das variáveis para os componentes 1 (PC1) e 2 (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")

11. Interpretação

12. Conclusão

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.