indicators

Gráficos Covid-19

Gráficos Covid-19

1. Dashboard online interativo para comparação de Cidades, Estados e Países:

https://ascoisas.shinyapps.io/covid_dashboard/

2. Outros gráficos de Cidades, Estados e Países:

https://ascoisas.shinyapps.io/covid_ascoisas/

2.1 Gráfico conjunto de média móvel de casos e mortes de Cidades, Estados e Países

Plot object

https://ascoisas.shinyapps.io/covid_ascoisas/

2. 2 Evolução semana a semana

Ajustes de projeções exponenciais para períodos superpostos de 9(1+7+1) dias da média móvel de casos e mortes diárias. Números indicam o coef.(%) de crescimento diário

https://ascoisas.shinyapps.io/covid_ascoisas/

2. 3 Covid-19: Mortes Diárias com expectativa por dia da semana

Covid-19: Mortes Diárias com expectativa por dia da semana

3. Tutorial Interativo sobre Crescimento, Correlação e Causalidade e explicação de gráficos em log:

https://ascoisas.shinyapps.io/covid_tutorial/

4. Gráfico de Cobertura de Vacinação

Gráfico de Cobertura de Vacinação

5. Dados:

Brasil: @Brasil_io

Demais Países: @jhusystems

6. Histórico

Entre Março de 2020 e Junho de 2021 os gráficos e painéis estiveram generosamente hospedados pelo:

NBCGIB/CCAM/PPGMC/UESC
Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas,Centro de Computação Avançada e Modelagem,
Programa de Pós-Graduação em Modelagem Computacional em Ciência e Tecnologia
Universidade Estadual de Santa Cruz
Bahia, Brasil.

Posted by Roberto de Pinho in indicators, Português, R, the world, 0 comments
Gráfico de Cobertura de Vacinação

Gráfico de Cobertura de Vacinação

No gráfico acima, cada ponto representa um país. O tamanho do círculo externo em preto representa a sua população total. O círculo interno, colorido, representa a população vacinada (que recebeu ao menos uma dose), em números absolutos.

A fonte dos dados é o Our World in Data. Nesta fonte, nem todos os países possuem do dado da população vacinada, apenas do número de doses administradas. Nestes casos, regressão linear entre a razão de vacinas e população e, respectivamente, a população vacinada com ao menos uma dose e a população com vacinação completa é utilizada para estimativa. São utilizados os dados do último dia disponível de cada país. Exibidos apenas países com mais de 1 milhão de habitantes.

Gráficos postados diariamente no Twitter em @robertodepinho

Outros gráficos disponíveis em: Gráficos Covid-19

Código em R*:



