turicas / covid19-br

Dados diários mais recentes do coronavírus por município brasileiro
https://brasil.io/dataset/covid19
GNU Lesser General Public License v3.0
531 stars 128 forks source link

Estudar microdados das SES #123

Open turicas opened 4 years ago

turicas commented 4 years ago

Tarefas relacionadas:

IMPORTANTE: quando possível, publique trechos de código que foram desenvolvidos para fazer as análises/comparações.

berinhard commented 4 years ago

Análise de microdados disponibilizados pelas importações atuais em comparação ao padrão da OKFN: Espírito Santo

Segue um exemplo de código que rodei para analisar os dados:

In [2]: import rows 

In [3]: data = rows.import_from_csv('MICRODADOS.csv', encoding='ISO-8859-9')

In [6]: set([d.statusnotificacao for d in data])                                                                                                                             
Out[6]: {'Em Aberto', 'Encerrado'}
OKFN Planilha Tipo Observação
data_fn_atendimento Data date Consta como YYYY-MM-DD
data_publicacao --- --- ---
data_sintomas --- --- ---
data_in_atendimento --- --- ---
data_confirmacao --- --- ---
classificacao Classificacao text Só tem o valor Confirmado
criterio_confirmacao CriterioConfirmacao text Valores: {'-', 'Clinico', 'Clinico Epdemiologico', 'Laboratorial'}
tipo_teste --- --- ---
evolucao Evolucao text Valores: {'-', 'Cura', 'Ignorado', 'Óbito pelo COVID-19', 'Óbito por outras causas'}
encaminhamento --- --- ---
municipio Municipio text Nomes sem acento e em caixa alta
cod_ibge --- --- Conseguimos info no BaseSpider
estado --- --- Conseguimos info no BaseSpider
municipio_residencia --- --- ---
cod_ibge_res --- --- ---
estado_residencia --- --- ---
idade FaixaEtaria text Valores {'0 a 4 anos', '05 a 9 anos', '10 a 19 anos', '20 a 29 anos', '30 a 39 anos', '40 a 49 anos', '50 a 59 anos', '60 a 69 anos', '70 a 79 anos', '80 a 89 anos', '90 anos ou mais'}
sexo Sexo text Valores {'F', 'I', 'M'}
cor_raca RacaCor text Valores `{'Amarela', 'Branca', 'Ignorado', 'Indigena', 'Parda', 'Preta'}
`
comorbidade_cardio ComorbidadeCardio text Valores: {'Sim', 'Não', '-'}
comorbidade_diabetes ComorbidadeDiabetes text Valores: {'Sim', 'Não', '-'}
sintoma_coriza Coriza bool Valores: {'Sim', 'Não', '-'}
sintoma_tosse Tosse bool Valores: {'Sim', 'Não', '-'}
origem --- --- ---

Os campos abaixos são campos que estão presente na planilha, mas não possui correlação no template da OKFN

Planilha Tipo Observação
StatusNotificacao text Valores: {'Em Aberto', 'Encerrado'}
Bairro text Nomes em caixa alta
Escolaridade text Valores: {'1ª a 4ª série incompleta do EF (antigo primário ou 1º grau)', '4ª série completa do EF (antigo primário ou 1º grau)', '5ª à 8ª série incompleta do EF (antigo ginásio ou 1º grau)', 'Analfabeto', 'Educação superior completa', 'Educação superior incompleta ', 'Ensino fundamental completo (antigo ginásio ou 1º grau) ', 'Ensino médio completo (antigo colegial ou 2º grau ) ', 'Ensino médio incompleto (antigo colegial ou 2º grau )', 'Ignorado', 'Não se aplica'}
Febre text Valores: {'Sim', 'Não', '-'}
DificuldadeRespiratoria text Valores: {'Sim', 'Não', '-'}
DorGarganta text Valores: {'Sim', 'Não', '-'}
Diarreia text Valores: {'Sim', 'Não', '-'}
Cefaleia text Valores: {'Sim', 'Não', '-'}
ComorbidadePulmao text Valores: {'Sim', 'Não', '-'}
ComorbidadeRenal text Valores: {'Sim', 'Não', '-'}
ComorbidadeTabagismo text Valores: {'Sim', 'Não', '-'}
ComorbidadeObesidade text Valores: {'Sim', 'Não', '-'}
FicouInternado text Valores: {'Sim', 'Não', '-'}
ViagemBrasil text Valores: {'Sim', 'Não', '-'}
ViagemInternacional text Valores: {'Sim', 'Não', '-'}

