Introdução

Bem-vindas e bem-vindos ao espaço da disciplina Análise de Dados e Representações Espaciais :)

Univariado

Medidas de dispersão

Medidas de dispersão no Jamovi

Medidas de dispersão no R

Carregar dados:

uni<-read.csv("/Users/eugeniaviana/Documents/Documents - MacBook Pro/Eugenia/Sociologia/Disciplinas/Analise de dados/Univariado/dados IBGE.csv")

O comando summary(dataframe) permite resumir os dados, apontando média, mediana, máximo, mínimo e quartis.

summary(uni)
##      GEOCOD           Local            SalarioMedio   Mortalidade.infantil
##  Min.   :3105004   Length:34          Min.   :1.600   Min.   : 6.85       
##  1st Qu.:3124578   Class :character   1st Qu.:1.825   1st Qu.: 9.99       
##  Median :3137126   Mode  :character   Median :2.250   Median :12.47       
##  Mean   :3137866                      Mean   :2.335   Mean   :14.25       
##  3rd Qu.:3154754                      3rd Qu.:2.575   3rd Qu.:15.86       
##  Max.   :3171204                      Max.   :4.100   Max.   :29.41       
##       Area         PopEstimada2020   Densidade2010      Esc6a14anos   
##  Min.   :  35.20   Min.   :   4099   Min.   :  11.52   Min.   :95.70  
##  1st Qu.:  95.79   1st Qu.:  11798   1st Qu.:  42.95   1st Qu.:96.75  
##  Median : 230.47   Median :  32780   Median : 194.62   Median :97.80  
##  Mean   : 278.55   Mean   : 158601   Mean   : 647.71   Mean   :97.74  
##  3rd Qu.: 330.84   3rd Qu.:  90006   3rd Qu.: 414.87   3rd Qu.:98.50  
##  Max.   :1114.97   Max.   :2521564   Max.   :7167.00   Max.   :99.30  
##     IDH2010         PIBPC2018     
##  Min.   :0.6480   Min.   :  9197  
##  1st Qu.:0.6817   1st Qu.: 13647  
##  Median :0.7095   Median : 19783  
##  Mean   :0.7134   Mean   : 32560  
##  3rd Qu.:0.7332   3rd Qu.: 28045  
##  Max.   :0.8130   Max.   :163730

Para encontrar o desvio padrão é necessário usar o comando sd (). Porém, atenção! Nesse comando é necessário especificar a coluna para a qual queremos aferir o desvio padrão.

O mesmo pode ser aplicado às formulas mean(), max(), min(), quantile()

sd(uni$SalarioMedio)
## [1] 0.6596061
mean(uni$SalarioMedio)
## [1] 2.335294
max(uni$SalarioMedio)
## [1] 4.1
min(uni$SalarioMedio)
## [1] 1.6
quantile(uni$SalarioMedio)
##    0%   25%   50%   75%  100% 
## 1.600 1.825 2.250 2.575 4.100

Transformação em variável qualitativa

Transformação em variável qualitativa no Excel

Método de quebras naturais

Método de intervalo igual

Método de igual contagem (quartil)

Transformação em variável qualitativa no R

Para realizar a transformação em variável qualitativa usamos ifelse

uni$SMQ<-ifelse(uni$SalarioMedio<2, 'Ate 2SM',
                  ifelse(uni$SalarioMedio>=2 
                         & uni$SalarioMedio<3, 'De 2 a 3SM', 'Maior que 3SM'))

Visualização de dados no R

Para visualizar dados utilizamos o pacote ggplot2

library(ggplot2)

O comando geom_histogram permite criar um histograma

ggplot(uni, aes(x=SalarioMedio)) + geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

# Histograma com densidade
ggplot(uni, aes(x=SalarioMedio)) + 
  geom_histogram(aes(y=..density..), colour="black", fill="white")+
  geom_density(alpha=.2, fill="#FF6666") 
## Warning: The dot-dot notation (`..density..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(density)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

# Diagrama de barras
ggplot(uni, aes(x=SMQ))+geom_bar(fill="lightblue")

Reparem que o gráfico acima mostra a contagem absoluta e não a porcentagem. Para mostrar a porcentagem adicionamos a função count/sum conforme indicado abaixo:

# Diagrama de barras com porcentagem
ggplot(uni,aes(x=SMQ)) + 
  geom_bar(aes(y = (..count..)/sum(..count..)),fill="lightblue")+
  labs(x="Salário médio", y = "Proporção")

Regressão linear

Regressão linear: princípios e conceitos

Regressão linear no Jamovi

Regressão linear no Excel

Regressão linear no R

Carregar pacotes

library(readxl)
library(ggplot2)

Carregar dados:

estudomg <- read_excel("/Users/eugeniaviana/Documents/Documents - MacBook Pro/Eugenia/Sociologia/Disciplinas/Analise de dados/Regressão Linear/estudomg.xlsx")

Em seguida, montamos o modelo de regressão com a função lm()

reg<-lm(estudomg$Ensmedio ~ estudomg$Rendamedia)

summary(reg)
## 
## Call:
## lm(formula = estudomg$Ensmedio ~ estudomg$Rendamedia)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -24.6468  -2.9908  -0.2523   2.7899  20.1145 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)         5.3666662  0.5017685   10.70   <2e-16 ***
## estudomg$Rendamedia 0.0303539  0.0009646   31.47   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.873 on 851 degrees of freedom
## Multiple R-squared:  0.5378, Adjusted R-squared:  0.5373 
## F-statistic: 990.3 on 1 and 851 DF,  p-value: < 2.2e-16

Por fim, montamos o gráfico de regressão no ggplot

ggplot(estudomg, aes(x = Ensmedio, y = Rendamedia)) + 
  geom_point() +
  stat_smooth(method = "lm", col = "red")+
  xlab("Pessoas de mais de 25 anos com Ensino Médio completo")+
  ylab("Renda Média per capita")
## `geom_smooth()` using formula = 'y ~ x'

Chi2

Chi 2 no R

Carregar pacotes

library(readxl)
library(ggplot2)
library(DescTools)
dadoschi2<-read_excel("/Users/eugeniaviana/Documents/Documents - MacBook Pro/Eugenia/Sociologia/Disciplinas/Analise de dados/Chi2/Chi2.xlsx")

Criar tabela de contingência

table(dadoschi2$Escolaridade,dadoschi2$Carros)
##              
##               Dois ou mais Nenhum   Um
##   Fundamental          191    701  521
##   Infantil             339   1411  971
##   Medio                241    435  504
##   Superior             332    325  406

A função chisq.test permite realizar o e visualizar teste do Chi2

chi2 <- chisq.test(dadoschi2$Escolaridade,dadoschi2$Carros)

chi2
## 
##  Pearson's Chi-squared test
## 
## data:  dadoschi2$Escolaridade and dadoschi2$Carros
## X-squared = 287.17, df = 6, p-value < 2.2e-16

Permite também comparar os valores observados e esperados

chi2$observed
##                       dadoschi2$Carros
## dadoschi2$Escolaridade Dois ou mais Nenhum   Um
##            Fundamental          191    701  521
##            Infantil             339   1411  971
##            Medio                241    435  504
##            Superior             332    325  406
round(chi2$expected,0)
##                       dadoschi2$Carros
## dadoschi2$Escolaridade Dois ou mais Nenhum   Um
##            Fundamental          244    636  532
##            Infantil             471   1225 1025
##            Medio                204    531  444
##            Superior             184    479  400

Podemos também realizar um gráfico de barra, com o pacote ggplot

ggplot(dadoschi2, aes(x=Escolaridade, fill = Carros))+
  geom_bar(position="fill")

Por fim, calculamos o V de Cramer e Coeficiente de Contigência com o pacote Desctools (lembrar de instalar e carregar o pacote!)

ContCoef(dadoschi2$Escolaridade,dadoschi2$Carros)
## [1] 0.2075845
CramerV(dadoschi2$Escolaridade,dadoschi2$Carros)
## [1] 0.150053
Phi(dadoschi2$Escolaridade,dadoschi2$Carros)
## [1] 0.212207

Um vídeo para resumir tudo isso :)

Variância (ANOVA)

ANOVA no R

Carregar a base de dados

vari<-read.csv("/Users/eugeniaviana/Documents/Documents - MacBook Pro/Eugenia/Sociologia/Disciplinas/Analise de dados/Variancia/Pratica1.csv")

Executar a variância

Criar gráfico de boxplot

ggplot(vari, aes(Escolaridade, Renda.annual)) + 
  geom_boxplot()

