Closed gocdata closed 3 years ago
Olá! Já me deparei com isso antes. Tem uma característica que não está muito bem documentada nos dados do DataSUS que é a seguinte: quando baixamos um arquivo de determinada UF e ano, estamos nos referindo à UF de processamento dos dados e ao ano de processamento dos dados.
Se você estiver comparando por data de internação e UF de residência do paciente, por exemplo, alguns registros podem estar dispersos em arquivos de outros anos e, até mesmo de outras UFs.
Para trabalhar com MG em março de 2019, tente baixar todos os arquivos entre janeiro e junho de 2019 para MG (três meses antes e três meses depois do mês que te interessa), e veja o número de registros. Se não resolver, tente pegar todas as UFs também.
Depois fale aqui se deu certo!
Olá @gocdata e @rfsaldanha
Considero o que o Raphael diz super importante pra melhor precisão da análise. É muito comum pensar que foram analisadas as internações ocorridas num determinado mês quando na realidade foram analisadas as internações faturadas naquele mês (a maioria, mas não todas, ocorridas no mesmo mês). Mas penso que não é essa a explicação pro problema que encontraste. Em princípio, o TABNET deveria ler os mesmos arquivos DBC (organizados por mês de faturamento e UF do hospital de internação) que o microdatasus lê no FTP do datasus
A tabulação no TABNET é feita pelo CID do diagnóstico principal da internação (DIAG_PRINC) apenas. Então acho que não se deve incluir os diagnósticos em outros campos (DIAG_SECUN, DIAGSEC*). Assim, acho que o númreo de internações por CID J45 deve ser
# 'datasus_aprovadas' criado com o código original
teste1 <- datasus_aprovadas %>% filter(grepl("J45",DIAG_PRINC))
nrow(teste1)
[1] 733
A diferença está em que o "J46" também é CID de asma na Lista Morb CID-10 (Norma Técnica da tabulação no TABNET: http://tabnet.datasus.gov.br/cgi/sih/Morb_geral_loc_res_2008.pdf). O código então deveria ser
teste2 <- datasus_aprovadas %>% filter(grepl("J45",DIAG_PRINC) | grepl("J46",DIAG_PRINC))
O estranho é que ainda dá diferença. Em vez dos esperados 759, são
> nrow(teste2)
[1] 761
Esses dois casos a mais são do sexo feminino:
> teste2 %>%
+ group_by(SEXO) %>%
+ count()
# A tibble: 2 x 2
# Groups: SEXO [2]
SEXO n
<fct> <int>
1 1 374
2 3 387
A diferença não é grande, mas não deveria haver. @gocdata, sugiro que baixes o arquivo RDMG1903.bdc (ftp://ftp.datasus.gov.br/dissemin/publicos/SIHSUS/200801_/Dados/RDMG1903.dbc) e faças a tabulação no TabWin. Depois comenta aqui o resultado, por favor.
Boa tarde a todos, muito obrigado pelas explicações @rfsaldanha e @fulvionedel . De fato eu havia me enganado em relação aos diagnósticos secundários e a não inclusão do J46. Acabei de gerar os cálculos atualizando o script e também retornou 761. Também segui a dica de testar no tabwin, lá eu baixei o arquivo .dbc e .def pelo ftp datasus e também retornou 761 resultados!
O mistério continua, será que tem a possibilidade de estar errado no DataNet? Ou ele faz alguma limpeza nos dados antes de retornar os valores?
Acabei de fazer uma comparação mês a mês. Vejam que não é consistente, tem mês que o tabnet é maior por exemplo. Em ambos coloquei para agrupar por mês de processamento.
Ano/Mês processamento | tabwin_freq | tabnet_freq |
---|---|---|
..2019 | 8480 | 8477 |
..Janeiro/2019 | 543 | 542 |
..Fevereiro/2019 | 489 | 490 |
..Março/2019 | 761 | 759 |
..Abril/2019 | 811 | 813 |
..Maio/2019 | 880 | 878 |
..Junho/2019 | 853 | 852 |
..Julho/2019 | 828 | 828 |
..Agosto/2019 | 862 | 863 |
..Setembro/2019 | 804 | 803 |
..Outubro/2019 | 629 | 628 |
..Novembro/2019 | 503 | 503 |
..Dezembro/2019 | 517 | 518 |
Total | 8480 | 8477 |
Oi @gocdata, é de fato a mesma tabulação nos dois casos ou pode ser que uma seja sobre internações ocorridas e outra sobre AIHs pagas, viste as notas técnicas no Tabnet?
Fala @fulvionedel , aparentemente é a mesma tabulação sim. Fiz pelo tabnet, tabwin e baixando as tabelas e fazendo pelo R, testei com diferentes informações também (colunas/variáveis). Permanece uma pequena diferença entre o tabnet e o tabwin e pacote no R. Não consegui identificar o porquê; a dica de pegar meses posteriores ao período que se quer analisar melhorou um pouco a discrepância, mas não resolveu o problema.
Que coisa! O tabwin com os arquivos do FTP é consistente com o microdatasus (R) também nos outros meses?
Fala pessoal, estou com uma dúvida relacionada a fonte de dados nessas duas bases. Quando pesquiso utilizando os mesmos critérios obtenho resultados diferentes.
No tabnet utilizando as características abaixo para Minas Gerais obtenho 759 internações aprovadas: AIH aprovadas segundo Município Lista Morb CID-10: Asma Período: Mar/2019
Já utilizando o pacote no R com os comandos abaixo obtenho 744 internações:
` datasus_aprovadas <- microdatasus::fetch_datasus(information_system = "SIH-RD", year_start = 2019,year_end = 2019, month_start = 03,month_end = 03, uf="MG") datasus_aprovadas <- microdatasus::process_sih(datasus_aprovadas)
datasus_aprovadas2 <- datasus_aprovadas %>% filter(grepl("J45",DIAG_PRINC) | grepl("J45",DIAG_SECUN) | grepl("J45",DIAGSEC1) | grepl("J45",DIAGSEC2) | grepl("J45",DIAGSEC3) | grepl("J45",DIAGSEC4) | grepl("J45",DIAGSEC5) | grepl("J45",DIAGSEC6) | grepl("J45",DIAGSEC7) | grepl("J45",DIAGSEC8) | grepl("J45",DIAGSEC9)) `
Sinto que devo estar cometendo algum erro mas não consigo identificar, ou essa diferença entre as duas bases já é esperada? At.te
microdatasus version 1.4.1