3778 / covid-19 Goto Github PK
View Code? Open in Web Editor NEWCiência de Dados aplicada à pandemia do novo coronavírus.
Home Page: https://covid-simulator.3778.care/
License: MIT License
Ciência de Dados aplicada à pandemia do novo coronavírus.
Home Page: https://covid-simulator.3778.care/
License: MIT License
Posso ter compreendido o gráfico errado, mas a princípio não tem nenhuma informação no gráfico representado indicando em que dia estamos em relação ao dia zero.
Isso torna a informação mais clara e acessível ao público que está começando a acompanhar o desenvolvimento da doença agora, e acho mais interessante do que fazer a pessoa pesquisar em fontes externas qual foi o dia zero para então determinar em que dia estamos com relação ao gráfico.
PS:. marquei como label dev na falta de uma label UX/usabilidade.
A ideia é compilar fontes de dados, cuja ingestão seja automatizável, pra colocar no simulador.
Informações necessárias:
População já temos vindo do IBGE
Acho que aproveitando o SEIR dá pra criar um outro compartimento dividindo o I(sintomático) e o I(assintomático) e a partir dos (poucos) estudos/dados de locais onde houve testagem abrangente de assintomáticos tentar inferir o número assintomáticos % de casos pra tentar modelar
Isso faz sentido? Como podemos equacionar esse compartimento? Como estimar os parametros?
Apareceu um novo site que se propõe a divulgar construir uma espécie de dataset colaborativo. Talvez valesse a pena dar uma olhada para ver se ajuda o modelo (ou pelo menos corrobora com as informações que vocês já tem)
http://covidzero.com.br/
Atualmente a simulação de filas consome 2 arquivos CSV que foram gerados manualmente, conforme mostrado em #70
Precisamos automatizar a geração desses arquivos para poder incluir novos dados facilmente e documentar o procedimento.
Arquivos:
data/tmp/cnes_leitos.csv
data/tmp/dados_covid.csv
Por hora estamos utilizando o matplotlib, que por mais que seja flexível, é limitado. Seria interessante explorar o bokeh e Altair para termos visualizações dinâmicas.
Uma das utilidades do modelo seria a de direcionar políticals públicas (e.g. nível de isolamento durante o período de quarentena). O modelo SEIR atual modela a transmissão do vírus assumindo que ela é homogênea. Na realidade, é preciso um contato físico para haver a transmissão. Como nem todos os membros da população vão ter um contato entre si, uma das estratégias para reduzir o número de casos é a de isolamento das pessoas.
É possível modelar essa dinâmica fazendo pequenas variações no modelo atual. Primeiramente, a população total é dividida em n compartimentos. Em seguida, introduzindo uma variável que modela o número de pessoas que se transportaram do compartimento i para o compartimento j da população durante o período de tempo, as equações que antes, para cada compartimento eram:
Se tornam:
Esse modelo permitiria a modelagem da evolução dos casos de forma mais realista (e.g. se os dados de viagem entre cidades/bairros estivessem disponíveis). O modelo também pode ser simplificado para modelar a evolução dos casos em uma cidade com diferentes níveis de isolamento (diferentes valores de T, assumindo uma taxa constante entre compartimentos).
[Edit: Somatório colocado na última eq.]
Precisamos entender melhor o Período infeccioso médio (1/γ); limites inferiores e superiores assim como uma distribuição típica à priori utilizada na literatura. Por hora temos uma ideia de média apenas (14 dias).
Referências boas:
No momento, não estamos usando os dados históricos para tunar os parâmetros, similar ao que ta aqui: https://kingaa.github.io/short-course/parest/parest.html
No caso do SEIR-Bayes, temos 6 hyperparâmetros: {média, desvio} para {alpha, gamma e R0}.
@vitoventurieri poderias explicar melhor o que seria isso?
imagino que seja pesquisar na literatura e noticias pra entendermos qual o percentual de assintomáticos, pra usarmos em #10
A ideia é disponibilizar pra quem quiser fazer análises em cima.
Assinatura da função será algo do tipo:
In: {gamma, alpha, R0}x{limite inferior, limite superior} + runs + t_max + SEIR(0)
Out: DataFrame(UF, municipio, t, run, S, E, I, R)
São 12 entrada e 1 dataframe de saída.
O Brazil ta testando apenas quem ta hospitalizado, o que diminui o número de infectados reportado e faz com que o pico de infecção seja daqui a ~3 meses (pra SP).
Poderíamos ter um notebook para fazer previsões de curto prazo (ex: 3, 7 , 14 dias) e não da curva epidemiológica como um todo.
Levantamento dos coeficientes (ex: % de casos assintomáticos, tempo de duração da doença, tempo de infecciosidade, etc)
Quantidade de infectados e recuperados (condições iniciais S0, E0, I0 e R0).
Caros,
Podemos citar a referência usada para a equação definida a partir da linha 34, abaixo?
Line 34 in 80e99d4
Oi, Pessoal.
Não sei se já conhecem o modelo usado pelo Gabriel Goh http://gabgoh.github.io/COVID/index.html
Ola gente, tudo bem ? Sou novo aqui, e também não sou da área sou físico. Bem topei com um post falando desse projeto no Reddit e fui dar uma olhada nesse SEIR model. Fiquei ciente da dificuldade descrever um pais continental como no caso do brasil. Então pensei se é possível separarmos o brasil por regiões, aplicar o método SEIR em cada uma delas e colocar um termo de troca entre essas regiões. Bem temos a explicação do modelo aqui:
https://en.wikipedia.org/wiki/Compartmental_models_in_epidemiology#The_SEIR_model
Então, basicamente temos essa equação:
Regida por esse grupo de equações diferencias:
O que eu pensei foi, em perdemos a continuidade da quantidade de pessoas por região, porem mantendo a quantidade total continua:
E alterando as equações para termos um termo de troca, para as pessoas suscetíveis, na fase encubação do vírus e quando estão curadas, sendo assim:
O termo chi^{S,E,R}_k é a razão de pessoas suscetíveis, na fase de encubação e recuperas que estão transitando entre cada região. Sendo, assim, esse valor respeita:
Agora, podemos aplicar na equação da região micro e:
Ou seja, deixei a equação para pessoas doentes sem nada, porque acredito que a quantidade dessas pessoas transitando é ínfima, geralmente a transição de pessoas infectadas é na fase de encubação. O que acham ? Lembrando, não sei muita coisa do tema, vi por cima, mas uma pessoa pediu pra eu levantar esse debate aqui.
Quando valores das margens de erro são negativos, o gráfico as corta. Isso impede que seja visualizado o limite superior e compromete o uso desse recurso do simulador. Deve-se corrigir para, nesses casos, plotar o valor em zero como é feito na função seir_bayes_plot
por meio do .clip(I0)
.
Precisamos de uma análise crítica desse artigo encontrado aqui - Estimating the asymptomatic proportion of coronavirus disease 2019 (COVID-19) cases on board the Diamond Princess cruise ship, Yokohama, Japan, 2020 , sobre suas premissas e fontes, para saber se é possível aproveitar alguma das inferências ou dos dados oriundos das fontes/referências do artigo. O objetivo é saber se podemos fazer estimativas de casos assintomaticos usando o método, ou dados das fontes.
@cchenzi pode fazer a PR direto pra branch v2
.
Refatorar data_params.py para evitar repetição de código.
O modelo SEIR-Bayes utiliza priors gaussianas nos parâmetros do modelo. Isso claramente pode ser melhorado.
O que fazer?
É importante entender que a prior define as incertezas que temos nos parâmetros, que foram levantados de acordo com a literatura (ver o README.md).
Em #36 temos um modelo pra estimar R0 a partir do dado histórico. Porém, seria interessante juntar isso com os dados globais, pra ter uma forma de variar a estimativa utilizando os dados globais.
Visto que o R0 estimado na verdade é uma lognormal, pensei em usar isso como likelihood junto com uma conjugate prior dos dados globais (que podem ser setadas via simulador) e calcular uma posterior que será utilizada na simulação de fato.
Podemos usar este repo como uma fonte de dados relacionados ao COVID-19 no Brasil no espírito que a JHU está fazendo para o mundo.
Atualmente oferecemos somente a visualização, mas seria muito útil poder exportar os dados que estão plotados em formato CSV para uso em outros locais como continuação da análise.
Exportar:
Seria interessante, alguém com conhecimento de modelagem e python, revisar se a implementação do SEIR-Bayes ta correta.
No momento, estamos assumindo que a quantidade de expostas e infectadas sao a mesma (E(0) = I(0)).
Nao tenho ideia se isso ta certo, alguem saberia ajudar? Tem alguma estimativa grosseira pra quantidade de pessoas expostas em ( talvez em funcao de infectadas)?
Caros,
Estive tentando criar um dev
e feature
branch no repositório para organizarmos a colaboração usando o git flow como padrão. Contudo, não tenho permissão para "pushar" estes branches. Será que os admins poderiam:
Abraços (sem o risco de corona)
Ao testar o app em produção (https://covid-simulator.3778.care/), notei que a cada ~10 s é disparado um evento que executa novamente o Streamlit (como se fosse "rerun") sem ter sido solicitado. A resposta é como se tivesse sido feita alguma alteração nos parâmetros, mas sem ter sido clicado em nada. Aparece "Connecting..." e depois "Running..." no canto direito superior.
Isso é um problema pq os parâmetros são resetados e o fluxo de interação do usuário é interrompido, sem que se consiga finalizar um configuração e analisar os resultados minimamente.
Isso não acontece rodando localmente com make launch
, então imagino que seja algo relacionado com a forma que fizemos o deploy. Algum insight do que poderia ser @thiagocaiubi?
Cheguei a gravar um screencast pra ilustrar, mas por limitações técnicas (aka noob) não consegui subir aqui como GIF. Tô usando Firefox 74.0 (64-bit) no mac osx 10.15.3, mas acontece no Chrome 80.0.3987.149 também.
https://www.python.org/dev/peps/pep-0008/#package-and-module-names
for instance, from SEIR-bayes.py
to seir_bayes.py
Seria interessante, já no início, ter uma seção de compilação dos resultados. O objetivo seria fazer a comunicação para um público leigo, sobre os impactos possíveis do COVID-19 na vida dx Brasileirx comum.
Inspirem-se no Carl Sagan.
Parece que a temperatura correlaciona inversamente com o R0: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3551767
A maior parte dos casos por estado estão concentradas nas maiores cidades. Seria mais útil ter a população (e consequentemente, o S(0)) por cidade.
A ideia seria utilizar uma API tipo essa pra pegar a populacao de cada cidade e colocar em um selectbox. Ou, achar um CSV que tem isso (deve ter em algum lugar).
Por hora, os modelos estão com os parâmetros fixos no código. Creio que seja uma oportunidade para criar uma CLI utilizando o Click
Temos os CSVs em data/csv/by_uf
com os dados por distrito. A ideia seria inserir um selectbox no simulador com as opções de estado pra popular as condições iniciais I(0)
e R(0)
, e talvez uma opção de data (que também seria um selectbox).
É desejável incluir no modelo uma previsão de necessidade de leitos de UTI e leitos de internação necessários ao atendimento de infectados pelo SARS-CoV2.
Para isso precisamos que contribuam com
Em segundo momento, tendo dados de boa qualidade, discutimos sobre a modelagem que deverá tomar em conta:
Depends on #11
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.