Minhas notas pessoais sobre os dados e a relação com o template da OKFN:

berinhard commented 4 years ago

Análise de microdados disponibilizados pelas importações atuais em comparação ao padrão da OKFN: Minas Gerais

Segue um exemplo de código que rodei para analisar os dados:

In [2]: import rows 

In [3]: data = rows.import_from_csv('notificacoes-covid19-mg.csv', encoding='utf-8')
OKFN Planilha Tipo Observação
data_publicacao DATA_ATUALIZACAO date No formato YYY-MM-DD
data_sintomas --- --- ---
data_confirmacao --- --- ---
data_in_atendimento DATA_NOTIFICACAO date No formato YYY-MM-DD
data_fn_atendimento --- --- ---
classificacao CLASSIFICACAO_CASO text Valores {'Caso Confirmado', 'Caso Suspeito', 'Descartado', 'Óbito Confirmado'}
criterio_confirmacao --- --- ---
tipo_teste --- --- ---
evolucao --- --- ---
encaminhamento --- --- ---
municipio --- --- ---
cod_ibge --- --- ---
estado --- --- ---
municipio_residencia MUNICIPIO_RESIDENCIA text ---
cod_ibge_res MUNICIPIO_RESIDENCIA_COD int Possui valores None
estado_residencia --- --- ---
idade IDADE int Possui valores None e possui valores negativos
sexo SEXO text Valores {'Feminino', 'Masculino'}
cor_raca --- --- ---
comorbidade_cardio --- --- ---
comorbidade_diabetes --- --- ---
sintoma_coriza --- --- ---
sintoma_tosse --- --- ---
origem --- --- ---

Os campos abaixos são campos que estão presente na planilha, mas não possui correlação no template da OKFN

Planilha Tipo Observação
FAIXA_ETARIA text Valores: {'0 a 9 anos', '10 a 19 anos', '20 a 29 anos', '30 a 39 anos', '40 a 49 anos', '50 a 59 anos', '60 a 69 anos', '70 a 79 anos', '80 a 89 anos', '90 anos ou mais', 'NA'}
COMORBIDADE text Valores: {'NA', 'NÃO', 'NÃO INFORMADO', 'SIM'}

Minhas notas pessoais sobre os dados e a relação com o template da OKFN:

berinhard commented 4 years ago

Análise de microdados disponibilizados pelas importações atuais em comparação ao padrão da OKFN: Rio Grande do Norte

Converti o XLSX pra CSV pra me agilizar aqui e segue um exemplo de código que rodei para analisar os dados:

In [2]: import rows 

In [3]: data = rows.import_from_csv('DOC000000000230629.csv', encoding='utf-8')
OKFN Planilha Tipo Observação
data_publicacao --- --- ---
data_sintomas INÍCIO DOS SINTOMAS date FormatoD/M/YYYY c/valores nulos e brancos
data_confirmacao --- --- ---
data_in_atendimento --- --- ---
data_fn_atendimento ENCERRAMENTO date Formato D/M/YYYY c/brancos e nulos
classificacao --- --- ---
criterio_confirmacao --- --- ---
tipo_teste TESTE RÁPIDO? text Valores {'', 'CLINICO EPIDEMIOLOGICO', 'CLÍNICO EPIDEMIOLÓGICO', 'RT-PCR', 'TESTE RÁPIDO - ANTICORPO', 'TESTE RÁPIDO - ANTÃ\x8dGENO'}
evolucao EVOLUÇÃO text Valores {'', '9', 'CURA', 'Cura', 'Em tratamento domiciliar', 'Ignorado', 'Internado'}
encaminhamento --- --- ---
municipio --- --- ---
cod_ibge --- --- ---
estado UF RN Esse campo possui múltiplos valores, então pode indicar o estado de origem
municipio_residencia --- --- ---
cod_ibge_res --- --- ---
estado_residencia --- --- ---
idade IDADE int Possui valores nulos NI e #VALUE
sexo SEXO text Valores {'FEMININO', 'Feminino', 'MASCULINO', 'Masculino', 'NI'}
cor_raca COR/RAÇA text Valores {'', '9', 'Amarela', 'Branca', 'Indigena', 'Parda', 'Preta', 'ÓBITO'}
comorbidade_cardio DOENÇA CARDIOVASCULAR CRÔNICA text Valores {'', '9', 'SIM', 'sim'}
comorbidade_diabetes --- --- ---
sintoma_coriza --- --- ---
sintoma_tosse --- --- ---
origem --- --- ---

