カウント<20のカウントデータの時系列


23

私は最近結核クリニックで働き始めました。現在治療中の結核症例の数、投与された検査の数などについて定期的に話し合います。何かが異常であるかどうかを推測するだけではないように、これらのカウントのモデリングを開始したいと思います。残念ながら、私は時系列のトレーニングをほとんど受けていませんでした。私の露出のほとんどは、非常に連続的なデータ(株価)または非常に多くのカウント(インフルエンザ)のモデルを扱ってきました。ただし、月ごとに0〜18のケース(平均6.68、中央値7、変数12.3)を扱い、次のように配布されます。

[時間の霧に負けたイメージ]

[グルーに食われるイメージ]

このようなモデルに対処する記事をいくつか見つけましたが、これらのアプローチを実装するために使用できるアプローチとRパッケージの両方について、あなたからの提案を聞いていただければ幸いです。

編集: mbqの答えは、私がここで何を求めているかについて、より慎重に考えることを余儀なくさせました。私は毎月のカウントに夢中になりすぎて、質問の実際の焦点を失いました。私が知りたいのは、たとえば2008年以降の(かなり目に見える)減少は、症例の総数の減少傾向を反映していますか?2001年から2007年までの毎月の症例数は安定したプロセスを反映しているように思えます。多少の季節性があるかもしれませんが、全体的に安定しています。2008年から現在まで、そのプロセスは変化しているように見えます。ランダム性と季節性により毎月のカウントが上下する可能性がある場合でも、ケースの総数は減少しています。プロセスに実際の変更があるかどうかをテストするにはどうすればよいですか?そして、衰退を特定できれば、


2
リンクは消滅しました。画像を取得(または再生成)できる場合は、imgurに画像を保存する新しいシステムを使用してください。
グレン_b-モニカを復元

残念なことに、これらのプロットは2つ前の仕事からのものでした。おApび!
マットパーカー

1
この投稿(#173)がサイトがベータ状態だった頃のことを考えると、それは驚くことではありません-この時点で過去の投稿からプロットをやり直すことができる人はほとんどいませんでした。とにかくありがとう。
Glen_b -Reinstate Monica

回答:


15

過去の傾向を評価するために、傾向と季節成分を含むgamを使用します。例えば

require(mgcv)
require(forecast)
x <- ts(rpois(100,1+sin(seq(0,3*pi,l=100))),f=12)
tt <- 1:100
season <- seasonaldummy(x)
fit <- gam(x ~ s(tt,k=5) + season, family="poisson")
plot(fit)

次にsummary(fit)、トレンドの変化の有意性のテストを提供し、プロットはいくつかの信頼区間を提供します。ここでの仮定は、観測が独立しており、条件付き分布がポアソンであるということです。平均は時間の経過とともに滑らかに変化するため、これらは特に強い仮定ではありません。

トレンドを将来に予測する必要があるため、予測することはより困難です。データの最後でトレンドの線形外挿を受け入れたい場合(これは確かに危険ですが、おそらく数か月は問題ありません)、

fcast <- predict(fit,se.fit=TRUE,
               newdata=list(tt=101:112,season=seasonaldummyf(x,h=12)))

同じグラフで予測を表示するには:

plot(x,xlim=c(0,10.5))
lines(ts(exp(fcast$fit),f=12,s=112/12),col=2)
lines(ts(exp(fcast$fit-2*fcast$se),f=12,s=112/12),col=2,lty=2)
lines(ts(exp(fcast$fit+2*fcast$se),f=12,s=112/12),col=2,lty=2)

近似の(偏差)残差で外れ値を探すことで、異常な月を見つけることができます。


8

strucchangeを見てみたいと思うかもしれません:

(線形)回帰モデルの構造変化のテスト、監視、およびデート。strucchangeは、一般化された変動テストフレームワークと、Fテスト(Chowテスト)フレームワークのテスト/メソッドを備えています。これには、変動プロセス(CUSUM、MOSUM、再帰的/移動推定など)とF統計をそれぞれ適合、プロット、テストする方法が含まれます。変動プロセスを使用して、受信データをオンラインで監視することができます。最後に、構造変化を伴う回帰モデルのブレークポイントは、信頼区間とともに推定できます。データを視覚化する方法には常に重点が置かれています。」

PS。素敵なグラフィック;)


