R

Saudades da culinária japonesa na pandemia? R neles!

Isolamento social e R: o que poderia dar errado?

Testei o pacote ARDL com dados de busca (abrangência mundial) pelos seguintes termos: LamenGyozaokonomiyakisunomono. O gráfico, ainda com alguns problemas no eixo (não tive tempo de ajustar as datas, mas o período é: 2004.01-2020.06), mas eis a cointegração.

lamensunomonogyozaokonomiyaki

Ah, sim, o código para obter a relação de cointegração – e outros detalhes – são uma mera adaptação do código original do exemplo do autor do pacote.

library(ARDL)
df<-read.table("C:/Users/cdshi/OneDrive/Documents/Meus Documentos/sunomono.csv",
               header=TRUE, sep=",",na.strings="NA", dec=".", strip.white=TRUE)

models <- auto_ardl(Lamen~Gyoza+sunomono+okonomiyaki, data=df, max_order=4)
models$top_orders
models$best_model
ardl_1402<-models$best_model
summary(ardl_1402)

uecm_1402 <- uecm(ardl_1402)
summary(uecm_1402)

bounds_f_test(ardl_1402, case = 2)

tbounds <- bounds_t_test(uecm_1402, case = 3, alpha = 0.01)
tbounds

tbounds$tab

multipliers(ardl_1402)

ce <- coint_eq(ardl_1402, case = 2)

 

pandemia · R

Dica R do Dia: Lei de Zipf e o Covid-19 (updated)

Um exercicío em R com os dados deste pessoal. O ranking foi construído com base no número de casos confirmados (normalizado por 100 mil habitantes).

Explicando: a cada dia faço o download da planilha. Por exemplo, para o dia 29-03-2020 eu uso o arquivo .csv para gerar o “old3”. Em seguida, tiro o que for “Importados/Indefinidos” e fico apenas com as cidades (“city”). Crio o ranking e estimo a equação de Zipf. No código abaixo, o que fiz para os dias 29 e 30.

library(dplyr)

old3<-read.table("C:/Users/cdshi/OneDrive/Documents/Meus Documentos/covid19-29-03.csv",
header=TRUE, sep=",",na.strings="NA", dec=".", strip.white=TRUE)

old3<-subset(old3, old3$city!="Importados/Indefinidos")

old3<-subset(old3, place_type=="city",
select = c(confirmed_per_100k_inhabitants))

old3 %
mutate(rank = 1:nrow(old3))

m1<- lm(log(old3$rank)~log(old3$confirmed_per_100k_inhabitants))

old2<-read.table("C:/Users/cdshi/OneDrive/Documents/Meus Documentos/covid19-30-03.csv",
header=TRUE, sep=",",na.strings="NA", dec=".", strip.white=TRUE)

old2<-subset(old2, old2$city!="Importados/Indefinidos")
old2<-subset(old2, place_type=="city",
select = c(confirmed_per_100k_inhabitants))

old2 %
mutate(rank = 1:nrow(old2))

m2<-lm(log(old2$rank)~log(old2$confirmed_per_100k_inhabitants))

Assim, até os dados de 07/04 05/04, estimei o mesmo modelo. A tabela, não tão bonita, está aí embaixo (clique para ampliar).

covid_zipf_corrigido

Vale destacar que os nomes das cidades têm problemas com caracteres especiais nos dias 29 e 30 de março. Como fiz meu exercício a partir do dia 01 de abril em diante, estes dois dias foram tentativas de checar os dados anteriores.

O que é curioso é o número de observações no dia 29 de março: 267. Dali em diante, os números vão numa crescente (143 a 230). Parece ser algum problema com a base de dados (seria, por exemplo, por conta da população? Ou os dados teriam sido revisados? Talvez eu não tenha visto algo na base).

Assim, parece fazer sentido observar os dados a partir do dia 30/03 em diante. O que se observa é que o coeficiente de Zipf (teoricamente, “-1”) é razoavelmente constante em “-0.8”.

Note que não tenho a menor pretensão de prever nada – nem acha(ta)r alguma curva de infectados. Minha curiosidade é apenas saber se o número de casos reportados diariamente (normalizados por 100 mil habitantes) segue a lei de Zipf.

Uma interpretação desta estimação pode ser a seguinte: o aumento de 1% no número de confirmados por 100 mil habitantes faz com que a posição do município no ranking suba em 0.8%, em média.

Finalmente, acho ótimo o esforço do pessoal que tem coletado estes dados e espero atualizar minhas estimações diariamente (se nada der errado, claro).

R

O mundo está ficando mais racional. E o Brasil? (Dica R do dia/Momento R do dia)

“Racional”, no sentido do autor deste texto. Ok, é só um post. Mas resolvi traduzir os termos (quase todos) e incluir um outro e ver se a busca no google por palavras-chave associadas a estas maluquices diminuiu ao longo do tempo.

Os resultados falam por si. Veja as imagens. Observo que: (a) o terraplanismo segue a mesma tendência de seu equivalente em inglês do post original e (b) os reptilianos, que não estavam no original, tiveram um curioso pico há alguns anos (a propósito, quem assistiu Iron Sky e sua continuação devem ter adorado a participação dos reptilianos no filme).

queimadas · R

Queimadas e Quebras Estruturais

Meu amigo Cristiano Oliveira, da FURG, fez um ótimo texto sobre as queimadas usando boa econometria na rede social que não mais uso. Podemos aproveitar sua análise para brincar um pouco com o R.

Primeiro, é possível ver que os dados apresentam sazonalidade marcante.

Rplot01

As médias sazonais?

sazon

Como qualquer um pode perceber, as queimadas aumentam sempre no mês de Setembro. Dito isso, algo displicentemente, busquei quebras endógenas na série. Eis o que encontrei.Rplot

O algoritmo encontrou duas quebras estruturais na série (pensando em termos de média), mas os intervalos de confiança não me inspiram confiança. As quebras seriam algo como Junho de 2002 e Agosto de 2007 seriam as supostas quebras.

Contudo, buscar quebras estruturais em séries sazonais não é algo trivial como aponta este artigo e este pequeno post.

A propósito, agradeço ao Cristiano pelo ótimo post. É inspirador ver meus colegas ajudando na melhoria da qualidade do debate público.