Alunos:

  • Ana Vitória

  • Ester Rosa

  • Francieli Almeida

  • Mateus Elias

Dados:

Banco de dados

As porcentagens da força de trabalho em oito setores (IBGE Setor) para 26 estados do Brasil e Distrito Federal.

1 - Extrativa mineral(Exm);

2 - Indústria de transformação(IndT);

3 - Servicos industriais de utilidade pública(ServUp);

4 - Construção Civil(Cons);

5 - Comércio(Com);

6 - Serviços(Serv);

7 - Administração Pública(AdmP);

8 - Agropecuária, extração vegetal, caça e pesca(Agro).

RAIS VINCULOS,2020

Técnicas Utilizadas

  • Análise descritiva;

  • Análise fatorial;

  • Análise de componentes principais.

Análise descritiva

Análise fatorial

A análise fatorial clássica exige que alguns pressupostos sejam satisfeitos, quais sejam (MALHOTRA, 2001):

Normalidade dos dados: apesar deste pressuposto não ser crítico quando a estimação é realizada por mínimos quadrados ordinários, a exigência de normalidade auxilia na análise, evitando possíveis assimetrias e a presença de outliers.

Variáveis quantitativas medidas em escala Intervalar ou de Razão. Esse pressuposto é crítico, pois a análise deve ser realizada com variáveis quantitatias e, frequentemente, alguns estudos são realizados utilizando variáveis ordinais (as quaiss são qualitativas) na análise fatorial clássica (o que é errado de muitas maneiras).

Como diretriz inicial deve haver ao menos quatro a cinco vezes mais observações do que variáveis.

Em geral, as estatísticas utilizadas no processo de análise fatorial são (AAKER-KUMARDAY, 2001):

Teste de esfericidade de Bartlett: estatística de teste usada para examinar a hipótese de que as variáveis não sejam correlacionadas na população, ou seja, a matriz de correlação da população é uma matriz identidade onde cada variável se correlaciona perfeitamente com ela própria (r=1), mas não apresenta correlação com as outras variáveis (r=0).

Matriz de correlação: o triângulo inferior da matriz exibe as correlações simples, r, entre todos os pares possíveis de variáveis incluídas na análise, enquanto os elementos da diagonal, que são todos iguais a 1, em geral são omitidos.

Comunalidade: porção da variância que uma variável compartilha com todas as outras variáveis consideradas, sendo também a proporção de variância explicada pelos fatores comuns.

Autovalor: representa a variância total explicada por cada fator.

Cargas fatoriais: correlação simples entre as variáveis e os fatores.

Gráfico das cargas dos fatores: gráfico das variáveis originais utilizando as cargas fatoriais como ordenadas.

Matriz de fatores ou matriz principal: contém as cargas fatoriais de todos as variáveis em todos os fatores extraídos.

Escores fatoriais: escores compostos estimados para cada entrevistado nos fatores derivados.

Medida de adequacidade da amostra de Kaiser-Meyer-Olkin (KMO): é o índice usado para avaliar a adequacidade da análise fatorial. Valores altos (entre 0,5 e 1,0) indicam que a análise fatorial é apropriada. Valores abaixo de 0,5 indicam que a análise fatorial pode ser inadequada.

Percentagem de variância: percentagem da variância total atribuída a cada fator.

Resíduos: diferenças entre as correlações observadas, dadas na matriz de correlação de entrada (input) e as correlações reproduzidas, conforme estimadas pela matriz de fatores.

Scree plot: gráfico dos autovalores versus número de fatores por ordem de extração.

