タグ付けされた質問 「kalman-filter」

カルマンフィルターは、状態空間モデルの未知の状態の平均ベクトルと分散共分散行列を推定するためのアルゴリズムです。

5
時系列モデリングのための状態空間モデルとカルマンフィルターの欠点は何ですか?
状態空間モデルとKFのすべての優れた特性を考えると、状態空間モデリングとカルマンフィルター(またはEKF、UKF、粒子フィルター)を推定に使用することの欠点は何でしょうか?ARIMA、VAR、またはアドホック/ヒューリスティック手法などの従来の方法論について考えてみましょう。 調整するのは難しいですか?彼らは複雑で、モデルの構造の変化が予測にどのように影響するかを見るのは難しいですか? または、別の言い方をすれば、状態空間モデルに対する従来のARIMA、VARの利点は何ですか? 状態空間モデルの利点のみを考えることができます。 いくつかの静的モデルの構造的な破損、シフト、時変パラメーターを簡単に処理します。これらのパラメーターを状態空間モデルの動的状態にするだけで、モデルはパラメーターのシフトに合わせて自動的に調整されます。 欠損データを非常に自然に処理します。KFの移行ステップを実行し、更新ステップは実行しません。 状態空間モデル自体のオンザフライパラメーター(ノイズと遷移/観測行列の共分散)を変更できるため、現在の観測が他とは少し異なるソースからのものである場合は、実行せずに簡単に推定に組み込むことができます何か特別なこと; 上記のプロパティを使用すると、不規則な間隔のデータを簡単に処理できます。観測間の間隔に従って毎回モデルを変更するか、定期的な間隔を使用して観測のない間隔を欠損データとして扱います。 同じモデル内の異なるソースからのデータを同時に使用して、1つの基本量を推定できます。 いくつかの解釈不可能な動的コンポーネントからモデルを構築し、それらを推定することができます。 どのARIMAモデルも状態空間形式で表現できますが、単純な状態空間モデルのみがARIMA形式で正確に表現できます。



2
ポアソン分布を使用したプロセスのモデリングからネガティブ二項分布を使用するように切り替えますか?
\newcommand{\P}{\mathbb{P}}設定された期間複数回発生する可能性があるランダムプロセスがあります。このプロセスの既存のモデルからのデータフィードがあり、期間発生する多数のイベントの確率を提供します。この既存のモデルは古く、推定エラーのためにフィードデータでライブチェックを実行する必要があります。データフィードを生成する古いモデル(残りの発生するイベントの確率を提供している)は、ほぼポアソン分布です。TTT0≤t&lt;T0≤t&lt;T0 \leq t < Tnnnttt そのため、異常/エラーをチェックするために、残り時間とし、残り時間発生するイベントの総数とします。古いモデルは、推定値意味します。したがって、という仮定では、次のようになります。 古いモデル(observations)の出力から イベントレートを導出するには、状態空間アプローチを使用して、次のように状態関係をモデル化します tttXtXtX_ttttP(Xt≤c)P(Xt≤c)\P(X_t \leq c)Xt∼Poisson(λt)Xt∼Poisson⁡(λt)X_t\sim \operatorname{Poisson}(\lambda_{t})P(Xt≤c)=e−λ∑k=0cλktk!.P(Xt≤c)=e−λ∑k=0cλtkk!. \P(X_t \leq c) = e^{-\lambda}\sum_{k=0}^c\frac{\lambda_t^k}{k!}\,. λtλt\lambda_tytyty_{t}yt=λt+εt(εt∼N(0,Ht)).yt=λt+εt(εt∼N(0,Ht)). y_t = \lambda_t + \varepsilon_t\quad (\varepsilon_t \sim N(0, H_t))\,. 進化に状態空間[一定速度減衰]モデルを使用して古いモデルから観測値をフィルター処理し、フィルター処理された状態を取得し、推定イベント頻度の異常/エラーにフラグを立てます。フィードのデータであれば。 E (λ T | Y T)E (λ T | YのT)&lt; Y Tλtλt\lambda_tE(λt|Yt)E(λt|Yt)E(\lambda_t|Y_t)E(λt|Yt)&lt;ytE(λt|Yt)&lt;ytE(\lambda_t|Y_t) < y_t このアプローチは、全期間にわたって推定イベントカウントのエラーを検出するのに非常にうまく機能しますが、別の期間0 \ leq t &lt;\ sigma where \ …