Matriz de correlação

Matriz de correlação no Excel

Matriz de correlação no R

Carregar o pacote corrplot

library(corrplot)
## corrplot 0.92 loaded

Carregar os dados

ACP<-read.csv("/Users/eugeniaviana/Documents/Documents - MacBook Pro/Eugenia/Sociologia/Disciplinas/Analise de dados/Análise Fatorial/ACP.csv")

Remover a 1a coluna (AP-código espacial), para que não entre na análise.

ACP <- ACP[,-(1)]

Criar a matriz de correlação

matcor<-cor(ACP)
print(matcor,digits=2)
##                 Casa.Propria Alugado  Casa Apartamento Ensino.Superior
## Casa.Propria            1.00   -0.88  0.24       -0.23           -0.23
## Alugado                -0.88    1.00 -0.47        0.46            0.45
## Casa                    0.24   -0.47  1.00       -1.00           -0.92
## Apartamento            -0.23    0.46 -1.00        1.00            0.93
## Ensino.Superior        -0.23    0.45 -0.92        0.93            1.00
## Menos.de.3SM            0.42   -0.64  0.82       -0.82           -0.86
## De.3.a.5SM              0.12   -0.26  0.79       -0.79           -0.86
## De.5.a.10SM            -0.52    0.62 -0.29        0.29            0.26
## Mais.de.10SM           -0.24    0.45 -0.92        0.92            0.99
## Mais.60                -0.37    0.44 -0.63        0.64            0.72
## Automovel              -0.32    0.52 -0.79        0.80            0.87
##                 Menos.de.3SM De.3.a.5SM De.5.a.10SM Mais.de.10SM Mais.60
## Casa.Propria            0.42      0.121      -0.521        -0.24   -0.37
## Alugado                -0.64     -0.261       0.619         0.45    0.44
## Casa                    0.82      0.792      -0.286        -0.92   -0.63
## Apartamento            -0.82     -0.794       0.291         0.92    0.64
## Ensino.Superior        -0.86     -0.861       0.261         0.99    0.72
## Menos.de.3SM            1.00      0.590      -0.657        -0.88   -0.64
## De.3.a.5SM              0.59      1.000      -0.058        -0.85   -0.65
## De.5.a.10SM            -0.66     -0.058       1.000         0.27    0.30
## Mais.de.10SM           -0.88     -0.854       0.267         1.00    0.71
## Mais.60                -0.64     -0.647       0.298         0.71    1.00
## Automovel              -0.92     -0.639       0.497         0.88    0.59
##                 Automovel
## Casa.Propria        -0.32
## Alugado              0.52
## Casa                -0.79
## Apartamento          0.80
## Ensino.Superior      0.87
## Menos.de.3SM        -0.92
## De.3.a.5SM          -0.64
## De.5.a.10SM          0.50
## Mais.de.10SM         0.88
## Mais.60              0.59
## Automovel            1.00

Plotar a matriz de correlação visualmente

corrplot(matcor, method="circle")

Análise fatorial

library(FactoMineR)
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(corrplot)

Análise fatorial quantitativa no R

Carregar os pacotes FactoMiner e factoextra para análise fatorial.

library(FactoMineR)
library(factoextra)
library(corrplot)

Carregar os dados

ACP<-read.csv("/Users/eugeniaviana/Documents/Documents - MacBook Pro/Eugenia/Sociologia/Disciplinas/Analise de dados/Análise Fatorial/ACP.csv")

Remover a 1a coluna (AP-código espacial), para que não entre na análise.

ACP <- ACP[,-(1)]

Antes precisamos realizar os testes de KMO e Bartlett. Para isso instalamos e carregamos os pacotes psych e performance

library(psych)
## 
## Attaching package: 'psych'
## The following objects are masked from 'package:DescTools':
## 
##     AUC, ICC, SD
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
library(performance)

Para o teste de Kayser-Meyer usamos a função KMO. Verificamos que o coeficiente é superior a 0.7, ou seja a base está adequada para análise.

Reparem que a variável De 5 a 10SM tem um coeficiente mais baixo (0.38) e poderia, eventualmente, ser removida da análise para melhores significâncias estatísticas.