Descrição dos dados
##        vars  n  mean    sd median trimmed   mad   min   max range  skew
## Exm       1 27  0.51  0.52   0.32    0.44  0.31  0.02  2.23  2.21  1.63
## IndT      2 27 11.97  6.48  11.27   11.59  6.92  2.25 29.31 27.06  0.55
## ServUp    3 27  1.06  0.25   1.02    1.04  0.25  0.64  1.71  1.07  0.59
## Cons      4 27  4.13  0.81   4.10    4.11  0.87  2.45  5.92  3.47  0.27
## Com       5 27 19.41  2.22  19.46   19.41  1.54 12.90 24.18 11.28 -0.40
## Serv      6 27 31.90  6.25  32.33   31.66  5.77 20.78 45.54 24.76  0.29
## AdmP      7 27 27.43 10.67  26.44   26.94 12.29 11.75 48.83 37.08  0.34
## Agro      8 27  3.60  3.17   2.66    3.10  1.62  0.48 14.44 13.96  1.87
##        kurtosis   se
## Exm        2.28 0.10
## IndT      -0.01 1.25
## ServUp     0.06 0.05
## Cons      -0.22 0.16
## Com        1.53 0.43
## Serv      -0.49 1.20
## AdmP      -0.96 2.05
## Agro       3.29 0.61

Teste de esfericidade de Bartlett.

  • Matriz de Correlação
##                Exm        IndT       ServUp         Cons         Com
## Exm     1.00000000 -0.06228244  0.075802347  0.537368398  0.18496109
## IndT   -0.06228244  1.00000000 -0.113467713 -0.137475168  0.12411647
## ServUp  0.07580235 -0.11346771  1.000000000 -0.223070736  0.14059275
## Cons    0.53736840 -0.13747517 -0.223070736  1.000000000 -0.04841506
## Com     0.18496109  0.12411647  0.140592755 -0.048415061  1.00000000
## Serv    0.08177291  0.29788931 -0.069330464  0.068577204 -0.30723653
## AdmP   -0.19266977 -0.81413913  0.072424115 -0.008136171 -0.24385485
## Agro    0.17816931  0.07480970 -0.006911745 -0.118823565  0.44512269
##               Serv         AdmP         Agro
## Exm     0.08177291 -0.192669769  0.178169310
## IndT    0.29788931 -0.814139132  0.074809697
## ServUp -0.06933046  0.072424115 -0.006911745
## Cons    0.06857720 -0.008136171 -0.118823565
## Com    -0.30723653 -0.243854849  0.445122686
## Serv    1.00000000 -0.626157739 -0.285236800
## AdmP   -0.62615774  1.000000000 -0.267172490
## Agro   -0.28523680 -0.267172490  1.000000000
  • Teste de esferecidade
## $chisq
## [1] 355.8572
## 
## $p.value
## [1] 1.652884e-58
## 
## $df
## [1] 28
  • Teste de adequação de dados Kaiser-Meyer-Olkin Measure of Sampling Adequacy (KMO)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = rais_3)
## Overall MSA =  0.07
## MSA for each item = 
##    Exm   IndT ServUp   Cons    Com   Serv   AdmP   Agro 
##   0.06   0.10   0.01   0.05   0.06   0.09   0.15   0.05
fa.parallel(rais_3,fm="pa", fa="fa",  main = "Scree Plots da Análise Paralela", n.iter=50,show.legend = TRUE)

## Parallel analysis suggests that the number of factors =  3  and the number of components =  NA
fit <- fa(rais_3, nfactors = 4, n.obs = 27 , rotate = "oblimin", residuals = TRUE, fm = "pa")
## maximum iteration exceeded
## Loading required namespace: GPArotation
print(fit, sort = TRUE)
## Factor Analysis using method =  pa
## Call: fa(r = rais_3, nfactors = 4, n.obs = 27, rotate = "oblimin", 
##     residuals = TRUE, fm = "pa")
## Standardized loadings (pattern matrix) based upon correlation matrix
##        item   PA1   PA2   PA3   PA4   h2     u2 com
## AdmP      7 -1.27 -0.04  0.09 -0.03 1.61 -0.614 1.0
## IndT      2  0.63 -0.08 -0.20 -0.09 0.45  0.549 1.3
## Serv      6  0.51 -0.48  0.12  0.32 0.61  0.393 2.8
## Com       5  0.17  0.63 -0.10 -0.20 0.47  0.525 1.4
## Agro      8  0.18  0.56 -0.09 -0.32 0.46  0.541 1.9
## Exm       1  0.20  0.43  0.72  0.22 0.79  0.208 2.1
## Cons      4  0.03  0.02  0.71  0.05 0.51  0.490 1.0
## ServUp    3 -0.12  0.44 -0.37  0.80 0.99  0.013 2.1
## 
##                        PA1  PA2  PA3  PA4
## SS loadings           2.38 1.33 1.24 0.94
## Proportion Var        0.30 0.17 0.16 0.12
## Cumulative Var        0.30 0.46 0.62 0.74
## Proportion Explained  0.40 0.23 0.21 0.16
## Cumulative Proportion 0.40 0.63 0.84 1.00
## 
## Mean item complexity =  1.7
## Test of the hypothesis that 4 factors are sufficient.
## 
## The degrees of freedom for the null model are  28  and the objective function was  15.82 with Chi Square of  355.86
## The degrees of freedom for the model are 2  and the objective function was  11.14 
## 
## The root mean square of the residuals (RMSR) is  0.02 
## The df corrected root mean square of the residuals is  0.08 
## 
## The harmonic number of observations is  27 with the empirical chi square  0.65  with prob <  0.72 
## The total number of observations was  27  with Likelihood Chi Square =  220.9  with prob <  1.1e-48 
## 
## Tucker Lewis Index of factoring reliability =  -9.727
## RMSEA index =  2.013  and the 90 % confidence intervals are  1.828 2.285
## BIC =  214.31
## Fit based upon off diagonal values = 0.99