vaccminder <- function(lang = "pt"){
  
  #column selection
  selected_columns = c("iso_code", "location" ,"continent", "date", "population","total_vaccinations", "people_fully_vaccinated", "people_vaccinated")
  
  #read data
  df = read.csv("https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/owid-covid-data.csv", stringsAsFactors = F)
  df = subset(df, !is.na(total_vaccinations))
  
  #keep only last day for each country
  last_date = aggregate(date ~ iso_code, df, max)
  colnames(last_date)[2] = "last_date" 
  df = merge(df, last_date, by = "iso_code", all.x = T)
  df_ld = df[df$date == df$last_date, selected_columns]  
  
  #calculation
  df_ld$people_vacc_ratio = df_ld$people_vaccinated / df_ld$total_vaccinations
  median_ratio = median(df_ld$people_vacc_ratio, na.rm=T)
  
  df_ld$people_fully_vacc_ratio = df_ld$people_fully_vaccinated / df_ld$total_vaccinations
  median_ratio_fully = median(df_ld$people_fully_vacc_ratio, na.rm=T)
  
  
  df_ld$people_vaccinated_est = ifelse(!is.na(df_ld$people_vaccinated), 
                                       df_ld$people_vaccinated, 
                                       df_ld$total_vaccinations * median_ratio)

  df_ld$people_fully_vaccinated_est = ifelse(!is.na(df_ld$people_fully_vaccinated), 
                                             df_ld$people_fully_vaccinated, 
                                             df_ld$total_vaccinations * median_ratio_fully)
  
    
  df_ld$non_vacc = df_ld$population - df_ld$people_vaccinated_est
  df_ld$people_vaccinated_per_hundred = df_ld$people_vaccinated_est / df_ld$population * 100 
  df_ld$people_fully_vaccinated_per_hundred = df_ld$people_fully_vaccinated_est / df_ld$population * 100 
  
  #translation list & df
  translation <- list(
       "title" = list("en" = "Vaccination Coverage", "pt"="Cobertura da Vacinação"),
       "people_1M" = list("en" = "People (millions)", "pt"="Pessoas (Milhões)"),
       "continent" = list("en" = "Continent", "pt"="Continente"),
       "vacc" = list("en" = "Vaccinated", "pt"="Vacinada"),
       "tot" = list("en" = "Total", "pt"="Total"),
       "pop" = list("en" = "Population", "pt"="População"),
       
       "vacc_100" = list("en" = "People vaccinated per hundred", "pt"="Pessoas vacinadas a cada 100"),
       "vacc_full_100" = list("en" = "People fully vaccinated per hundred", "pt"="Pessoas completamente vacinadas a cada 100")
  )
  
  continents = data.frame(continent = c("Asia", "Africa", "Europe", "South America", "Oceania", "North America"), 
                          continent_pt = c("Ásia", "África", "Europa", "América do Sul", "Oceania", "América do Norte"))
    
  #translate country names
  library(countrycode)
  df_ld$country_name = countrycode(df_ld$iso_code, origin = "iso3c", destination = paste("cldr.name.", lang, sep=""))
  df_ld = merge(df_ld, continents, by = "continent", all.x = T )
  if(lang == "en"){
    df_ld$continent_name =  df_ld$continent
    
  } else {
    df_ld$continent_name = df_ld$continent_pt
  }
  
  #chart
  library(ggplot2)
  library(scales)
  library(ggrepel)
  source("src/theme_black.R")
  
  #select chart data
  dfw = df_ld
  dfw = dfw[ substr(dfw$iso_code, 1,4) != "OWID",]
  dfw = dfw[ dfw$population> 10^6,]
  
  covidPlot = ggplot(data=dfw) 
  covidPlot = covidPlot  + ggtitle(translation[["title"]][[lang]])
  covidPlot = covidPlot + aes(x=people_vaccinated_per_hundred, y=people_fully_vaccinated_per_hundred, size = population/10^6, 
                              label = country_name)
  
  covidPlot = covidPlot  + annotate("text", label = "@robertodepinho", color= "grey50",
                                    x = 100, y = 0, vjust=0.1, hjust=1.1)
  
  covidPlot = covidPlot  + geom_point(aes(size=people_vaccinated_est/10^6, color = continent_name, shape = "vacc"), alpha = 1.0) 
  covidPlot = covidPlot  + geom_point(color="black", alpha = 1.0, aes(shape="pop") ) 
  
  covidPlot = covidPlot + geom_text_repel(hjust=-.2, vjust=.5, size=2.7) 
  
  covidPlot = covidPlot  +  theme_jf_2()
  covidPlot = covidPlot  + scale_size_continuous(name = translation[["people_1M"]][[lang]], 
                                                 range =c(1,20), 
                                                 limits=c(0,max(dfw$population/10^6)) )
  covidPlot = covidPlot  + scale_color_discrete(name = translation[["continent"]][[lang]])
  covidPlot = covidPlot  + guides(color = guide_legend(override.aes = list(size = 10)))
  
  covidPlot = covidPlot  + scale_shape_manual(name = translation[["pop"]][[lang]], 
                              labels = c(translation[["vacc"]][[lang]], translation[["tot"]][[lang]]),
                              values = c(16,1),
                              breaks = c("vacc", "pop"))
  covidPlot = covidPlot  + guides(shape = guide_legend(override.aes = list(size = 10)))
  
  covidPlot = covidPlot  + scale_x_continuous(labels =  label_comma())
  covidPlot = covidPlot  + scale_y_continuous(labels =  label_comma())
  covidPlot = covidPlot  + xlab(translation[["vacc_100"]][[lang]]) + ylab(translation[["vacc_full_100"]][[lang]])  
  covidPlot = covidPlot  + theme(legend.position =  "bottom") 
  
  return(covidPlot)
  
  
}

* Versão inicial. Nesta versão, a população vacinada com ao menos uma dose e a população com vacinação completa é estimada com base nas respectivas medianas da relação entre doses aplicadas e população coberta observada nos demais países.

Posted by Roberto de Pinho in indicators, Português, the world, 0 comments

A média, a mediana e a divisão do PIB (Parte II)

Publicado originalmente, em versão reduzida, como post convidado no blog On The Rocks @ Yahoo! Brasil de Walter Hupsel. Continuação de A média, a mediana e a divisão do PIB (Parte I)

Versão em Inglês / English version here

Prefácio

 

Na continuação do guest post de Roberto Pinho, o autor demonstra o porquê do PIB per capita não ser uma boa medida quando tratamos do coeficiente de GINI, que visa aferir, justamente a desigualdade social.

Walter Hupsel

A média, a mediana e a divisão do PIB – Parte II