Os campos abaixos são campos que estão presente na planilha, mas não possui correlação no template da OKFN

Planilha Tipo Observação
SISTEMA DE ORIGEM text Valores: {'A NOTIFICAR', 'A NOTIFICAR NO SIVEP', 'DRIVE', 'E-SUS VE', 'GAL', 'PENDENTE', 'PRIVADO', 'REDCAP', 'SIVEP', 'a notificar'}
DATA DE NOTIFICAÇÃO date No formato D/M/YYYY
FAIXA ETÁRIA text Valores: {'#VALUE!', '1 a 4', '10 a 14', '15 a 19', '20 a 29', '30 a 39', '40 a 49', '5 a 9', '50 a 59', '60 a 69', '70 a 79', '80 a 89', '< 1', '> 89', 'NI'}
REGIÃO DE SAÚDE int Valores: {0, 1, 2, 3, 4, 5, 6, 7, 8}
COLETA date Formado D/M/YYYY e com campos em branco/nulos
DAT_SINT_COL_NOT date Formado D/M/YYYY
CLASSIFICAÇÃO_COVID-19 (3 -CONFIRMADO; 4 - DESCARTADO; 1 - SUSPEITO) int Valores {1, 3, 4}
RESULTADO_1 text Valores {'', 'Negativo', 'Negativo para COVID-19', 'Positivo', 'Positivo para COVID-19', 'Positivo para Influenza', 'Positivo para Influenza B', 'SRAG NÃO ESPECIFICADO'}
ÓBITO? text Valores {'', 'ÓBITO', 'Óbito', 'óbito'}
OCUPAÇÃO text Várias profissões diferentes
PROF DE SAÚDE text Valores {'', '#N/A', '00/01/1900', 'Estudante da área de saúde', 'Não', 'Outros', 'Profissional de laboratório', 'Profissional de saúde', 'Sim', 'Trabalha em contato com animais'}
COMORBIDADE PRÉ-EXISTENTE? text Valores {'', 'NÃO', 'SIM', 'não', 'sim'}
HAS text Valores {'', 'HAS', 'SIM', 'has', 'sim'}
DM text Valores {'', '9', 'DM', 'SIM', 'sim'}
OUTRA text Valores {'', 'ALZHEIMER', 'ANEMIA', 'DISLIPIDEMIA', 'DPOC', 'ELA', 'EX-FUMANTE', 'IMUNOSUPRESSÃO', 'SÍNDROME DE DOWN', 'doença pulmonar obstrutiva crônica - dpoc', 'doença pulmonar obstrutiva crônica -dpoc', 'etilista crônico', 'mielodisplasia', 'paciente psiquiatrico'}
OBESIDADE text Valores {'', '9', 'OBESIDADE', 'OBESIDADE MÓRBIDA', 'SIM'}
DOENÇA RENAL CRÔNICA text Valores {'', '9', 'SIM', 'sim'}
HIPOTIREOIDISMO text Valores {'', 'HIPOTIREOIDISMO', 'sim'}
NEOPLASIA text Valores {'', 'NEOPLASIA'}

Minhas notas pessoais sobre os dados e a relação com o template da OKFN:

capyvara commented 4 years ago

Vocês estão pegando esses dados daqui? https://shiny.hmg.saude.gov.br/dataset/casos-nacionais

turicas commented 4 years ago