Análise de componentes principais

# PCA com a matriz de covariâncias
rais_3 <- read.csv2('rais.csv', row.names = 1)
pca_cov <- prcomp(rais_3)
summary(pca_cov)
## Importance of components:
##                            PC1    PC2     PC3     PC4    PC5     PC6     PC7
## Standard deviation     12.6487 5.6426 3.76675 1.88879 0.9633 0.39890 0.23479
## Proportion of Variance  0.7592 0.1511 0.06733 0.01693 0.0044 0.00076 0.00026
## Cumulative Proportion   0.7592 0.9103 0.97765 0.99458 0.9990 0.99974 1.00000
##                             PC8
## Standard deviation     0.002542
## Proportion of Variance 0.000000
## Cumulative Proportion  1.000000
# PCA com a matriz de correlação (variáveis padronizadas)
pca_corr <- prcomp(rais_3, center = TRUE, scale = TRUE)
summary(pca_corr)
## Importance of components:
##                           PC1    PC2    PC3    PC4     PC5    PC6     PC7
## Standard deviation     1.4975 1.3306 1.2595 1.0204 0.77350 0.6670 0.56234
## Proportion of Variance 0.2803 0.2213 0.1983 0.1301 0.07479 0.0556 0.03953
## Cumulative Proportion  0.2803 0.5016 0.6999 0.8301 0.90487 0.9605 1.00000
##                              PC8
## Standard deviation     0.0004951
## Proportion of Variance 0.0000000
## Cumulative Proportion  1.0000000
fviz_eig(pca_corr, addlabels=TRUE, ylim = c(0,35))

# Gráfico de indivíduos 
fviz_pca_ind(pca_corr,
             col.ind = "cos2", #Cor pela qualidade de representação
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE, # Texto não sobreposto
             legend.title = "Representação"
)

# Gráfico das variáveis
fviz_pca_var(pca_corr,
             col.var = "contrib", # Cor por contribuições para o PC
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE,     
             legend.title = "Contribuição"
)

library(corrplot)
## corrplot 0.92 loaded
res.pca <- PCA(rais_3, graph = FALSE)
var <- get_pca_var(res.pca)
corrplot(var$cos2, is.corr = FALSE)

fviz_pca_ind(res.pca, pointsize = "cos2", 
             pointshape = 21, fill = "#E7B800",
             repel = TRUE)

fviz_pca_ind(res.pca, col.ind = "cos2", pointsize = "cos2",
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             repel = TRUE) 

library(ggthemes)
# Gráfico das variáveis e indivíduos
fviz_pca_biplot(pca_corr, repel = TRUE,
                col.var = "black", # cor das variáveis
                geom.ind = "point",
                pointshape = 21,
                pointsize = 2.5,
                fill.ind =rais_4$`Região`, 
             addEllipses = TRUE, ellipse.level = 0.95,legend.title = "Região",
             ellipse.type ="confidence", palette = "jco") + theme_classic()  # cor dos automoveis