KMO(ACP)
## Kaiser-Meyer-Olkin factor adequacy
## Call: KMO(r = ACP)
## Overall MSA =  0.73
## MSA for each item = 
##    Casa.Propria         Alugado            Casa     Apartamento Ensino.Superior 
##            0.66            0.77            0.73            0.73            0.95 
##    Menos.de.3SM      De.3.a.5SM     De.5.a.10SM    Mais.de.10SM         Mais.60 
##            0.65            0.60            0.38            0.71            0.94 
##       Automovel 
##            0.96

Para o teste de Bartlett, utilizamos a função check_factorstructure, que permite aferir tanto o teste de Bartlett quanto o KMO. O teste de Bartlett nos mostra uma significância estatística p<0.001.

check_factorstructure(ACP)
## # Is the data suitable for Factor Analysis?
## 
## 
##   - Sphericity: Bartlett's test of sphericity suggests that there is sufficient significant correlation in the data for factor analysis (Chisq(55) = 4212.77, p < .001).
##   - KMO: The Kaiser, Meyer, Olkin (KMO) overall measure of sampling adequacy suggests that data seems appropriate for factor analysis (KMO = 0.73). The individual KMO scores are: Casa.Propria (0.66), Alugado (0.77), Casa (0.73), Apartamento (0.73), Ensino.Superior (0.95), Menos.de.3SM (0.65), De.3.a.5SM (0.60), De.5.a.10SM (0.38*), Mais.de.10SM (0.71), Mais.60 (0.94), Automovel (0.96).

Agora, finalmente, vamos realizar a análise de componentes principais.

A função PCA permite realizar uma análise de componentes principais. O comando ncp indica quantos fatores queremos como resultado. Inserir graph = TRUE caso queira que o R plote o gráfico da análise fatorial (não faremos isso agora, pois faremos abaixo)

PCA <- PCA(ACP,ncp = 5, graph = FALSE)

Para visualizar o valor do eigenvalue (valor próprio) usar a função $eig

PCA$eig
##          eigenvalue percentage of variance cumulative percentage of variance
## comp 1  7.278042957            66.16402688                          66.16403
## comp 2  1.947111975            17.70101796                          83.86504
## comp 3  0.719672750             6.54247955                          90.40752
## comp 4  0.448551214             4.07773831                          94.48526
## comp 5  0.238561927             2.16874479                          96.65401
## comp 6  0.211090951             1.91900865                          98.57302
## comp 7  0.076486484             0.69533167                          99.26835
## comp 8  0.062583440             0.56894036                          99.83729
## comp 9  0.011309765             0.10281604                          99.94010
## comp 10 0.004800983             0.04364530                          99.98375
## comp 11 0.001787554             0.01625049                         100.00000

A função var$coord mostra o score de cada variável nos fatores.

PCA$var$coord
##                      Dim.1        Dim.2        Dim.3       Dim.4        Dim.5
## Casa.Propria    -0.4383045 -0.778062489  0.397278784  0.10217837 -0.065729202
## Alugado          0.6390253  0.683321242 -0.214821157 -0.19443178 -0.008944257
## Casa            -0.9260325  0.219636908 -0.010151662  0.17534627  0.214060749
## Apartamento      0.9295827 -0.227711617  0.024046080 -0.15683872 -0.200461503
## Ensino.Superior  0.9557775 -0.255143343 -0.013996220 -0.02678161  0.073276500
## Menos.de.3SM    -0.9369029 -0.149467990 -0.270300146 -0.02864846 -0.067204922
## De.3.a.5SM      -0.7929278  0.418765763  0.234112253 -0.01436699  0.046235371
## De.5.a.10SM      0.4780188  0.672069260  0.468375712  0.20307762 -0.182621134
## Mais.de.10SM     0.9561547 -0.244429328  0.002912986 -0.03505510  0.110937017
## Mais.60          0.7616659 -0.021835714 -0.313395193  0.54810160 -0.030759351
## Automovel        0.9016750  0.002590862  0.263335276 -0.01825462  0.299211441

Para visualizar o gráfico dos scores dos fatores, utilizar a função fviz_pca_var, do pacote factoextra (lembra de instalar e carregar o pacote!!)

O comando axes permite escolher os dois fatores que serão cartografados.

fviz_pca_var(PCA,
             axes=c(1,2),
                repel = TRUE,
                ggtheme = theme_minimal())

Análise fatorial qualitativa no R