後で詳しく読む必要がありますが、はい、このパッケージは私がここで直面している問題の種類に間違いなく対処しています。ありがとう!また、プロットに関する親切な言葉に感謝します; p
マットパーカー

6

本当に高度なモデルが必要ですか?私が結核について知っていることに基づいて、伝染病がない場合、感染は確率的行為であるため、月NからのカウントはN-1からのカウントと相関しないはずです。(この相関関係は自己相関で確認できます)。その場合、月ごとのカウントの分布だけを分析すれば、一部のカウントが通常より大幅に高いかどうかを判断するのに十分な場合があります。
一方、季節、旅行の交通量、または相関する可能性があると考えられるものなど、他の変数との相関を探すことができます。このようなものが見つかった場合は、データの正規化に使用できます。


1
月Nのカウントについてのあなたの論点は、必ずしもN-1と相関しているわけではありません。結核のような成長の遅い病気では、これを注意深く調べる必要がありますが、ソースケースを報告する時間とセカンダリを報告する時間の間にどれくらいのラグがあるかを特定できると確信していますケース。
マットパーカー

1
しかし、私の質問の中心にあるのは、毎月のカウントの分布を分析することについてのあなたのポイントです。米国および私の地区の両方で、結核の明確な減少があります。たとえば、2009年と前年を比較すると、明らかに少ないケースがあります。2010年はまだ少なくなる予定です。私が特定しようとしているのは(この質問で説明するのが下手だった)、これらの低下が継続的な下降傾向の一部であるのか、それとも単なる下降変動の一部であるのかということです。ありがとう-あなたは私が問題についてもっと慎重に考えるようになった。
マットパーカー

5

多くの場合、このような疾患データは時系列分析の必ずしも優れたアプリケーションではないため、一般化された線形モデルで実行されます。

このデータが与えられた場合、ここで私がすることを行います(実際、それに類似したデータを使用して行いました)。

データを正しく見ている場合は、「2000年1月1日以降の月」としてより正確に記述される「時間」変数を作成します。次に、ポアソン分布(または負の二項分布)とおよそ次の形式のログリンクを使用して、Rで一般的な線形モデルを実行します。

log(Counts) = b0 + b1*t + b2*(t^2) + b3*cos(2pi*w*t) + b4*sin(2pi*w*t)

ここで、tは上記の時間で、wはインフルエンザのような毎年の病気に対して1/365です。通常、1 / nです。nは、病気の周期の長さです。それが結核に何をもたらすのか、私は知らない。

2つの時間傾向は、通常の季節変動以外に、時間の経過とともに有意な変動がある場合に表示されます。


4

Tukey管理チャートをデータに適用することを検討してください。


へー-これは実際に私が作成したプロットの1つで、投稿にはなりませんでした。私が抱えていた問題は、境界の計算方法を決定することです-私の最初の試みは、ポアソン境界で、ラムダをデータの平均に設定しましたが、分散が大きすぎて適切なポアソンにはなりません(実際に問題になるほど高いですか?わからない)。
マットパーカー

さらなる問題は、分布の中心が時間とともに変化する可能性があることです。たとえば、コロラドが結核患者の天国だった1900年代初期のデータを使用してこれらの境界を設定することは意味がありません。では、プロセスの長期的な変化に合わせてラインを最新に保ちながら、逸脱を特定できる適切な方法は何でしょうか?
マットパーカー

4

動的一般化線形モデル(DGLM)を使用してデータをモデル化することができます。Rでは、sspirパッケージとKFASパッケージを使用して、この種のモデルに適合できます。ある意味で、これは、ポアソン観測の対数平均が時間の滑らかな関数であると仮定する代わりに、確率的ダイナミクスに従うと仮定することを除いて、Robによって提案されたgamアプローチに似ています。


クール-KFASパッケージについて知りませんでした。状態空間のようなアプローチのためのdlmとdseもあり、Rユーザー向けの一般的な概要は次のとおり
コンジュゲート

2
dlmパッケージを強くお勧めします。DLMは他のソリューションほど使いやすいものではありませんdlmが、できる限り簡単にし、プロセスを順を追って説明してくれます。
ウェイン

2

