O Objetivo dessa pesquisa é analisar a correlação entre a riqueza dos
estados brasileiros com seu nível de qualidade de vida.
Para isso, serão utliizados os dados de participação percentual de cada
estado no PIB brasileiro assim com o IDH. A escolha pelo percentual do
PIB se dá por representar em uma escala simples, a de porcentagem a
proporção da riqueza entre os diferentes estados, indicando de forma
sucinta a riqueza relativa entre eles. Enquanto isso, a escolha do IDH
como indicador de qualidade de vida foi feita por ser o principal
indicador de bem estar usado globalmente, sendo um indicador calculado a
partir do PIB per capita, do nível de escolaridade e da expectativa de
vida.
Os dados da participação percentual do PIB serão retirados do instituto
de pesquisa do governo do estado de São Paulo, o SEADE, enquanto o IDH
estadual será obtido através da plataforma Atlas Brasil.
O primeiro passo a ser realizado é o download dos dados relacionados ao
PIB estadual a partir da plataforma do SEADE. Tais dados estão na tabela
28 da planilha do Repositório
SEADE e são agrupados por ano, de 2003 até 2021 até o momento.
A bases de dados que serão utilizadas precisarão de algumas bibliotecas que serão utilizadas que não estão ativas no R naturalmente e portanto precisarão ser importadas.
library(geojsonio)
## Registered S3 method overwritten by 'geojsonsf':
## method from
## print.geojson geojson
##
## Anexando pacote: 'geojsonio'
## O seguinte objeto é mascarado por 'package:base':
##
## pretty
library(httr)
library(dplyr)
##
## Anexando pacote: 'dplyr'
## Os seguintes objetos são mascarados por 'package:stats':
##
## filter, lag
## Os seguintes objetos são mascarados por 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
library(readxl)
library(tibble)
library(plotly)
## Carregando pacotes exigidos: ggplot2
##
## Anexando pacote: 'plotly'
## O seguinte objeto é mascarado por 'package:ggplot2':
##
## last_plot
## O seguinte objeto é mascarado por 'package:httr':
##
## config
## O seguinte objeto é mascarado por 'package:stats':
##
## filter
## O seguinte objeto é mascarado por 'package:graphics':
##
## layout
library(googlesheets4)
## Importando os dados do SEADE
Com as bibliotecas já obtidas, o próximo passo é obter os dados do
SEADE.
link="https://repositorio.seade.gov.br/dataset/5d499216-d441-4336-b4cb-92cd660a0cb8/resource/b4ba3d08-0b7d-4fb8-a507-6cc1bf86193f/download/tabelas_2020.xlsx"
GET(link, write_disk("tabelas_2020.xlsx", overwrite=TRUE))
## Response [https://repositorio.seade.gov.br/dataset/5d499216-d441-4336-b4cb-92cd660a0cb8/resource/b4ba3d08-0b7d-4fb8-a507-6cc1bf86193f/download/tabelas_2020.xlsx]
## Date: 2024-09-14 14:57
## Status: 200
## Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
## Size: 287 kB
## <ON DISK> C:\Users\danye\Downloads\tabelas_2020.xlsx
Tabela=read_excel("tabelas_2020.xlsx", sheet="Tabela 28")
## New names:
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
## • `` -> `...9`
## • `` -> `...10`
## • `` -> `...11`
## • `` -> `...12`
## • `` -> `...13`
## • `` -> `...14`
## • `` -> `...15`
## • `` -> `...16`
## • `` -> `...17`
## • `` -> `...18`
## • `` -> `...19`
## • `` -> `...20`
## • `` -> `...21`
Tabela
## # A tibble: 37 × 21
## Tabela 28 - Participa…¹ ...2 ...3 ...4 ...5 ...6 ...7
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Brasil, 2002-2021, em % NA NA NA NA NA NA
## 2 <NA> NA NA NA NA NA NA
## 3 Regiões e Unidades da … 2002 2003 2004 2005 2006 2007
## 4 BRASIL 100 100 100 100 100 100
## 5 Norte 4.70 4.75 4.96 4.91 5.04 4.99
## 6 Rondônia 0.502 0.549 0.562 0.576 0.542 0.531
## 7 Acre 0.200 0.197 0.193 0.198 0.193 0.201
## 8 Amazonas 1.48 1.51 1.59 1.57 1.66 1.60
## 9 Roraima 0.161 0.151 0.144 0.147 0.158 0.155
## 10 Pará 1.78 1.76 1.90 1.87 1.91 1.91
## # ℹ 27 more rows
## # ℹ abbreviated name:
## # ¹`Tabela 28 - Participação das Grandes Regiões e Unidades da Federação no Produto Interno Bruto`
## # ℹ 14 more variables: ...8 <dbl>, ...9 <dbl>, ...10 <dbl>, ...11 <dbl>,
## # ...12 <dbl>, ...13 <dbl>, ...14 <dbl>, ...15 <dbl>, ...16 <dbl>,
## # ...17 <dbl>, ...18 <dbl>, ...19 <dbl>, ...20 <dbl>, ...21 <dbl>
Como pode se notar, a tabela precisa de um tratamento, pois contém os
dados nacionais e regionais que não utilizaremos nessa pesquisa, células
vazias, colunas com índices que não geram informações relevantes etc.
Vamos, portanto, realizar uma limpeza nos dados.
Nomes=as.character(Tabela[3, ])
Tabela=Tabela[-3, ]
colnames(Tabela)=Nomes
rownames(Tabela)=NULL
Sigla=c('Acre'='AC','Alagoas'='AL','Amapá'='AP','Amazonas'='AM','Bahia'='BA','Ceará'='CE','Distrito Federal'='DF','Espírito Santo'='ES','Goiás'='GO','Maranhão'='MA','Mato Grosso'='MT','Mato Grosso do Sul'='MS','Minas Gerais'='MG','Pará'='PA','Paraíba'='PB','Paraná'='PR','Pernambuco'='PE','Piauí'='PI','Rio de Janeiro'='RJ','Rio Grande do Norte'='RN','Rio Grande do Sul'='RS','Rondônia'='RO','Roraima'='RR','Santa Catarina'='SC','São Paulo'='SP','Sergipe'='SE','Tocantins'='TO')
Tabela[[1]]=Sigla[Tabela[[1]]]
Tabela=Tabela[complete.cases(Tabela), ]
Tabela=Tabela %>%
column_to_rownames(var=colnames(Tabela)[1])
Tabela=Tabela %>%
select(-1)
Tabela
## 2003 2004 2005 2006 2007 2008 2009
## RO 0.5486195 0.5621062 0.5764264 0.5418130 0.5307714 0.5558404 0.5918025
## AC 0.1965851 0.1932831 0.1981301 0.1934801 0.2006487 0.2061306 0.2222542
## AM 1.5054063 1.5880821 1.5655173 1.6573581 1.5983666 1.5472126 1.5169290
## RR 0.1509986 0.1441836 0.1471231 0.1578141 0.1545182 0.1556968 0.1701742
## PA 1.7619922 1.9038540 1.8669116 1.9084450 1.9059509 1.9601556 1.8501160
## AP 0.1986783 0.1953639 0.1983986 0.2191713 0.2210273 0.2235001 0.2247395
## TO 0.3848970 0.3704035 0.3550813 0.3592361 0.3747007 0.3896193 0.4107304
## MA 1.1352423 1.1302321 1.1565645 1.2330882 1.1297020 1.2197686 1.2299456
## PI 0.4898221 0.4804727 0.4935000 0.5545033 0.5049543 0.5210407 0.5684436
## CE 1.9026986 1.8843465 1.8916315 1.9299144 1.8681558 1.9427459 2.0161766
## RN 0.8653010 0.8812355 0.9198867 0.9500145 0.9674895 0.9292826 0.9283135
## PB 0.8578781 0.8048945 0.8088709 0.8648454 0.8421911 0.8646712 0.9069922
## PE 2.2594276 2.2976711 2.3145989 2.3028199 2.2960767 2.2642571 2.3930398
## AL 0.7348309 0.7174000 0.7133803 0.7219769 0.7304906 0.7158747 0.7255356
## SE 0.6839297 0.6812029 0.6648034 0.6814750 0.6697312 0.6887374 0.6512747
## BA 3.9101378 3.9806756 4.0676547 3.9572436 4.0190794 3.9123845 4.1386394
## MG 8.3930884 8.7789976 8.6780512 8.8260622 8.8357355 8.9590116 8.6240761
## ES 1.8346924 2.0295039 2.1662639 2.2189242 2.2298725 2.3181904 2.0766440
## RJ 11.7954971 12.3206021 12.4312166 12.4401085 11.8995219 12.1643007 11.7505620
## SP 34.4278878 33.3523253 34.2323896 34.2206449 34.3956888 33.5233497 33.8157973
## PR 6.4052731 6.3057823 5.8723587 5.7128521 6.0732692 5.9709201 5.9007888
## SC 3.7311016 3.7603841 3.7570177 3.7794290 3.8131642 3.9062685 3.8732977
## RS 6.9458000 6.7011684 6.2823064 6.1268175 6.1762320 6.1171018 6.1308889
## MS 1.2716646 1.1938344 1.0930355 1.1068042 1.1059506 1.1646803 1.1856368
## MT 1.5540086 1.7054603 1.5782410 1.2741566 1.3979376 1.5821743 1.5809419
## GO 2.6518746 2.6103324 2.4815948 2.5472786 2.6251347 2.6502502 2.7862180
## DF 3.4026666 3.4262017 3.4890455 3.5137234 3.4336387 3.5468341 3.7300416
## 2010 2011 2012 2013 2014 2015 2016
## RO 0.6152555 0.6300802 0.6254252 0.5837141 0.5888780 0.6098171 0.6294193
## AC 0.2146856 0.2044939 0.2105593 0.2152054 0.2328916 0.2272062 0.2193894
## AM 1.5666371 1.6162758 1.5004424 1.5577113 1.4997292 1.4438169 1.4202444
## RR 0.1708547 0.1668894 0.1601631 0.1690054 0.1686140 0.1708350 0.1756685
## PA 2.1278377 2.2555329 2.2240128 2.2736967 2.1558395 2.1831914 2.2029078
## AP 0.2119948 0.2150002 0.2311822 0.2393923 0.2318808 0.2311839 0.2287667
## TO 0.4221683 0.4191976 0.4296046 0.4463308 0.4531846 0.4825103 0.5037991
## MA 1.1917513 1.1914759 1.2563473 1.2696865 1.3296878 1.3088523 1.3607525
## PI 0.5730835 0.5927582 0.5947895 0.5867560 0.6527739 0.6529532 0.6606280
## CE 2.0416733 2.0495429 2.0140932 2.0450928 2.1812684 2.1786939 2.2079323
## RN 0.9311870 0.9366853 0.9639568 0.9662817 0.9348162 0.9548516 0.9518945
## PB 0.8626817 0.8479410 0.8824604 0.8698540 0.9160221 0.9363556 0.9427610
## PE 2.5011216 2.5171833 2.6582642 2.6474182 2.6846153 2.6178993 2.6692658
## AL 0.6982529 0.7233674 0.7196703 0.6992722 0.7090384 0.7733298 0.7890597
## SE 0.6795145 0.6651218 0.6823431 0.6627628 0.6484294 0.6430604 0.6201213
## BA 3.9738967 3.8068619 3.7919342 3.8420651 3.8749229 4.0869312 4.1270607
## MG 9.0359558 9.1428190 9.1859787 9.1530341 8.9399240 8.6616021 8.6900936
## ES 2.1954103 2.4215487 2.4269243 2.1996011 2.2284969 2.0075093 1.7428411
## RJ 11.5768351 11.7167081 11.9400546 11.7830264 11.6124300 10.9933684 10.2148301
## SP 33.3182441 32.8278635 32.3802940 32.1710616 32.1545464 32.3544166 32.5195520
## PR 5.7955255 5.8752245 5.9321794 6.2547822 6.0233091 6.2871283 6.4092063
## SC 3.9560489 3.9774481 3.9834727 4.0233978 4.1971855 4.1542443 4.0954097
## RS 6.2084061 6.0565192 5.9730292 6.2324920 6.1917174 6.3710169 6.5204680
## MS 1.2164827 1.2597886 1.2879811 1.2979773 1.3661668 1.3856822 1.4657438
## MT 1.4565925 1.5801627 1.6546140 1.6732801 1.7517797 1.7915633 1.9759741
## GO 2.7476663 2.7716210 2.8819261 2.8377905 2.8554537 2.8959076 2.8991880
## DF 3.7102362 3.5318890 3.4082973 3.2993117 3.4163985 3.5960728 3.7570222
## 2017 2018 2019 2020 2021
## RO 0.6607894 0.6412489 0.6373055 0.6780746 0.6454636
## AC 0.2167335 0.2188865 0.2115271 0.2165209 0.2371738
## AM 1.4158452 1.4292864 1.4640570 1.5246424 1.4594870
## RR 0.1838091 0.1908869 0.1934223 0.2105798 0.2019784
## PA 2.3571923 2.3036316 2.4140455 2.8376746 2.9172308
## AP 0.2350916 0.2397897 0.2367892 0.2427082 0.2230308
## TO 0.5179294 0.5092157 0.5326193 0.5736152 0.5745667
## MA 1.3597000 1.4017350 1.3173395 1.4050148 1.3868037
## PI 0.6888723 0.7192662 0.7143030 0.7410544 0.7104671
## CE 2.2461773 2.2258807 2.2137289 2.1934741 2.1624693
## RN 0.9764817 0.9561424 0.9654285 0.9406163 0.8896967
## PB 0.9474903 0.9190791 0.9200821 0.9237287 0.8596217
## PE 2.7577265 2.6605971 2.6776272 2.5403095 2.4501780
## AL 0.8025394 0.7768697 0.7979792 0.8305611 0.8462541
## SE 0.6182008 0.5999020 0.6048003 0.5967419 0.5754614
## BA 4.0805550 4.0867187 3.9685384 4.0123125 3.9126975
## MG 8.7522190 8.7787470 8.8220480 8.9726975 9.5159754
## ES 1.7219695 1.9562721 1.8587517 1.8193595 2.0676162
## RJ 10.1982812 10.8344342 10.5550696 9.9062238 10.5335754
## SP 32.2036049 31.5607860 31.7809767 31.2452680 30.1787436
## PR 6.4004132 6.2824178 6.3116629 6.4120425 6.1025787
## SC 4.2103275 4.2578682 4.3748562 4.5899279 4.7554831
## RS 6.4273236 6.5289085 6.5293764 6.1887883 6.4500058
## MS 1.4637725 1.5272271 1.4473048 1.6114878 1.5779131
## MT 1.9261454 1.9623085 1.9233930 2.3476876 2.5897306
## GO 2.9147204 2.7938005 2.8240465 2.9453086 2.9918290
## DF 3.7160888 3.6380936 3.7029214 3.4935797 3.1839687
Agora que temos a base de dados mais limpa, podemos calcular, por
exemplo, quanto é o desvio padrão dos dados ano a ano, e então observar
se há ou não um padrão.
MediaEDesvioPadrao=function(tabela) {
medias=apply(tabela,2,mean,na.rm=TRUE)
desvios=apply(tabela,2,sd,na.rm=TRUE)
resultados=data.frame(
media=medias,DesvioPadrao=desvios
)
return(resultados)
}
PIBmedio=MediaEDesvioPadrao(Tabela)
PIBmedio
## media DesvioPadrao
## 2003 3.703704 6.758598
## 2004 3.703704 6.598290
## 2005 3.703704 6.742848
## 2006 3.703704 6.738172
## 2007 3.703704 6.749814
## 2008 3.703704 6.604849
## 2009 3.703704 6.623542
## 2010 3.703704 6.537203
## 2011 3.703704 6.454113
## 2012 3.703704 6.385159
## 2013 3.703704 6.350154
## 2014 3.703704 6.323558
## 2015 3.703704 6.327600
## 2016 3.703704 6.326875
## 2017 3.703704 6.267552
## 2018 3.703704 6.181677
## 2019 3.703704 6.211307
## 2020 3.703704 6.080570
## 2021 3.703704 5.943463
O valor da média, naturalmente, é sempre o mesmo, uma vez que temos 27
valores que somados sempre resultam em 100, e então a média será a
divisão de 100 por 27. Contudo, observa-se um desvio-padrão
consideravelmente alto, de quase o dobro da média e somente abaixo de 6
em um ano, o de 2021. Tal resultado indica que há uma clara desigualdade
entre a produção econômica para os diferentes estados brasileiros, pois
temos estados que aparentemente variam muito do valor médio. ## Análise
gráfica dos dados do PIB
Agora que temos os dados em uma base de dados mais limpa e temos uma
ideia do comportamento dos valores, podemos fazer a análise por meio
gráfico, através de um gráfico de linhas, de um gráfico de barras ou até
mesmo de um mapa de calor para encontrar algumas observações acerca da
participação de cada estado no PIB nacional.
Para isso, iremos transformar nosso data-frame com os dados em um outro
dataframe mais vertical que seja melhor manipulável no R para a geração
dos gráficos de uma forma mais visual.
TransformarTabela=function(Tabela) {
Tabela=Tabela%>%tibble::rownames_to_column(var="Estado")
TabelaLonga=Tabela %>% pivot_longer(cols=-Estado,names_to="Ano",values_to="Valor")
return(TabelaLonga)
}
TabelaLonga=TransformarTabela(Tabela)
TabelaLonga
## # A tibble: 513 × 3
## Estado Ano Valor
## <chr> <chr> <dbl>
## 1 RO 2003 0.549
## 2 RO 2004 0.562
## 3 RO 2005 0.576
## 4 RO 2006 0.542
## 5 RO 2007 0.531
## 6 RO 2008 0.556
## 7 RO 2009 0.592
## 8 RO 2010 0.615
## 9 RO 2011 0.630
## 10 RO 2012 0.625
## # ℹ 503 more rows
Tendo o dataframe modificado, podemos começar pelo gráfico de linhas e
notar se é possível observar algum padrão.
CriarLinhas=function(dados,nome){
Grafico=plot_ly(data=dados,x=~Ano,y=~Valor,color=~Estado,type='scatter',mode='lines+markers')
Grafico=Grafico %>%
layout(title=nome,xaxis=list(title='',showticklabels=TRUE,showgrid=FALSE),yaxis=list(title='',showticklabels=TRUE,showgrid=FALSE))}
grafico=CriarLinhas(TabelaLonga,'Participação percentual de cada estado no PIB do Brasil, ano a ano')
grafico
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
Em uma observação inicial, já é possível observar um outlier
considerável que é o estado de São Paulo, que se distancia de todos os
outros estados e apresenta uma participação percentual de mais de 30% em
todos os anos, sendo o primeiro colocado em participação no PIB em
qualquer ano de observação.
Após São Paulo, temos o Rio de Janeiro como estado de destaque no
gráfico, com mais de 10% de participação no PIB em todos os anos e sendo
em todos os anos observados o segundo ano. Posteriormente, em terceiro
lugar, observa-se um pouco abaixo ao Rio de Janeiro o estado de Minas
Gerais, de modo que os três primeiros colocados em participação no PIB
são três estados da Região Sudeste. Observa-se a partir disso um claro
destaque da região na economia nacional.
Em sequência temos Paraná e Rio Grande do Sul, alternando entre si entre
a quarta e a quinta posições, mostrando a relevância da região Sul para
a produção econômica após o Sudeste.
Após esses 5 estados, observa-se um número considerável de estados muito
próximos, de modo que dificulta-se a observação e comparação entre eles,
sendo uma das falhas do gráfico de linhas nesa análise embora tenha a
vantagem de indicar o progresso temporal de cada estado.
A fim de termos tanto uma visualização de avanço temporal quanto um
posicionamento mais claro de cada estado, além do gráfico de linhas,
vamos gerar também um gráfico de barras com os mesmos dados e tentar
obter novos insights.
CriarBarras=function(dados) {
plot_ly(data=dados,x=~Estado,y=~Valor,type='bar',color=~Estado,frame=~Ano,ids=~Ano,marker=list(line=list(color='black',width=1))) %>%
layout(xaxis=list(title='',showticklabels=TRUE,showgrid=FALSE),
yaxis=list(title='',showticklabels=FALSE,showgrid=FALSE),
bargap=0,showlegend=TRUE) %>%
animation_opts(frame=1000,redraw=TRUE) %>%
animation_slider(currentvalue=list(prefix="Ano: "))}
figura=CriarBarras(TabelaLonga)
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
figura
Através do gráfico de barras ano a ano, observa-se o comportamento
uniforme já observado anteriormente no gráfico de linhas para diversos
estados que apresentam valores muito próximos.
Tomando o ano de 2021 como exemplo, existem 10 estados com percentuais
inferiores a 1% do PIB nacional. Acre, Amapá e Roraima sequer alcançaram
meio por cento.
Tal resultado apresenta uma clara desigualdade na produção de cada
estados, com diversos estados com PIB proporcionalmente baixo e poucos
estados com valores consideravelmente acima, em especial São Paulo que
equivale a aproximadamente aos 30% do PIB obserados anteriormente.
A fim de ter uma visão mais geográfica, é possível montar um mapa de
calor ano a ano com os dados e analisar seu comportamento.
geojson_url="https://raw.githubusercontent.com/codeforamerica/click_that_hood/master/public/data/brazil-states.geojson"
CriarMapa=function(data,titulo){
data=data%>%group_by(Ano,Estado)%>%summarise(Valor=sum(Valor,na.rm=TRUE),.groups='drop')
fig=plot_ly(type='choropleth',geojson=geojson_url,locations=data$Estado,z=data$Valor,colorscale='reds',colorbar=list(title='Valores'),featureidkey='properties.sigla',width=800,height=600)
steps=lapply(unique(data$Ano),function(ano){ano_data=data%>%filter(Ano==ano);list(args=list(list(locations=list(ano_data$Estado),z=list(ano_data$Valor))),label=as.character(ano),method="restyle")})
fig=fig%>%layout(title=titulo,geo=list(fitbounds="locations",visible=FALSE,projection=list(type="mercator"),bgcolor='lightblue'),sliders=list(list(active=0,steps=steps,transition=list(duration=300))))%>%config(displayModeBar=TRUE,responsive=TRUE)
return(fig)
}
mapa=CriarMapa(TabelaLonga,'Participação no PIB por estado')
mapa
Vemos através desse mapa uma clara discrepância principalmente entre o
eixo Sul-Sudeste e restante do Brasil. Enquanto temos um claro destaque
no estado de São Paulo e em sequência outros estados como Rio de Janeiro
e Rio Grande do Sul apresentando valores altos de participação no PIB,
tal comportamento não se observa no restante do país, com Norte,
Nordeste e Centro-Oeste indicando uma participação visivelmente menor no
PIB nacional.
O gráfico ano a ano apresenta também muita regularidade, mostrando que
esse comportamento tem se mantido estável ao longo dos anos, aínda que
São Paulo tenha reduzido um pouco sua participação no PIB nacional nos
últimos anos.
## Importando os dados do IDH
Feita a observação acerca da participação no PIB dos estados, vamos
agora passar para a análise do IDH.
Contudo, a plataforma do Atlas Brasil não disponibiliza o download dos
dados de um grupo de anos de uma vez, mas somente o download de um
arquivo para cada ano. Dessa forma, a fim de simplificar a obtenção de
dados, baixei externamente ao R os dados de cada ano de 2016 até 2021 no
mesmo formato de planilha do próprio Atlas Brasil e então a modificação
que fiz foi colocar em uma mesma planilha todos os dados, um em cada
tabela.
A escolha por esses anos ocorreu por serem os dados mais recentes que
possuo de forma contínua, pois não existem dados entre 2011 e
2015.
gs4_auth()
## ! Using an auto-discovered, cached token.
## To suppress this message, modify your code or options to clearly consent to
## the use of a cached token.
## See gargle's "Non-interactive auth" vignette for more details:
## <https://gargle.r-lib.org/articles/non-interactive-auth.html>
## ℹ The googlesheets4 package is using a cached token for
## 'danyel.yeshua@gmail.com'.
# Link to the Google Sheet
url <- "https://docs.google.com/spreadsheets/d/1TuJYWjrBMLonfEmPOS2qNdXQpW03XqTsCF49Q7lfrsQ/edit?usp=sharing"
# Get the sheet names (tabs)
abas <- sheet_names(url)
# Read each sheet
Tabelas <- lapply(abas, function(aba) {
read_sheet(url, sheet = aba)
})
## ✔ Reading from "IDH por Estados".
## ✔ Range ''2016''.
## ✔ Reading from "IDH por Estados".
## ✔ Range ''2017''.
## ✔ Reading from "IDH por Estados".
## ✔ Range ''2018''.
## ✔ Reading from "IDH por Estados".
## ✔ Range ''2019''.
## ✔ Reading from "IDH por Estados".
## ✔ Range ''2020''.
## ✔ Reading from "IDH por Estados".
## ✔ Range ''2021''.
# Extract the first column of the first sheet
Estados <- Tabelas[[1]][[1]]
# Create a data frame with row names as the states
IDH <- data.frame(row.names = Estados)
IDH
## data frame com 0 coluna e 27 linhas
Como pode-se observar, os dados não estão apresentados de uma forma
muito clara, necessitando uma limpeza de dados assim como no caso do
dataframe dos dados do PIB. Vamos, portanto, fazer uma limpeza dos
dados.
for(i in seq_along(abas)){
Nomes=Tabelas[[i]][[1]]
Valores=Tabelas[[i]][[3]]
vetor=numeric(length(Estados))
for (j in seq_along(Estados)){
linha=match(Estados[j], Nomes)
vetor[j]=Valores[linha]
}
IDH[[abas[i]]]=vetor
}
rownames(IDH)=recode(rownames(IDH),!!!Sigla)
IDH
## 2016 2017 2018 2019 2020 2021
## DF 0.847 0.842 0.845 0.859 0.829 0.814
## SP 0.835 0.831 0.837 0.845 0.823 0.806
## SC 0.814 0.817 0.819 0.826 0.803 0.792
## PR 0.797 0.797 0.805 0.807 0.787 0.769
## RJ 0.789 0.791 0.805 0.809 0.785 0.762
## RS 0.789 0.793 0.797 0.801 0.780 0.771
## ES 0.779 0.780 0.788 0.793 0.792 0.771
## MG 0.776 0.784 0.784 0.793 0.789 0.774
## MT 0.769 0.770 0.778 0.779 0.756 0.736
## GO 0.764 0.765 0.771 0.774 0.758 0.737
## MS 0.758 0.762 0.770 0.777 0.760 0.742
## RR 0.752 0.746 0.760 0.749 0.739 0.699
## TO 0.734 0.740 0.749 0.751 0.755 0.731
## AP 0.733 0.732 0.741 0.737 0.724 0.688
## RN 0.732 0.728 0.739 0.742 0.750 0.728
## PE 0.724 0.722 0.735 0.740 0.739 0.719
## AC 0.723 0.712 0.733 0.739 0.746 0.710
## CE 0.722 0.730 0.739 0.744 0.755 0.734
## RO 0.715 0.721 0.730 0.730 0.739 0.700
## AM 0.711 0.728 0.718 0.726 0.727 0.700
## BA 0.705 0.710 0.710 0.718 0.724 0.691
## PB 0.704 0.717 0.711 0.713 0.714 0.698
## SE 0.697 0.699 0.710 0.705 0.722 0.702
## PA 0.687 0.694 0.707 0.704 0.719 0.690
## PI 0.685 0.694 0.699 0.706 0.708 0.690
## MA 0.680 0.685 0.686 0.694 0.699 0.676
## AL 0.680 0.679 0.689 0.687 0.694 0.684
Tendo os daodos, podemos novamente encontrar a média e o desvio padrão e
encontrar medidas mais gerais da esperança dos valores e de sua
dispersão.
IDHmedio=MediaEDesvioPadrao(IDH)
IDHmedio
## media DesvioPadrao
## 2016 0.7444815 0.04725086
## 2017 0.7470000 0.04537875
## 2018 0.7538889 0.04505581
## 2019 0.7573333 0.04700573
## 2020 0.7524444 0.03618790
## 2021 0.7301481 0.03989188
Como pode-se observar, o Brasil possui um IDH médio por estado de
aproximadamente 0,75, o que é um IDH considerado alto para o PNUD, de
modo que um país com esse valor estaria por volta da posição 90 a 100 no
Ranking
global de países por IDH, sendo que a real posição do Brasil segundo
os dados mais recentes que são de 2022 o posicionam no 89º lugar,
indicando que o IDH real do país localiza-se próximo ao IDH médio de
seus estados.
Contudo, o desvuio padrão, ainda que baixo, entre 4,8% e 4%, indica uma
certa divergência para os valores a depender de cada estado analisado e
indicando uma substancial divergência entre os estados do país.
## Análise gráfica dos dados do IDH
Feita essa checagem inicial, podemos realizar a mesma análise gráfica
que foi possível anteriormente mas para os dados de IDH. Seguiremos a
mesma ordem iniciando pelo gráfico de linhas, seguido pelo de barras e
depois pelo mapa de calor.
IDHLongo=TransformarTabela(IDH)
IDHLongo
## # A tibble: 162 × 3
## Estado Ano Valor
## <chr> <chr> <dbl>
## 1 DF 2016 0.847
## 2 DF 2017 0.842
## 3 DF 2018 0.845
## 4 DF 2019 0.859
## 5 DF 2020 0.829
## 6 DF 2021 0.814
## 7 SP 2016 0.835
## 8 SP 2017 0.831
## 9 SP 2018 0.837
## 10 SP 2019 0.845
## # ℹ 152 more rows
Grafico=CriarLinhas(IDHLongo,"IDH de cada estado ano a ano")
Grafico
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
Figura=CriarBarras(IDHLongo)
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
## Warning in RColorBrewer::brewer.pal(N, "Set2"): n too large, allowed maximum for palette Set2 is 8
## Returning the palette you asked for with that many colors
Figura
Mapa=CriarMapa(IDHLongo,'IDH por estado')
Mapa
Um ponto que se observa já de início é que a discrepância observada
em relação à participação do PIB não se observa nesse caso. Enquanto em
PIB temos São Paulo acima de todos os estados e com uma margem de
diferença considerável, no IDH há uma maior uniformidade, e com o
Distrito Federal em primeiro.
Contudo, após o DF, observa-se ainda São Paulo como segundo colocado em
IDH no Brasil, ambos com valores muito próximos a 0,85, exceto nos anos
de 2020 e 2021. Depois, observamos Santa Catarina, Minas Gerais e o Rio
Grande do Sul fechando os 5 primeiros estados brasileiros em IDH. O
destaque se dá ao Rio de Janeiro, segundo colocado em participação no
PIB nacional mas somente o oitavo em IDH, atrás do Espírito Santo e do
Paraná.
Observa-se em todos os estados uma redução nos anos já citados de 2020 e
2021. Isso pode ser justificado pela pandemia de covid-19 e seus
impactos na saúde, educação e principalmente economia, três variáveis de
desenvolvimento mensuradas no IDH.
Por fim, ainda que se observe ainda uma superioridade do eixo
sul-sudeste em relação ao IDH assim como se observou em relação ao PIB,
essa diferença é menos evidente nesse caso, tendo por exemplo o
centro-oeste sendo uma espécie de meio-termo entre os estados do Sul e
Sudeste e os estados do Norte e Nordeste.
## Análise de dispersão entre os valores observados
Agora que temos os dados das duas bases, podemos fazer uma análise
comparativa mais detalhada entre elas através de gráficos de dispersão e
do cálculo da correlação.
Contudo, como os dados do IDH são limitados a 2016, precisaremos fazer
um recorte na base de dados da participação no PIB para gerar os
gráficos.
Tabela=Tabela[, -c(1:13)]
Tabela
## 2016 2017 2018 2019 2020 2021
## RO 0.6294193 0.6607894 0.6412489 0.6373055 0.6780746 0.6454636
## AC 0.2193894 0.2167335 0.2188865 0.2115271 0.2165209 0.2371738
## AM 1.4202444 1.4158452 1.4292864 1.4640570 1.5246424 1.4594870
## RR 0.1756685 0.1838091 0.1908869 0.1934223 0.2105798 0.2019784
## PA 2.2029078 2.3571923 2.3036316 2.4140455 2.8376746 2.9172308
## AP 0.2287667 0.2350916 0.2397897 0.2367892 0.2427082 0.2230308
## TO 0.5037991 0.5179294 0.5092157 0.5326193 0.5736152 0.5745667
## MA 1.3607525 1.3597000 1.4017350 1.3173395 1.4050148 1.3868037
## PI 0.6606280 0.6888723 0.7192662 0.7143030 0.7410544 0.7104671
## CE 2.2079323 2.2461773 2.2258807 2.2137289 2.1934741 2.1624693
## RN 0.9518945 0.9764817 0.9561424 0.9654285 0.9406163 0.8896967
## PB 0.9427610 0.9474903 0.9190791 0.9200821 0.9237287 0.8596217
## PE 2.6692658 2.7577265 2.6605971 2.6776272 2.5403095 2.4501780
## AL 0.7890597 0.8025394 0.7768697 0.7979792 0.8305611 0.8462541
## SE 0.6201213 0.6182008 0.5999020 0.6048003 0.5967419 0.5754614
## BA 4.1270607 4.0805550 4.0867187 3.9685384 4.0123125 3.9126975
## MG 8.6900936 8.7522190 8.7787470 8.8220480 8.9726975 9.5159754
## ES 1.7428411 1.7219695 1.9562721 1.8587517 1.8193595 2.0676162
## RJ 10.2148301 10.1982812 10.8344342 10.5550696 9.9062238 10.5335754
## SP 32.5195520 32.2036049 31.5607860 31.7809767 31.2452680 30.1787436
## PR 6.4092063 6.4004132 6.2824178 6.3116629 6.4120425 6.1025787
## SC 4.0954097 4.2103275 4.2578682 4.3748562 4.5899279 4.7554831
## RS 6.5204680 6.4273236 6.5289085 6.5293764 6.1887883 6.4500058
## MS 1.4657438 1.4637725 1.5272271 1.4473048 1.6114878 1.5779131
## MT 1.9759741 1.9261454 1.9623085 1.9233930 2.3476876 2.5897306
## GO 2.8991880 2.9147204 2.7938005 2.8240465 2.9453086 2.9918290
## DF 3.7570222 3.7160888 3.6380936 3.7029214 3.4935797 3.1839687
CriarPontos=function(col) {
idx=rownames(Tabela)
df=data.frame(
x=Tabela[[col]],y=IDH[idx,col],row.names=idx
)
list(
grafico=plot_ly(df,x= ~x,y= ~y) %>%
add_trace(type='scatter',mode='markers',text=rownames(df),hoverinfo='text',marker=list(color='blue')) %>%
add_trace(y=predict(lm(y~x,df),newdata=df),type='scatter',mode='lines',line=list(color='red')) %>%
layout(
title='Dispersão entre IDH e participação no PIB',xaxis=list(title='Participação no PIB',showgrid=FALSE),yaxis=list(title='IDH',showgrid=FALSE),showlegend=FALSE
),
correlacao=cor(df$x,df$y)
)
}
Resultado2015=CriarPontos(1)
Resultado2015$grafico
Resultado2021=CriarPontos(6)
Resultado2021$grafico
Gerados os gráficos de 2015 e 2021, é possível notar que o comportamento
é consideravelmente similar. Como esperado pela alta quantidade de
estados com PIB proporcionalmente menor, há muitos pontos próximos ao
eixo vertical. São Paulo se mostra como um ponto muito distante dos
outros pela proporção do PIB.
A linha de tendência é positivamente inclinada, refletindo uma
correlação entre riqueza e desenvolvimento humano.
É possíve encontrar a correlação para cada ano e então encontrar a média
e o desvio padrão entre eles como forma de observar o comportamento
entre os dados.
Analise=numeric(6)
for (i in 1:6) {
Analise[i] <- CriarPontos(i)$correlacao
}
Analise
## [1] 0.5693438 0.5710206 0.5699722 0.5801345 0.5851633 0.5971801
resultados=c(mean(Analise),sd(Analise))
resultados
## [1] 0.57880240 0.01102698
Como pode-se observar, á média é de aproximadamente 0,57 e o
desvio-padrão de aproximadamente 1,1%. Com isso, nota-se que ainda que
não seja uma associação plena de que riqueza gera desenvolvimento
humano, é possível sim observar uma correlação entre tais variáveis, e
dado o baixo desvio padrão, esse comportamento tende a se manter
estável, sem sofrer grandes variações mesmo com choques como a crise
econômica em 2016 e a pandemia de covid-19.
Portanto, conclui-se que no caso nacional não há uma relação de
causalidade plena, porém existe ainda sim uma clara correlação entre a
riqueza dos estados nacionais e a qualidade de vida em cada um
deles.