EPID 633パラメータ推定


演習6:パラメータ推定
EPID 633
シナリオ&セットアップ
Aインフルエンザ様疾患Stardewバレー郡を通じて広がってきました。あなたはStardewバレーの保健当局が介入を設計するのに役立ちますいくつかの重要なパラメータを推定するために使用する疾患の予測モデルを開発するように頼まれました。

病気の感染性期間
の報告割合(すなわち例どのような割合が報告されている)
の伝送速度および/または基本的な再生数(R0)
彼らはあなたのモデルが正常にそこに例数を予測することができることに加えて期待しています今後の数週間になります。

データセット

ここでは、データ・セットは、私たちがして、毎週現在、病気の個体数に関するデータを作業になりますことです。

時間= C(0、7、14、21、28、35、42、49、56、63、70、77、84、91、98)
データ= C(97、271、860、1995、4419、6549、 6321、4763、2571、1385、615、302、159、72、34)


1)SIRモデルのセットアップ
スタートは、SIRモデルを設定する数式を使用して:
この場合、我々は、影響を受けやすい感染性、および回復の人口の割合であることをS、I、およびRを取りますよ。私たちが使うことになる測定方程式は次のとおりです。

Y = KNI

ここで、Nは総人口の大きさであり、kは、報告画分です。NIは、現在感染し、実際の人の合計数があるので、私は、現在、感染した個体の割合である。なお、この式を打破するには。次いで、Y = KNI観察症例の総数が現在感染表します。

上記のコードはモデル次第、ということを指摘します。

Stardewバレー郡は、N = 200000の総人口を持っています。あなただけの数(それはあなたが推定のために使用しますことを、パラメータベクトルの一部ではないのIE)として、これをコーディングすることができるように、我々は、固定(すなわち、推定ではない、知られている)のパラメータとしてこれを扱います。

t = 0で、approximiately 200人が感染していた、と誰もまだ回復していませんでした。初期条件は(すなわち、それぞれX0 = C(0.999,0.001,0)S、I、及びR用)人口の99.9%が感受性であったことであった、そして0.1%が感染したことが、この手段。

パラメータを起動するために、我々は= 0.4のβ取ることができます。これまでのところ、感染性期間はおよそ4日のように見えるので、私たちは、γ= 1/4 = 0.25の推測で始めることができます。報告画分について、そのkは= 1つまり、我々は完璧な報告を(すなわち、すべてのケースが報告されている)持っていると仮定することから始めましょう。

さて、0〜100日からあなたのモデル出力(y)をプロットし、そして(データ用モデルとポイント/ドットの回線を使用)と同じプロット上のデータをプロットします。どれだけのモデルはパラメータのための私たちの最初の推測を使用してデータを一致させるのでしょうか?あなたは、現在のモデルのフィット感を持つすべての問題に気づくのですか?
2)可能性の設定
次に、我々は、モデルでは、この場合、負の対数尤度のための適合度を評価する関数を作成する必要があります。私たちは、オプティマイザにこの関数を渡す
最高のフィットパラメータ推定(私たちの関数を最小化すなわちパラメータ値)を見つけるために私たちの関数を使用するであろう、代写EPID 633作业、代做R编程语言作业OPTIM。

SIRモデルの尤度関数アップコード、あなたのデータは、レートパラメータyとポアソン分布から取られていると仮定使用して(私は以下のテンプレートコードでポアソン尤度フォームを用意しましたが、あなたがしたい場合は、それを自分で導き出す試すことができます!それは)だけではなく、正規分布のポアソン分布を使用し、ちょうど私たちは月曜日にやったガウス可能性のようなものです。ここでは尤度関数がかかると全体的な構造だ(これは単なるテンプレートであることに注意してくださいあなたは、あなたが物事に名前を付ける方法に応じて、独自のコードのためなどにこれを適応する必要があります!):

CalcNLL =機能(パラメータ、ODEfunction、X0、回、データ){
#関数がそれを行うために---負の対数尤度を計算します、我々が必要:
#を-パラメータ(これはOPTIMの最良を見つけるためにいじるますものですフィット)

# -あなたはパート1で書いたSIRモデルのODE機能)。OPTIMが使用されます
、それはデータにモデルを比較できるようにモデルをシミュレートするために、#を
#1
# - SIRodeでモデルをシミュレートするために、我々はまた、初期条件(X0)が必要
#と時間のポイント(回)

# -最後に、我々我々は、モデルと比較することができますので、NLLにデータを渡す必要
#データを

#私たちはパラメータに負の値を含めたくないので、どのような現在のパラメータ値の絶対値を取ることによって開始する(あなたが混乱している場合はより多くの私に尋ねる、これは愚かなトリックのビットであることに注意)している
のparams = ABS(のparams)

#シミュレートモデル
xcurr =頌歌(X0、回、ODEfunction、のparams)#は、あなたのモデルを実行するために使用しているものは何でもODEのコードでこれを置き換えます!

#測定式
Y = K * N * I#は、 "K"、 "N"、そして、彼らはあなたのコードである"I"何で、例えばのparams [1]、xcurr [3]など置き換える

#の負の対数尤度を(NLL)
NLL =合計(Y) -サム(データ*ログ(Y))#ポアソンMLの
#ノートこれは少し短縮バージョンである-が不足している追加の定数項がありますが、それは最適な推定値を変更しないでください。代替的に、行うことができます:
#NLL = -sum(ログ(dpois(ラウンド(データ)、丸(Y))))#円形であるB / Cポアソンあるため(整数)カウントデータ

#リターン(NLL)
}