Com aritmética simples, o índice de GINI possibilita a conversão do PIB per capita em PIB mediano, assumindo que a renda segue uma distribuição de Pareto. Por exemplo, o PIB per capita da Namíbia em 2011 era de USD 6.326 1, no entanto, levando em consideração seu GINI de 0,64, o PIB mediano é de apenas USD 2.392. Uma grande diferença.

A equação que fornece o PIB mediano, que talvez devesse ser chamado mais apropriadamente de  PIB per capita ajustado pelo GINI, é:

(1)   \begin{equation*}  PIBmediano = \frac{\sqrt[\alpha]{2} \times (\alpha-1)}{\alpha}\times PIB \textit{ per capita}\text{, onde } \alpha = \frac{1}{2\times GINI}+\frac{1}{2} \end{equation*}

Se você tolerar um erro de aproximadamente 6% em relação ao que é esperado dada uma distribuição de Pareto, você pode simplesmente utilizar (1- GINI)\times PIB \textit{ per capita}.

Agora vamos considerar a Ucrânia, com um PIB per capita equivalente ao da Namíbia em 2011, USD 6.365. A Ucrânia tem um índice de GINI muito melhor, 0,26. Assim, o seu PIB mediano fica em torno de USD 5.000, mais de duas vezes o calculado para a Namíbia. Esta diferença é muito mais consistente com a avaliação destes dois países segundo o índice de Desenvolvimento Humano (IDH), utilizado pela ONU, que coloca a Ucrânia e Namíbia, respectivamente, nas categorias de alto e de médio desenvolvimento humano. A análise isolada do PIB per capita dos dois sugeriria que eles estivessem empatados na mesma posição e categoria.

chart_1
Curvas de densidade de probabilidade para dados simulados com o mesmo PIB per capita como média mas com diferentes índices de GINI. Em escala log.

O PIB mediano pode também fornecer uma perspectiva mais rica sobre a evolução do PIB de um país e seu impacto sobre a população. Os EUA viram o seu PIB per capita crescer 74% entre 1980 e 2012, enquanto que o seu PIB mediano ou mPIB cresceu menos: 52%2. Olhando o período entre 2007 e 2012, período que inclui a Grande Recessão, o cenário é de recuperação total se olharmos o PIB per capita. No entanto, o mPIB registra uma retração de quase 3% no mesmo período. Sim, houve melhoria em relação ao pior momento da crise, registrado em 2009, mas também não há recuperação total da economia como indica o PIB per capita.

chart_2
Evolução do PIB per capita e PIB mediano para os EUA utilizando os valores de 2007 como índices (=100).

Como ocorre com qualquer indicador, o PIB mediano tem as suas limitações. O índice de GINI, necessário ao cálculo, tem menor disponibilidade que o PIB per capita. Às vezes apenas disponível em intervalos de 10 anos. No entanto, alguns procedimentos podem ser adotados para minimizar este problema. Uma vez que o GINI flutua menos entre anos para um país do que entre países em um ano, usar o dado do último ano disponível pode produzir melhores comparações entre países que o simples PIB per capita. Sua adoção certamente requer algum trabalho para melhorar a disponibilidade, qualidade e comparabilidade, um desafio constante mesmo para o sempre presente PIB, como defendido recentemente por Bill Gates.

Todos nós que vivemos trabalhando com estatísticas sabemos que elas podem tornar-se uma influência adversa no desenho de políticas. Quando focamos no PIB per capita, estamos levando em consideração uma pessoa não existente, focando em uma medida que pode melhorar independentemente do que ocorre com grande parte da população. Nós deveríamos focar numa medida capaz de melhor refletir a realidade de um indivíduo bem real, ainda que anônimo, encontrado bem no centro da distribuição dos seus pares. Se começarmos a ver esta medida na home page do Banco Mundial, brilhantemente promovida no Gapminder do Hans Roslings, ou talvez na página principal do Yahoo, talvez possamos ajudar a redefinir progresso econômico em termos que realmente significam progresso para a nossa população.

Agradeço os comentários e sugestões recebidos de Andre Luchine, Beto Boullosa, Camilo Telles, Eduardo Viotti, Emilia Spitz, Joniel da Silva, Leonardo Fialho, René Dvorak, Vini Pitta and Walter Hupsel.

1. Ao não ser se indicado diferentemente, todos os valores foram obtidos no site World Development Indicators, acesso em 31 de Dezembro de 2013. Indicators: GDP per capita, PPP (constant 2005 international $): NY.GDP.PCAP.PP.KD; GINI:SI.POV.GINI, latest available year.

2. GINI data for the USA from FRED: http://research.stlouisfed.org/fred2/series/GINIALLRH , not compatible with WDI data;

Alguns dos Scripts R usados pra produzir este texto:

Posted by Roberto de Pinho in indicators, mGDP, Português, the world, 0 comments

A média, a mediana e a divisão do PIB (Parte I)

Publicado originalmente como post convidado  no blog On The Rocks @ Yahoo! Brasil de Walter Hupsel.

Versão em Inglês / English version here

Prefácio

 

Um velho chavão deve ter sua validade. Dizem que a estatística é a arte de torcer (e distorcer) os números até que estes afirmem o que nós queremos. Para uma melhor aferição de políticas públicas, é necessário calibrar os instrumentos de mensuração, debatê-los, para que nossas variáveis e índices sirvam para descrever o fenômeno, e não distorcê-lo. Por esta razão, abro espaço para um guest post, de um amigo que se debruça fortemente sobre o tema.

Se queremos medir ação, eficácia, precisamos de instrumentos que nos possibilitem esta mensuração. Instrumentos errados nos dão diagnósticos falsos, e assim falseiam a realidade.

Walter Hupsel

A média, a mediana e a divisão do PIB

 

O Produto Interno Bruto (PIB) per capita1 é um indicador simples e eficiente, calculado por uma simples divisão do PIB pela população. Ele é usado correta e elegantemente em muitas ocasiões.

No entanto, o PIB per capita não tem como fugir ao fato de que se trata de uma média aritmética com suas inerentes limitações. A média aplicada ao PIB tem um efeito direto: ela mascara os efeitos da desigualdade na economia.

Mas, temos alternativas?

O índice de GINI tem se firmado como padrão de fato para aferir a desigualdade de renda dos países. Ele mede o quanto a distribuição da rede desvia-se de uma divisão equânime: valor de 0 para o GINI significa uma sociedade absolutamente igualitária, onde todos ganhassem exatamente o mesmo. Valor de 1 indicaria que toda a renda do país teria sido ganha por um único indivíduo.

No mundo real, o índice de GINI varia entre 0,20 (melhor distribuição) para países como a Dinamarca ou Bielorrússia até mais de 0,60 para sociedades muito desiguais, como Namíbia ou Botswana. O valor para o Brasil é de 0,552.

Está na hora de considerarmos uma alternativa ao PIB per capita: o PIB mediano. Essa nova medida, uma composição de PIB e GINI, é capaz de melhor refletir simultaneamente mudanças no volume de produção da economia e tendências na distribuição de renda, sem deixar de permitir a comparação entre países com populações de tamanhos distintos.

Enquanto a média é a soma de todos os valores de um conjunto dividido pelo número de elementos do conjunto, a mediana representa o valor encontrado no meio do conjunto, que o divide em duas partes: metade são maiores que mediana, metade são menores.

Médias são influenciadas por valores extremos, medianas não. Em um exemplo clássico, um aumento no salário do funcionário mais bem pago altera a média salarial, enquanto a mediana não se alteraria. Mover a mediana requer que ao menos aqueles que não são nem os mais ricos nem os mais pobres tenham reajustes no seu salário. Para a divisão do PIB, significa dizer que a mediana reflete melhor a realidade do cidadão ou cidadã típico.

Uma política que tenha como fundamento o crescimento da economia a qualquer custo [humano] tem amparo no PIB per capita, que cresce ainda que alguns poucos melhorem. O PIB mediano já não [se] deixa enganar tão facilmente.

 

Continua em A média, a mediana e a divisão do PIB (Parte II)

 

 Agradeço os comentários e sugestões recebidos de Andre Luchine, Beto Boullosa, Camilo Telles, Eduardo Viotti, Emilia Spitz, Joniel da Silva, Leonardo Fialho, René Dvorak, Vini Pitta and Walter Hupsel.

1. Este texto poderia igualmente discutir PNB per capital. PIB per capita foi escolhido por ser de mais amplo uso;
2. Ao não ser se indicado diferentemente, todos os valores foram obtidos no site World Development Indicators, acesso em 31 de Dezembro de 2013. Indicadores: GDP per capita, PPP (constant 2005 international $): NY.GDP.PCAP.PP.KD; GINI:SI.POV.GINI, último ano disponível.

Posted by Roberto de Pinho in indicators, mGDP, Português, the world, 0 comments

Montando uma rede com os Objetivos do Desenvolvimento Sustentável

Pequeno post para compartilhar arquivos de nós e ligações para os Objetivos de Desenvolvimento Sustentável, sua metas e indicadores.
Agradeço a indicação de quaisquer erros.

Arquivos:
CSV:
ODS.nodes.csv
ODS.links.csv
R:
ODS.nodes.links.RData

Visualização feita com os arquivos (use o scroll do mouse para zoom):

Posted by Roberto de Pinho in indicators, Português, SDGs, the world, 0 comments