Recentemente, comecei a trabalhar em uma clínica de tuberculose. Nos reunimos periodicamente para discutir o número de casos de TB que estamos tratando atualmente, o número de testes administrados, etc. Gostaria de começar a modelar essas contagens para não ficar apenas imaginando se algo é incomum ou não. Infelizmente, tive muito pouco treinamento em séries temporais e a maior parte da minha exposição foi em modelos de dados muito contínuos (preços das ações) ou um número muito grande de contagens (influenza). Mas lidamos com 0 a 18 casos por mês (média 6,68, mediana 7, var 12,3), que são distribuídos assim:
[imagem perdida pelas brumas do tempo]
[imagem comida por um grue]
Eu encontrei alguns artigos que abordam modelos como este, mas eu gostaria muito de receber sugestões suas - tanto para abordagens quanto para pacotes R que eu poderia usar para implementar essas abordagens.
EDITAR: A resposta da mbq me forçou a pensar com mais cuidado sobre o que estou perguntando aqui; Fiquei muito confuso com as contagens mensais e perdi o foco real da questão. O que eu gostaria de saber é: o declínio (bastante visível) a partir de, digamos, de 2008 em diante reflete uma tendência de queda no número geral de casos? Parece-me que o número de casos mensais de 2001 a 2007 reflete um processo estável; talvez alguma sazonalidade, mas no geral estável. De 2008 até o presente, parece que esse processo está mudando: o número total de casos está diminuindo, mesmo que as contagens mensais possam oscilar devido à aleatoriedade e sazonalidade. Como posso testar se há uma mudança real no processo? E se eu conseguir identificar um declínio,
fonte
Respostas:
Para avaliar a tendência histórica, eu usaria um gam com tendência e componentes sazonais. Por exemplo
Então
summary(fit)
, você fará um teste de significância da mudança de tendência e o gráfico fornecerá alguns intervalos de confiança. As suposições aqui são que as observações são independentes e a distribuição condicional é Poisson. Como a média pode mudar suavemente ao longo do tempo, essas não são suposições particularmente fortes.Prever é mais difícil, pois você precisa projetar a tendência no futuro. Se você deseja aceitar uma extrapolação linear da tendência no final dos dados (o que certamente é desonesto, mas provavelmente aceitável por alguns meses), use
Para ver as previsões no mesmo gráfico:
Você pode identificar os meses incomuns procurando discrepantes nos resíduos (desvio) do ajuste.
fonte
Você pode dar uma olhada no strucchange :
PS. Belos gráficos;)
fonte
Realmente precisa de algum modelo avançado? Com base no que sei sobre a tuberculose, no caso de não haver epidemia, as infecções são atos estocásticos e, portanto, a contagem do mês N não deve ser correlacionada com a contagem do mês N-1. (Você pode verificar essa suposição com autocorrelação). Nesse caso, analisar apenas a distribuição das contagens mensais pode ser suficiente para decidir se algumas contagens são significativamente maiores que o normal.
Por outro lado, você pode procurar correlações com algumas outras variáveis, como temporada, tráfego de viagens ou qualquer coisa que você possa imaginar que possa estar correlacionada. Se você encontrasse algo parecido com isto, ele poderia ser usado para alguma normalização de dados.
fonte
Freqüentemente, dados de doenças como esses são realizados com um modelo linear generalizado, pois não é necessariamente uma ótima aplicação de análise de séries temporais - os meses geralmente não são tão correlacionados entre si.
Se eu recebesse esses dados, eis o que eu faria (e de fato fiz com dados semelhantes):
Crie uma variável "time" que seja descrita com mais precisão como "Meses desde 1/1/2000" se estiver visualizando seus dados corretamente. Então, eu rodaria um modelo linear geral em R usando a distribuição Poisson (ou Binomial Negativo) e um link de log com aproximadamente o seguinte formato:
log(Counts) = b0 + b1*t + b2*(t^2) + b3*cos(2pi*w*t) + b4*sin(2pi*w*t)
Onde t é o tempo descrito acima ew é 1/365 para uma doença anual como a gripe. Geralmente é 1 / n, onde n é a duração do ciclo da sua doença. Não sei de antemão o que é a tuberculose.
As duas tendências de tempo mostrarão, fora da variação sazonal normal, se você tiver uma variação significativa ao longo do tempo.
fonte
Você pode aplicar um gráfico do Tukey Control aos dados.
fonte
Você pode tentar modelar seus dados usando um Modelo Linear Generalizado Dinâmico (DGLM). No R, você pode ajustar esse tipo de modelo usando os pacotes sspir e KFAS. Em certo sentido, isso é semelhante à abordagem gam sugerida por Rob, exceto que, em vez de supor que a média logarítmica das observações de Poisson seja uma função suave do tempo, ela assume que segue uma dinâmica estocástica.
fonte
dlm
pacote. Os DLMs não são tão fáceis de usar quanto as outras soluções, mas odlm
tornam o mais fácil possível e tem uma bela vinheta que o guia pelo processo.Vou deixar a questão principal em paz, porque acho que vou errar (embora eu também analise dados para um profissional de saúde e, para ser honesto, se eu tivesse esses dados, eu os analisaria apenas usando técnicas padrão e espero o melhor, eles parecem bem para mim).
Quanto aos pacotes R, encontrei a biblioteca TSA e seu livro acompanhante muito útil. O
armasubsets
comando, particularmente, acho que economiza muito tempo.fonte
Fuja das estatísticas enumerativas tradicionais, como Deming sugeriria, e se arrisque nas estatísticas analíticas tradicionais - nesse caso, nos gráficos de controle. Veja todos os livros de Donald Wheeler PhD, particularmente seus "Tópicos avançados no SPC" para obter mais informações.
fonte
Em resposta à sua pergunta direta "Como posso testar se há uma mudança real no processo? E se consigo identificar um declínio, como posso usar essa tendência e qualquer sazonalidade que possa haver para estimar o número de casos que poderemos ver em os próximos meses? " Desenvolva um Modelo de Função de Transferência (ARMAX) que explique prontamente a dependência de período a período, incluindo a estrutura ARIMA sazonal. Incorpore quaisquer mudanças de nível identificáveis, pulsos sazonais, tendências de horário local e PUlses que possam ter sido sugeridos por métodos empíricos / analíticos como a Detecção de intervenção. SE ESTE MODELO ROBUSTO INCLUIR UM FATOR / SÉRIE combinando com "declínios", então suas orações serão atendidas. Em alternativa, basta adicionar uma estrutura hipotética, por exemplo, para testar uma mudança de tendência temporal no ponto T1, construir dois manequins X1 = 1,1,2,3 ,,,,,, T e X2 = 0,0,0,0,0,0,0,1,2,3,4,5, .... ONDE OS ZEROS TERMINAM NO PERÍODO T1-1. O teste da hipótese de uma mudança significativa de tendência no período T1 será avaliado usando o "valor t" para X2.
Editado em 22/09/11
Frequentemente, dados de doenças como essa têm efeitos mensais, já que o clima / temperatura geralmente é um causal não especificado. Na omissão das verdadeiras séries caudais, os modelos ARIMA usam memória ou manequins sazonais como substitutos. Além disso, séries como essa podem ter mudanças de nível e / ou tendências da hora local, refletindo mudanças estruturais ao longo do tempo. A exploração da estrutura autoregressiva nos dados, em vez de impor vários artefatos, como o tempo, o quadrado do tempo, o tempo cúbico etc., foi considerada bastante útil, menos presuntiva e ad hoc. Também deve-se tomar cuidado para identificar "valores incomuns", pois eles podem ser úteis na sugestão de variáveis de causa adicionais e, no mínimo, levar a estimativas robustas dos outros parâmetros do modelo. Finalmente, descobrimos que a variabilidade / parâmetros pode variar ao longo do tempo, portanto, esses refinamentos do modelo podem estar em ordem.
fonte