カップルのためのあなたの尤度関数を評価し、あなたのデフォルトパラメータを値-してみてください、その後、= 0.42、β= 0.38(他のパラメータを残すがデフォルトに等しい)βをとってみてください。あなたは、βは、フィット感を向上させるためにどの方向移動する、OPTIMであれば、これに基づいて?この試合では、パート1での初期モデルのフィット感で見たものとしていますか?

3)パラメータ推定
さて、オプティマイザを実行するための時間!提供されたデータセットから、あなたのモデルパラメータを推定します。あなたはそれに取り組んでいる一方で、また、最終的な、最高のフィット負の対数尤度値を引きます。関数OPTIMは、以下の入力をとります。

パラメータをOPTIMは、モデルパラメータの初期値となりますための第1の入力を開始します

コスト関数は - 私達の場合には、これは我々が上記なさたちの可能性、計算機です

コスト関数の引数 - コスト関数は(データ等、時間、あなたのODE機能、などのすなわち他のすべての費用関数のニーズを、)かかることを、すべての余分な引数

OPTIM(起動パラメータ、コスト関数、費用関数の引数):ある構造はそう。ここにあなたのオプティマイザの設定方法のテンプレートです:

###まず、OPTIM実行###
結果= OPTIM(initialparams、FN = CalcNLL、ODEfunction = SIRode、回=回、データ=データ、X0 = X0)#あなたは私たちが「時間を持っている理由について混乱している場合を掲載していません=回、 'データ=データ'など!

パラメータ推定値###引き出し###
= paramestsする$パー結果

###、最終的なコスト関数値(-log可能性を)引き出し###
negLL = $値は結果
(あなたがパート1で行ったように)同じプロット上のモデルとデータをプロットします。どのようにあなたのモデルの適合の外観は現在のでしょうか?どのようにあなたのパラメータは、あなたの初期推定から変化したのか?あなたのパラメータ(β、γ、およびk)のそれぞれについて、推定値とは何ですか?kの見積もりは、介入の努力のためにどのような意味を持つのでしょうか?

4)予測は
してみましょうあなたがフィットし、継続的な流行を予測しようとしている場合を考える(つまり、不完全なデータを持ちます)。のみにデータを切り捨て最初の5つのデータ点を含む、その後、モデルパラメータを再フィット。

どのようにあなたのパラメータ推定値の変更を行いますか?

フルタイム(0〜100日)のためのモデルをシミュレートし、完全なデータセットと一緒にモデルの予測をプロットします。どれだけあなたは流行のダイナミクスを予測したのですか?

今、予測を行い、再度、しかし、我々は唯一の流行、どのようにあなたの見積もりや予測の変化の最初の4つのデータポイントを持っていると仮定?

5)モデル比較と赤池情報量基準(AIC)は
最後に、我々は少し複雑なモデルに使用してきたSIRモデルを比較してみましょう、SEIRモデルは:
ここで、Eは、まだ感染されますが、人口の割合を表します伝染(すなわち潜伏感染)。

仮定すると、このモデルと完全なデータセットを使用してパラメータを推定します:

S、E、I、及びRの初期条件は、X0 = C(0.9985,0.001,0.0015,0)を

初期パラメータ推測はparamsは= C(= 0.25、 'カッパ' = 1 'β' = 0.4、 'アルファ' = 1、 'ガンマ')であります

あなたは(Y = KNI)前と同じ測定方程式を使用することができます。あなたはパート3でSIRモデルで見たものとは異なる/フィット一見優れていますか?どのようにパラメータ推定値は、SIRモデルと比較して、このモデルと異なっていますか?

両方のモデルのためにAICを計算して比較します。どちらのモデルは、下の(良い)AICを持っていますか?2つのAICはどのように異なっていますか?:AICがによって与えられることを思い出してください
2(-LL + NP)
-LLが負の対数尤度であり、NPはパラメータの数が推定される(SEIRモデルの、すなわちSIRモデルの3及び4)。

2π)エキストラ問題は(だけで楽しい-これらはのために必要されていないとに回転する必要はありません!)
ポアソン可能性のためにdpoisを使用して、または最小二乗法を使用して、代替費用関数、例えばを試してみてください。あなたは、フィット感の違いに気づくのですか?何それはパラメータ推定値を生成するためにかかる時間では?

(あなたはこのためplotly ggplot2など手の込んだプロットパッケージを試してみることができ)、βおよびγの関数として可能性のヒートマップを作ってみましょう。どのようにあなたが持っているデータの量を尤度の変化の形状を減らすないよう?

 

プロ、とても信頼できるので。必要に応じて、追加 QQ 99515681 または マイクロチャネル: codehelpを

おすすめ

転載: www.cnblogs.com/blogjava2/p/11923399.html