Comentários sobre o código-fonte do modelo COVID-19 da Imperial

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


[Esteartigofoipublicadopelaprimeiravezem[Thisarticlewasfirstpublishedon A forma do código »R, e gentilmente contribuiu para os R-blogueiros]. (Você pode relatar um problema sobre o conteúdo desta página aqui)


Deseja compartilhar seu conteúdo com R-blogueiros? clique aqui se você tiver um blog ou aqui se não tiver.

No final de março, um artigo que modela o impacto de vários cenários sobre a disseminação de infecções por COVID-19, pelo Centro MRC de Análise Global de Doenças Infecciosas no Imperial College, parece ter influenciado a política dos poderes em questão. Esse grupo começou recentemente a publicar seu código de modelagem no Github (bom para eles).

Passei a maior parte da minha vida profissional analisando o código de outras pessoas, por um motivo ou outro (principalmente Fortran, depois Pascal e C). Ouvi dizer que o software Imperial estava escrito em C, mas o código liberado está escrito em R (há seis horas, há o início de uma versão em Python). Ok, posso trabalhar com R, mas meus comentários serão genéricos, pois não tenho muita experiência em ler código R.

O código vem de um contexto de pesquisa e está evoluindo, ou seja, é de se esperar alguma quantidade de confusão.

Não há muito código sobre o qual falar (248 linhas configurando coisas, 111 linhas para um modelo Stan, 371 linhas de código de plotagem e 85 linhas de código de utilidade). A análise é realizada através da criação de um modelo usando a linguagem de inferência estatística Stan (na qual a estrutura de alto nível do problema é especificada, compilada em um formato de nível inferior e depois executada; a linguagem Stan é muito semelhante a R). Atualmente, muitos problemas são codificados usando um número relativamente pequeno de linhas que chamam bibliotecas sofisticadas para fazer o trabalho pesado. Está se tornando raro ter que escrever dezenas de milhares de linhas de código para resolver um problema.

Leia Também  Eu parei meu trabalho 9-5 para focalizar em bens imobiliários

Eu tenho dois pontos a serem destacados sobre o código, todos projetados para reduzir a probabilidade de erros cometidos pela pessoa que trabalha na fonte. Esses pontos se aplicam principalmente ao código Stan, porque é aí que as coisas importantes acontecem, mas são igualmente aplicáveis ​​a todo o código.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
  • Literais numéricos são incorporados no código, os valores incluem: 2.4, 1.0, 0.5, 0.03, 1e-5e 1e-9. Esses valores obviamente significam algo para a pessoa que escreveu o código e provavelmente podem ser interpretados por especialistas na disseminação de infecções por vírus. Mas por que eles estão espalhados pelo código, em vez de aparecerem juntos (como uma sequência de atribuições para variáveis ​​com nomes significativos)? A presença de todas as constantes em um local facilita a identificação de erros, por exemplo, um valor foi alterado sem uma alteração correspondente em outro valor; também facilita para as pessoas novas no código descobrir o que está acontecendo,
  • ao comentar o código, torne-o muito óbvio, por exemplo, tenha /********************** em sua própria linha, e *****************************/ em sua própria linha. Usando apenas /* e */ facilita a perda do código comentado.

Por que eles começaram uma implementação em Python? Talvez alguém da equipe esteja mais confortável trabalhando com Python (quando os prazos se aproximam, é sempre melhor seguir o que você sabe).

Ter uma versão R e Python é bom, pois os erros de codificação provavelmente aparecerão como inconsistências nos resultados produzidos. É sempre bom comparar dois programas escritos de forma independente (além do fato de que pode custar o dobro).

O README menciona problemas de desempenho. Imagino que a maior parte do tempo de execução seja gasta no código Stan, portanto, o R vs. Python não é um problema de desempenho.

Leia Também  Outra simulação "achatar a curva COVID-19" ... em R

Qualquer leitor com experiência em ajustar os modelos Stan para obter desempenho pode querer conferir o código. Tenho certeza de que o povo imperial ficaria feliz em ouvir sobre acelerações que valem a pena.



Se você chegou até aqui, por que não inscreva-se para atualizações do site? Escolha seu sabor: e-mail, Twitter, RSS ou facebook …



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br