Bem-vindas e bem-vindos ao espaço da disciplina Análise de Dados e Representações Espaciais :)
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
Método de quebras naturais
Método de intervalo igual
Método de igual contagem (quartil)
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'))
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")
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'
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 :)
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()
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")
library(FactoMineR)
library(factoextra)
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(corrplot)
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())
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())
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.