私は間違いを犯すと思うので、主な質問はそのままにします(医療提供者のデータも分析しますが、正直に言って、これらのデータがあれば、標準的な技術を使用して分析します最高のことを願って、彼らは私には大丈夫に見える)。

Rパッケージに関しては、TSAライブラリを見つけましたが、実際に付属の本は非常に便利です。armasubsetsこのコマンドは、特に、私は偉大な時間の節約だと思います。


2

デミングが示唆するように、従来の列挙統計から脱出し、従来の分析統計、この場合は管理図に挑戦します。詳細については、Donald Wheeler PhDの本、特に彼の「Advanced Topics in SPC」を参照してください。


誰かがstats.stackexchange.com/questions/15809/でRのSPC(別名QC)チャートについて質問したところです。ここでパッケージのヒントを提供します。私自身はSPC / QCについて確信が持てません。それは、コンピューター以前の時代や、現場の労働者にとってより便利だったのかと思いますが、検討する価値があります。
ウェイン

実際、この答えは@babelproofreaderのものと冗長ですか?
ウェイン

2

「プロセスに実際の変化があるかどうかをテストするにはどうすればよいですか?また、低下を特定できる場合、その傾向と季節性をどのように使用して、発生する可能性のあるケースの数を推定できますか?」今後数ヶ月?」季節ごとのARIMA構造を含む期間ごとの依存関係を簡単に説明する伝達関数モデル(ARMAX)を開発します。介入検出などの経験的/分析的手法によって示唆された可能性のある、識別可能なレベルシフト、季節的パルス、ローカルタイムトレンド、およびパルスを組み込みます。この堅牢なモデルに「衰退」と一致する要因/シリーズが含まれている場合、あなたの祈りは答えられました。別の方法では、たとえば、ポイントT1で時間傾向の変化をテストするために仮説構造を追加し、2つのダミーX1 = 1,1,2,3 ,,,,,,を構築します。TおよびX2 = 0,0,0,0,0,0,0,1,2,3,4,5、....期間T1-1でゼロが終了する場所。期間T1での重要な傾向変化の仮説の検定は、X2の「t値」を使用して評価されます。

2011年9月22日編集

多くの場合、天候/気温は不特定の原因であるため、このような疾患データには月ごとの影響があります。真の尾側シリーズの省略では、ARIMAモデルはメモリまたは季節ダミーを代理として使用します。さらに、このようなシリーズでは、時間の経過に伴う構造の変化を反映したレベルシフトや現地時間のトレンドを使用できます。時間や時間の二乗、時間の三乗などのさまざまなアーティファクトを課すのではなく、データの自己回帰構造を活用することは、非常に有用であり、推定的でアドホックではないことがわかっています。「異常な値」は、追加の原因変数を示唆するのに役立つことが多く、少なくとも他のモデルパラメーターのロバストな推定につながることが多いため、「異常な値」を識別するように注意する必要があります。最後に、変動性/パラメータは時間とともに変化する可能性があるため、これらのモデルの改良は適切である可能性があることがわかりました。


T1 ポストホックを識別するために、どのようにp値を調整しますか(つまり、データをレビューした後にそれに気付く)?
whuber

すべての改良点、つまり拡張につながる診断チェックは、データがドロワーにある間に提案された構造と同じように扱われます。診断チェックに基づいて予測変数にラグを追加すると、別の帰無仮説がリストに追加されます。これは、重要ではない係数の削除と違いはありません。
IrishStat

@アイリッシュ私はそれに従いません。T1は遅れているようには見えません。変化点を規定しています。最初にデータを調べて変化点の場所を選択できる場合、「重要な」変更を見つけるのは簡単ではありませんか?
whuber

@whuberはい、そうです。しかし、「潜在的な組み込み」の代替(省略)変数を調べる回帰の段階的前進プロセスを考えてください。その意味で、結果のエラープロセスガウスをレンダリングするために、どの「省略された傾向」をモデルに追加するかを決定しているという点で違いはありません。
IrishStat

@アイリッシュそれは照明のアナロジーです。私が理解している場合、実際には、各期間に1つの潜在的な変数を持ち(その期間で可能な変更を指定する)、これらのどれをモデルに含めるべきかを決定する体系的なプロセスを呼び出します。これは、Bonferroniなどの標準的なpレベル調整手順が合理的に適用される可能性があることを示唆しています。それは有効でしょうか?
whuber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.