R Markdown

bd=read.csv("C:\\Users\\gabri\\Downloads\\dados-abertos (1).csv",sep=";",header=TRUE)
# baixar mais atual em https://covid19.ssp.df.gov.br/resources/dados/dados-abertos.csv?param=[random]

#obs: algumas colunas foram codificadas como números por conterem caracteres especiais
dados=data.frame(primeirossintomas=as.Date(bd$dataPrimeirosintomas,tryFormats="%d/%m/%Y"),
                 sexo=as.factor(bd$Sexo),
                 obito=as.factor(bd[,7]),
                 idade=bd$Idade,
                 pneumopatia=as.factor(bd$Pneumopatia),
                 nefropatia=as.factor(bd$Nefropatia),
                 hemato=as.factor(bd[,12]),
                 metabo=as.factor(bd[,13]),
                 imunoss=as.factor(bd[,14]),
                 obesidade=as.factor(bd$Obesidade),
                 cardiovascular=as.factor(bd$Cardiovasculopatia))

dados$datap=as.POSIXct(dados$primeirossintomas)
dados$datac=cut(dados$datap,breaks="4 weeks")
bins=length(levels(dados$datac))

n=0
obitos=0
bin=""
for(i in c(1:bins)){
  bin[i]=levels(dados$datac)[i]
  n[i]=sum(dados$datac==levels(dados$datac)[i])
  obitos[i]=sum(dados$datac==levels(dados$datac)[i] & dados$obito=="Sim")
  n
}
rr=obitos/n

tabela=data.frame(periodo=bin,n=n,obito=obitos,rr=rr)
tabela$periodo=as.Date(tabela$periodo)

# Cortar extremos (elimiar o período muito recente (não deu tempo de haver mortes) e o período inicial (latência))
tabela=subset(tabela,tabela$obito>20)
tabela
##       periodo     n obito         rr
## 4  2020-03-23  1781    38 0.02133633
## 5  2020-04-20  8207   211 0.02570976
## 6  2020-05-18 32729   642 0.01961563
## 7  2020-06-15 48615   993 0.02042579
## 8  2020-07-13 52042   958 0.01840821
## 9  2020-08-10 38484   584 0.01517514
## 10 2020-09-07 21960   327 0.01489071
## 11 2020-10-05 16447   224 0.01361951
## 12 2020-11-02 17785   203 0.01141411
## 13 2020-11-30 21362   306 0.01432450
## 14 2020-12-28 19696   257 0.01304833
## 15 2021-01-25 15190   163 0.01073074
pbayes = function(n=52042,x=958){
th = seq(0.015,0.022,length=500)
a = 1
b = 1
post = dbeta(th,x+a,n-x+b)
plot(th,post,type="l",ylab="Density",lty=2,lwd=3,xlab = expression(theta),main="p(obito) até hoje")
}
pbayes()

ggplot(tabela, aes(x=periodo,y=rr))+geom_smooth(formula=y~x,method="loess")+scale_x_date(date_labels = "%b/%Y") + ggtitle("Modelo LOESS da mortalidade por COVID-19 no DF até 05-03-2020\n(para ver código da análise dos dados abertos: www.rpubs.com/gabrielmng")

library(bnlearn)
## 
## Attaching package: 'bnlearn'
## The following object is masked from 'package:stats':
## 
##     sigma
bdbn=data.frame(primeirossintomas=as.factor(dados$datac),
                 sexo=as.factor(bd$Sexo),
                 idade=as.factor(cut(bd$Idade,5)),
                 pneumopatia=as.factor(bd$Pneumopatia),
                 nefropatia=as.factor(bd$Nefropatia),
                 hematopatia=as.factor(bd[,12]),
                 metabolopatia=as.factor(bd[,13]),
                 imunossupressao=as.factor(bd[,14]),
                 obesidade=as.factor(bd$Obesidade),
                 cardiopatia=as.factor(bd$Cardiovasculopatia),
                 obito=as.factor(bd[,7]))

i=1;
from="";to=""
n=(length(names(bdbn)))
## Obito não pode ser causa de nada
for(i in c(1:n)){
to[i]="obito";from[i]=names(bdbn)[i]}
## Data dos primeiros sintomas não pode ser causa de doenças prévias, apenas o contrário
n=n-1
j=1
for(j in c(1:n)){
to[j+n+1]="primeirossintomas";from[j+n+1]=names(bdbn)[j]}
## sexo não pode ser causado por nada
j=1
for(j in c(1:n)){
to[j+n+n+1]=names(bdbn)[j];from[j+n+n+1]="sexo"}
## idade não pode ser causada por nada
j=1
for(j in c(1:n)){
to[j+n+n+n+1]=names(bdbn)[j];from[j+n+n+n+1]="idade"}



blacklist=data.frame(from=from,to=to)
blacklist
##                 from                to
## 1  primeirossintomas             obito
## 2               sexo             obito
## 3              idade             obito
## 4        pneumopatia             obito
## 5         nefropatia             obito
## 6        hematopatia             obito
## 7      metabolopatia             obito
## 8    imunossupressao             obito
## 9          obesidade             obito
## 10       cardiopatia             obito
## 11             obito             obito
## 12 primeirossintomas primeirossintomas
## 13              sexo primeirossintomas
## 14             idade primeirossintomas
## 15       pneumopatia primeirossintomas
## 16        nefropatia primeirossintomas
## 17       hematopatia primeirossintomas
## 18     metabolopatia primeirossintomas
## 19   imunossupressao primeirossintomas
## 20         obesidade primeirossintomas
## 21       cardiopatia primeirossintomas
## 22              sexo primeirossintomas
## 23              sexo              sexo
## 24              sexo             idade
## 25              sexo       pneumopatia
## 26              sexo        nefropatia
## 27              sexo       hematopatia
## 28              sexo     metabolopatia
## 29              sexo   imunossupressao
## 30              sexo         obesidade
## 31              sexo       cardiopatia
## 32             idade primeirossintomas
## 33             idade              sexo
## 34             idade             idade
## 35             idade       pneumopatia
## 36             idade        nefropatia
## 37             idade       hematopatia
## 38             idade     metabolopatia
## 39             idade   imunossupressao
## 40             idade         obesidade
## 41             idade       cardiopatia
BayesNetwork=iamb(bdbn,blacklist=blacklist)
## Warning in vstruct.apply(arcs = arcs, vs = vs, nodes = nodes, debug = debug):
## vstructure pneumopatia -> cardiopatia <- metabolopatia is not applicable,
## because one or both arcs are oriented in the opposite direction.
## Warning in vstruct.apply(arcs = arcs, vs = vs, nodes = nodes, debug = debug):
## vstructure pneumopatia -> cardiopatia <- obito is not applicable, because one or
## both arcs are oriented in the opposite direction.
plot(BayesNetwork, main="Rede Bayesiana por IAMB dos fatores associados à mortalidade \npor COVID-19 no DF até 05-03-2020 usando dados abertos do GDF\n(para ver código da análise dos dados abertos: www.rpubs.com/gabrielmng)")