library(ggthemes)
# Gráfico das variáveis e indivíduos
fviz_pca_biplot(pca_corr, repel = TRUE,
                col.var = "black", # cor das variáveis
                col.ind = "gray",
                fill.ind =rais_4$`Região`, 
             addEllipses = TRUE, ellipse.level = 0.95,legend.title = "Região",
             ellipse.type ="confidence", palette = "jco") + theme_classic()  # cor dos automoveis

library(ggthemes)
# Gráfico das variáveis e indivíduos
fviz_pca_biplot(pca_corr, repel = TRUE,
                col.var = "black", # cor das variáveis
                col.ind = "brown",
                fill.ind =rais_4$`Região`, 
             addEllipses = TRUE, ellipse.level = 0.95,legend.title = "Região",
             ellipse.type ="confidence", palette = "jco") + theme_classic()  # cor dos automoveis

# Gráfico das variáveis e indivíduos
fviz_pca_biplot(res.pca, # Individuals
                geom.ind = "point",
                fill.ind = rais_4$`Região`, col.ind = "black",
                pointshape = 21, pointsize = 2,
                palette = "jco",
                addEllipses = TRUE,
                # Variables
                alpha.var ="contrib", col.var = factor(c("Grupo 1", "Grupo 1", "Grupo 1", "Grupo 2","Grupo 2","Grupo 3","Grupo 3","Grupo 4")),
                gradient.cols = "Accent",
                
                legend.title = list(fill = "Região",color="contrib",
                                    alpha = "Contrib"))
## Too few points to calculate an ellipse
## Too few points to calculate an ellipse

# Gráfico das variáveis e indivíduos
fviz_pca_biplot(res.pca, # Individuals
                geom.ind = "point",
                fill.ind = rais_4$`Região`, col.ind = "black",
                pointshape = 21, pointsize = 2,
                palette = "jco",
                addEllipses = TRUE,
                # Variables
                alpha.var ="contrib", col.var = "contrib",
                gradient.cols = "Accent",
                
                legend.title = list(fill = "Região",color="contrib",
                                    alpha = "Contrib"))
## Too few points to calculate an ellipse
## Too few points to calculate an ellipse

# Contributions of variables to PC1
fviz_contrib(res.pca, choice = "var", axes = 1)

# Contributions of variables to PC2
fviz_contrib(res.pca, choice = "var", axes = 2)

corrplot(var$contrib, is.corr=FALSE)  

pca <- prcomp( x = rais_3, center = TRUE, scale. = TRUE)
pca
## Standard deviations (1, .., p=8):
## [1] 1.4975235587 1.3305837872 1.2595331093 1.0203900645 0.7734974628
## [6] 0.6669503445 0.5623425175 0.0004950862
## 
## Rotation (n x k) = (8 x 8):
##                PC1         PC2         PC3         PC4         PC5         PC6
## Exm     0.15344270  0.20670761 -0.64027527  0.25579769 -0.14704353  0.13750608
## IndT    0.55610879 -0.03433924  0.22889366 -0.10239542  0.37318292  0.52845930
## ServUp -0.09179423  0.19146967  0.15068139  0.89326662  0.03724720  0.22685873
## Cons    0.02756503 -0.07322526 -0.71298534 -0.10448638  0.26386402  0.13183840
## Com     0.15139933  0.60697565  0.01534502  0.01315743  0.48146392 -0.59421953
## Serv    0.41160165 -0.45664599 -0.06304619  0.25189951 -0.31906932 -0.50685147
## AdmP   -0.66434456 -0.01886322 -0.03399442 -0.04747994  0.04184011  0.03350899
## Agro    0.15595182  0.58031836  0.03516219 -0.22216940 -0.65782809  0.14784618
##                 PC7        PC8
## Exm    -0.645389416 0.03584975
## IndT   -0.094079833 0.44643137
## ServUp  0.284850996 0.01705079
## Cons    0.620087218 0.05566853
## Com    -0.007430584 0.15261276
## Serv    0.102612961 0.43057784
## AdmP   -0.110667878 0.73468340
## Agro    0.293498255 0.21812036
plot(pca, type = "l", pch = 16, main = "Scree plot")

biplot(pca)