Vocês estão pegando esses dados daqui? https://shiny.hmg.saude.gov.br/dataset/casos-nacionais

Essas análises eram de microdados que as próprias secretarias estão disponibilizando.

endersonmaia commented 4 years ago

como comentei em https://github.com/turicas/covid19-br/issues/140#issuecomment-631514536, estou armazenando os arquivos históricos do CSV de microdados

uma coisa que já identifiquei rodando um diff entre alguns arquivos de microdados é que se não mantivermos os arquivos históricos ou processá-los com maior frequência, a gente perde a evolução dos casos, que são atualizadas retroativamente

ex.:

diff sintomas/sintomas-2020-05-20-06:08:16.1589954896.csv sintomas/sintomas-2020-05-20-12:07:47.1589976467.csv                                              [11:32:52]
695c695
< "694","","Mascuino","Maceió","Confirmado","Encerramento do Isolamento Domiciliar","2020-04-27T03:00:00.000Z","","2020-04-24T03:00:00.000Z","Swab nasofaringe + RT-PCR","70","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
---
> "694","","Mascuino","Maceió","Confirmado","Internação UTI","2020-04-27T03:00:00.000Z","","2020-04-24T03:00:00.000Z","Swab nasofaringe + RT-PCR","70","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
883c883
< "882","Preta","Mascuino","Maceió","Confirmado","Internação UTI","2020-04-28T03:00:00.000Z","","2020-04-25T03:00:00.000Z","Swab nasofaringe + RT-PCR","64","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
---
> "882","Preta","Mascuino","Maceió","Confirmado","Alta Hospitalar","2020-04-28T03:00:00.000Z","","2020-04-25T03:00:00.000Z","Swab nasofaringe + RT-PCR","64","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
988c988
< "987","","Feminino","Maceió","Confirmado","Alta Hospitalar","2020-04-29T03:00:00.000Z","","2020-04-26T03:00:00.000Z","Swab nasofaringe + RT-PCR","50","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
---
> "987","","Feminino","Maceió","Confirmado","Internação UTI","2020-04-29T03:00:00.000Z","","2020-04-26T03:00:00.000Z","Swab nasofaringe + RT-PCR","50","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""
1684c1684
...

não sei para qual tipo de análise seria relevante registrar esse histórico de alterações, de "Alta Hospitalar" para "Internação UTI" como evidenciado no registro 897 acima, por ex.

e tb, qual modelo de dados deveríamos manter no Brasil.IO para salvar esse histórico ?

turicas commented 4 years ago

e tb, qual modelo de dados deveríamos manter no Brasil.IO para salvar esse histórico ?

@endersonmaia acho que podemos salvar os arquivos brutos no histórico, dessa forma temos os dados oficiais e conseguimos fazer o script de normalização depois.

endersonmaia commented 4 years ago

Análise de microdados disponibilizados pelas importações atuais em comparação ao padrão da OKFN: Minas Gerais

não ficou claro qual URL tu usou aqui, mas vi no portal um CSV e tá diferente desse que tu apurou

https://www.saude.mg.gov.br/images/noticias_e_eventos/000_2020/coronavirus-dados-csv/notificacoes-covid19-mg.csv

;ID;CONTADOR;DATA_NOTIFICACAO;CLASSIFICACAO_CASO;SEXO;IDADE;FAIXA_ETARIA;MUNICIPIO_RESIDENCIA_COD;MUNICIPIO_RESIDENCIA;COMORBIDADE;EVOLUCAO;INTERNACAO;UTI;DATA_ATUALIZACAO
1;3074;136395;07/05/2020;Caso Confirmado;Masculino;53;50 a 59 anos;310890;Brasópolis;SIM;RECUPERADO;NÃO;NÃO;24/05/2020
2;3341;136396;10/05/2020;Caso Confirmado;Masculino;36;30 a 39 anos;315895;Santana do Paraíso;Não Informado;EM ACOMPANHAMENTO;SIM;SIM;24/05/2020
3;5;136397;16/03/2020;Caso Confirmado;Masculino;45;40 a 49 anos;310620;Belo Horizonte;Não Informado;RECUPERADO;NÃO;NÃO;24/05/2020
...