1
隠れマルコフモデルと粒子フィルター(およびカルマンフィルター)の違い
ここに私の古い質問があります 隠れマルコフモデル(HMM)とパーティクルフィルター(PF)の違い(違いがある場合)を誰かが知っているかどうか、そして結果としてカルマンフィルター、またはどの状況でどのアルゴリズムを使用するかを尋ねたいと思います。私は学生で、プロジェクトをしなければなりませんが、最初にいくつかのことを理解する必要があります。 そのため、参考文献によれば、両方とも状態空間モデルであり、隠された(または潜在的または観察されていない)状態を含みます。ウィキペディア(Hidden_​​Markov_model)によると、「HMMでは、隠れ変数の状態空間は離散的ですが、観測自体は離散的(通常はカテゴリ分布から生成)または連続的(通常はガウス分布から)のいずれかです。隠れマルコフモデルは、連続状態空間を可能にするために一般化することもできます。そのようなモデルの例は、隠れ変数に対するマルコフ過程が線形動的システムであり、関連する変数間に線形関係があり、すべての隠れ変数と観測変数がガウス分布に従うモデルです。前述の線形動的システムなどの単純な場合、正確な推論は扱いやすい(この場合は、カルマンフィルターを使用)。ただし、一般に、連続的な潜在変数を持つHMMでの正確な推論は実行不可能であり、近似方法を使用する必要があります。」 しかし、私にとってこれは少しわかりにくいです...簡単な言葉で言えば、これは次のことを意味します(私が行ったより多くの研究にも基づいています): HMMでは、状態空間は離散または連続のいずれかです。また、観測自体は離散または連続のいずれかです。また、HMMは線形およびガウスまたは非ガウスの動的システムです。 PFでは、状態空間は離散または連続のいずれかです。また、観測自体は離散または連続のいずれかです。しかし、PFは非線形(および非ガウス?)動的システムです(その違いは違いますか?)。 カルマンフィルター(HMMと同じように見えます)は、線形およびガウスの動的システムがある場合に使用されます。 また、どのアルゴリズムを選択するかを知るには、これらはすべて同じように見えるので...また、PFは線形データ(たとえば、センサーKinectからの生データ)を持つことができると言う論文(英語ではない)を見つけました動きを認識する)、動的システムは非線形である場合があります。これは起こりますか?これは正しいです?どうやって? ジェスチャ認識では、研究者はHMMまたはPFのいずれかを使用できますが、各アルゴリズムを選択する理由を説明していません。これらのアルゴリズムを区別し、違いを理解し、最適なアルゴリズムを選択する方法を誰かが知っていますか? 私の質問が大きすぎる場合、または一部の部分が素朴な場合は申し訳ありませんが、説得力のある科学的な答えはどこにも見つかりませんでした。ご清聴ありがとうございました! ここに私の新しい質問があります(@conjugatepriorの助けによると) したがって、さらに読みながら、以前のコメントの一部を更新し、何が起こっているのかをもう少し理解したいと思います。 簡単に言えば、傘は動的ベイジアンネットワークであり、その下にHMMおよび状態空間のモデル(サブクラス)が含まれます(http://mlg.eng.cam.ac.uk/zoubin/papers/ijprai.pdf)。 さらに、2つのモデルの最初の違いは、HMMでは隠れた状態変数が離散的であり、観測値は離散的または連続的であるということです。PFでは、隠れ状態変数は連続的であり(実数値の隠れ状態ベクトル)、観測値はガウス分布を持ちます。 また、@ conjugatepriorによれば、各モデルには次の3つのタスクがあります:フィルタリング、平滑化、予測。フィルタリングでは、モデルHMMは離散隠れ状態変数にフォワードアルゴリズム法を使用し、状態空間は連続変数に使用し、線形動的システムはカルマンフィルターなどを使用します。 ただし、HMMを一般化して、連続状態空間を許可することもできます。 これらのHMMの拡張により、2つのモデルは概念的に同一であるように見えます(隠れマルコフモデルとマルコフ遷移モデルと状態空間モデルで述べられているように...?)。 私はもう少し正確な用語を使用していると思いますが、それでもすべてがぼやけています。誰でもHMMと状態空間モデルの違いは何ですか? 本当に自分のニーズに合った答えが見つからないからです。 もう一度ありがとう!

2
カルマンフィルターは、いつ単純な移動平均よりも良い結果を出しますか?
最近、ランダムな速度と加速度で粒子の位置を測定する簡単な例にカルマンフィルターを実装しました。カルマンフィルターはうまく機能することがわかりましたが、次に、これと移動平均を行うことの違いは何ですか?移動平均がカルマンフィルターよりも優れている約10サンプルのウィンドウを使用した場合、カルマンフィルターを使用すると移動平均を使用するだけの利点がある例を見つけようとしていることがわかりました。 移動平均はカルマンフィルターよりもはるかに直感的で、状態空間のメカニズムを気にせずに盲目的に信号に適用できます。私はここで基本的な何かを見逃しているように感じます、そして誰かが提供することができるどんな援助も感謝します。

1
線形ガウスカルマンフィルターの対数尤度パラメーター推定
n次元状態ベクトルの線形ガウス状態空間解析用に、カルマンフィルタリングを実行できるコードをいくつか作成しました(多くの異なるカルマンタイプのフィルター[情報フィルターなど]を使用)。フィルターはうまく機能し、いくつかの素晴らしい出力を得ています。ただし、対数尤度推定によるパラメーター推定は私を混乱させます。私は統計学者ではなく物理学者なので、親切にしてください。 線形ガウス状態空間モデルを考えてみましょう yt= Ztαt+ ϵt、yt=Ztαt+ϵt、y_t = \mathbf{Z}_{t}\alpha_{t} + \epsilon_{t}, αt + 1= Ttαt+ Rtηt、αt+1=Ttαt+Rtηt、\alpha_{t + 1} = \mathbf{T}_{t}\alpha_{t} + \mathbf{R}_{t}\eta_{t}, ここで、は観測ベクトル、は時間ステップ状態ベクトルです。太字の量は、対象のシステムの特性に従って設定される状態空間モデルの変換行列です。私たちも持っていますytyty_{t}αtαt\alpha_{t}ttt η T〜N I D (0 、QはT)、α 1〜N I D (1、P 1)。ϵt〜N私D (0 、Ht)、ϵt〜N私D(0、Ht)、\epsilon_{t} \sim NID(0, \mathbf{H}_{t}), ηt〜N私D (0 、Qt)、ηt〜N私D(0、Qt)、\eta_{t} \sim NID(0, \mathbf{Q}_{t}), α1〜N私D (a1、P1)。α1〜N私D(a1、P1)。\alpha_{1} \sim NID(a_{1}, \mathbf{P}_{1}). ここで、です。ここで、初期パラメーターと分散行列を推測することにより、この一般的な状態空間モデルのカルマンフィルターの再帰を導出および実装しました\ mathbf …

2
カルマンフィルターの使用方法
2D空間(サーフェス)にオブジェクトの軌跡があります。軌跡は一連の(x,y)座標として与えられます。私の測定値はノイズが多く、時には明らかな外れ値があることを知っています。だから、私は私の観測をフィルタリングしたい。 カルマンフィルターを理解している限り、それはまさに必要なことを行います。だから、私はそれを使用しようとします。ここで python実装を見つけました。そして、これはドキュメントが提供する例です: from pykalman import KalmanFilter import numpy as np kf = KalmanFilter(transition_matrices = [[1, 1], [0, 1]], observation_matrices = [[0.1, 0.5], [-0.3, 0.0]]) measurements = np.asarray([[1,0], [0,0], [0,1]]) # 3 observations kf = kf.em(measurements, n_iter=5) (filtered_state_means, filtered_state_covariances) = kf.filter(measurements) (smoothed_state_means, smoothed_state_covariances) = kf.smooth(measurements) 入力と出力の解釈に問題があります。それmeasurementsが私の測定値(座標)であると思います。例の測定値は整数であるため、少し混乱していますが。 私もいくつか提供する必要がtransition_matricesありobservation_matricesます。そこにどんな価値を置くべきですか?これらの行列はどういう意味ですか? 最後に、出力はどこにありますか?それがあるべきfiltered_state_meansかsmoothed_state_means。これらの配列には正しい形状があります(2, n_observations)。ただし、これらの配列の値は元の座標から離れすぎています。 それでは、このカルマンフィルターの使用方法は?

2
元のサンプルよりも小さいブートストラップサンプルを使用できますか?
ブートストラップを使用して、N = 250の企業とT = 50か月のパネルデータセットから推定パラメーターの信頼区間を推定したいと思います。パラメータの推定は、カルマンフィルタリングと複雑な非線形推定を使用するため、計算コストがかかります(数日間の計算)。したがって、M = N = 250会社のB(数百以上)のBサンプルを元のサンプルから描画し、パラメーターBを推定することは、これがブートストラップの基本的な方法であっても、計算上実行不可能です。 したがって、元の会社からの置き換えでランダムに描画されたブートストラップサンプルに小さいM(たとえば10)を使用し、モデルパラメータのブートストラップ推定共分散行列をスケーリングすることを検討しています(上記の例では1/25)で、完全なサンプルで推定されたモデルパラメーターの共分散行列を計算します。1NM1NM\frac{1}{\frac{N}{M}} 次に、望ましい信頼区間は、正規性の仮定に基づいて概算できます。または、同様の手順を使用してスケーリングされた小さいサンプルの経験的な信頼区間(たとえば、係数で縮小できます。1NM√1NM\frac{1}{\sqrt{\frac{N}{M}}} この回避策は意味がありますか?これを正当化する理論的な結果はありますか?この課題に取り組むための代替手段はありますか?

3
カルマンフィルターの尤度が、より滑らかな結果ではなくフィルター結果を使用して計算されるのはなぜですか?
カルマンフィルターを非常に標準的な方法で使用しています。システムは、状態方程式および観測方程式ます。xt+1=Fxt+vt+1xt+1=Fxt+vt+1x_{t+1}=Fx_{t}+v_{t+1}yt=Hxt+Azt+wtyt=Hxt+Azt+wty_{t}=Hx_{t}+Az_{t}+w_{t} 教科書は、カルマンフィルターを適用し、「一歩先の予測」(または「フィルターされた推定」)を取得した後、それらを使用して尤度関数を計算する必要があることを教えています。x^t|t−1x^t|t−1\hat{x}_{t|t-1} fyt|It−1,zt(yt|It−1,zt)=det[2π(HPt|t−1H′+R)]−12exp{−12(yt−Hx^t|t−1−Azt)′(HPt|t−1H′+R)−1(yt−Hx^t|t−1−Azt)}fyt|It−1,zt(yt|It−1,zt)=det[2π(HPt|t−1H′+R)]−12exp⁡{−12(yt−Hx^t|t−1−Azt)′(HPt|t−1H′+R)−1(yt−Hx^t|t−1−Azt)}f_{y_{t}|\mathcal{I}_{t-1},z_{t}}\left(y_{t}|\mathcal{I}_{t-1},z_{t}\right)=\det\left[2\pi\left(HP_{t|t-1}H^{\prime}+R\right)\right]^{-\frac{1}{2}}\exp\left\{ -\frac{1}{2}\left(y_{t}-H\hat{x}_{t|t-1}-Az_{t}\right)^{\prime}\left(HP_{t|t-1}H^{\prime}+R\right)^{-1}\left(y_{t}-H\hat{x}_{t|t-1}-Az_{t}\right)\right\} 私の質問は、「平滑化された推定」\ hat {x} _ {t | T}ではなく、「フィルターされた推定」\ hat {x} _ {t | t-1}を使用して尤度関数が計算されるのはなぜですか?ありません\帽子{X} _ {T | T}状態ベクトルのより良い推定?x^t|t−1x^t|t−1\hat{x}_{t|t-1}x^t|Tx^t|T\hat{x}_{t|T}x^t|Tx^t|T\hat{x}_{t|T}

2
ハミルトンからのARMA(p、q)の状態空間表現
私はハミルトンの第13章を読んでおり、彼はARMA(p、q)に対して次の状態空間表現を持っています。ましょう次のように.ThenはARMA(P、Q)プロセスである: \ {整列} y_tを開始- \ MU&= \ phi_1(Y_ {T-1} - \ MU) + \ phi_2(y_ {t-2}-\ mu)+ ... + \ phi_3(y_ {t-3}-\ mu)\\&+ \ epsilon_t + \ theta_1 \ epsilon_ {t-1} +。 .. + \ theta_ {r-1} \ epsilon_ {t-r + 1}。\ end {aligned} 次に、状態方程式を次のように定義します。r=max(p,q+1)r=max(p,q+1)r = \max(p,q+1)yt−μ=ϕ1(yt−1−μ)+ϕ2(yt−2−μ)+...+ϕ3(yt−3−μ)+ϵt+θ1ϵt−1+...+θr−1ϵt−r+1.yt−μ=ϕ1(yt−1−μ)+ϕ2(yt−2−μ)+...+ϕ3(yt−3−μ)+ϵt+θ1ϵt−1+...+θr−1ϵt−r+1. \begin{aligned} y_t -\mu …



1
状態空間モデルでのカルマンフィルターの説明
状態空間モデルでのカルマンフィルターの使用に関連する手順は何ですか? 私はいくつかの異なる処方を見てきましたが、詳細についてはわかりません。たとえば、Cowpertwaitは次の方程式のセットから始まります。 θT=GTθT-1+WTyt= F』tθt+ vtyt=Ft′θt+vty_{t} = F^{'}_{t}\theta_{t}+v_{t} θt= Gtθt − 1+ wtθt=Gtθt−1+wt\theta_{t} = G_{t}\theta_{t-1}+w_{t} ここで、、および 、は未知の推定値であり、は観測値です。W T〜N (0 、W T)θ T、Y Tθ0〜N(m0、C0)、vt〜N(0 、Vt)θ0∼N(m0,C0),vt∼N(0,Vt)\theta_{0} \sim N(m_{0}, C_{0}), v_{t} \sim N(0,V_{t})wt〜N( 0 、Wt)wt∼N(0,Wt)w_{t} \sim N(0, W_{t})θtθt\theta_{t}ytyty_{t} Cowpertwaitは、関係する分布を定義します(それぞれ、事前、可能性、事後分布): Y T | θ T〜N (Fθt|Dt −1〜N( at、 Rt)θt|Dt−1∼N(at,Rt)\theta_{t}|D_{t-1} \sim N(a_{t}, R_{t}) θT| DT〜N(M、T、CT)yt|θt〜N(F』tθt、Vt)yt|θt∼N(Ft′θt,Vt)y_{t}|\theta_{t} \sim …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.