library(readxl)
library(FactoMineR)

Vamos ler o mesmo arquivo que utilizamos na aula do Chi2.

MCA<-read_excel("/Users/eugeniaviana/Documents/Documents - MacBook Pro/Eugenia/Sociologia/Disciplinas/Analise de dados/Chi2/Chi2.xlsx")

A função MCA permite fazer uma análise fatorial qualitativa (análise de correspondência múltipla)

MCA <- MCA(MCA,ncp = 5, graph = FALSE)

Verificamos o eigenvalue

MCA$eig
##        eigenvalue percentage of variance cumulative percentage of variance
## dim 1   0.2887167              14.435834                          14.43583
## dim 2   0.2175275              10.876376                          25.31221
## dim 3   0.2072254              10.361272                          35.67348
## dim 4   0.2046865              10.234323                          45.90780
## dim 5   0.1998958               9.994789                          55.90259
## dim 6   0.1976727               9.883633                          65.78623
## dim 7   0.1935312               9.676558                          75.46278
## dim 8   0.1867195               9.335975                          84.79876
## dim 9   0.1735878               8.679391                          93.47815
## dim 10  0.1304370               6.521851                         100.00000

Verificamos as coordenadas de cada variável nos fatores

MCA$var$coord
##                   Dim 1       Dim 2       Dim 3        Dim 4       Dim 5
## Feminino     -0.2927817  0.07610479 -0.27991869  0.565454373  0.31372244
## Masculino     0.3077550 -0.07999693  0.29423425 -0.594372753 -0.32976679
## 60 a 64       0.4698284  0.02289439 -0.26425787  0.792951469 -0.29501673
## 65 a 69       0.1321147 -0.14166685 -0.53260130 -0.829985707  0.66160753
## 70 a 74      -0.3221293 -0.41413904  1.10546159  0.340004060  1.16999308
## Mais de 75   -0.6568920  0.43952638  0.20877618 -0.546845336 -1.18063575
## Fundamental  -0.1056017 -0.45648798 -1.28941607  0.145738182 -0.38661877
## Infantil     -0.3588860 -0.22455985  0.13454406 -0.291370060  0.35403357
## Medio         0.3254372 -0.28281205  1.04840543  0.798180983 -0.70001534
## Superior      0.6977688  1.49554384  0.20576867 -0.333926319  0.38474607
## Em familia    0.3613088 -0.16988149 -0.08511163 -0.061362810  0.01244821
## Sozinho      -1.1515385  0.54143452  0.27126188  0.195571294 -0.03967407
## Dois ou mais  1.2052819  1.14098014 -0.10033992  0.220251700  0.22653127
## Nenhum       -0.7841228  0.19398394 -0.15454883  0.002847395 -0.01786617
## Um            0.3840861 -0.75587967  0.23086561 -0.104544273 -0.08266126

Por fim, visualizamos as variáveis.

fviz_mca_var(MCA,
             axes=c(1,2),
                repel = TRUE,
                ggtheme = theme_minimal())

Classificação hierárquica

QGIS

Junção de tabelas

Utilizamos a função União no QGIS para realizar a junção de uma tabela externa com um shapefile.

Para isso basta clicarmos no menu Camada -> Adicionar camada de Texto Delimitado. (Obs: também funciona apenas arrastamos um arquivo csv ou xlsx para dentro do QGIS!)

Em seguida selecionamos um arquivo csv, xlsx ou txt. Em definição de geometria clicar em “sem geometria”, para indicar que queremos apenas um arquivo de texto. Por fim, clicamos em adicionar.

Em Propriedades, clicar na aba “Uniões” e em seguida clicar no símbolo +. Uma janela se abrirá permitindo adicionar uma tabela ao shapefile.

Em “Unir camadas” selecionar a tabela a ser unida

Em “Unir campo” e “campo alvo” escolher o campo correspondente ao Código IBGE na tabela e no Shapefile

Obs: sempre que possível é recomendado realizar a união por códigos da unidade espacial em questão.

Em “Campo personalizado e prefixo do nome” recomenda-se apagar o prefixo pre-determinado pelo QGIS.

Pronto! O shapefile e tabela estão unidos. Abrir a tabela de atributos para verificar se deu certo.

Após a junção, podemos exportar o shapefile com os novos atributos recebidos após a união da tabela.