既知の外因性入力に対するstatsmodelsMLEModelクラスの状態切片の使用

私はオゴレクです

statsmodels状態空間定式化の状態切片c_tは、外因性制御変数を状態空間フレームワークに挿入する方法のようです。しかし、私はそれを動作させることができません。私が考えることができる最も単純な例は、ランダムノイズと組み合わされたベースラインからの既知のオフセットを持つ平均モデルでした。statsmodelsステートスペース表記では、次のようになります。

a_t = 0 * a_ {t-1} + sin(pi * t / 24)+ 0 * eta_t、

y_t = 30 + 1 * a_t + e_t、

ここで、t = 0、...、999およびe_t〜N(0、4)。これを実装しようとした方法を以下に示します。

# Python 3.6.3, Statsmodels 0.9.0
import numpy as np
from statsmodels.tsa.statespace.mlemodel import MLEModel

N = 1000
t = np.arange(N)
alpha = 2 * np.sin(np.pi * t / 24)
y = 30 + alpha + 2 * np.random.randn(N)

class Simple(MLEModel):
    start_params = [28, 2.2]
    param_names = ['int', 'sigma2_e']

    def __init__(self, endog, state_int):
        super().__init__(endog, k_states = 1)

        self.initialize_stationary()
        self.loglikelihood_burn = 100

        self['transition', 0, 0] = 0.0
        self['selection', 0, 0] = 0.0
        self['design', 0, 0] = 1.0

        self.state_intercept = np.reshape(state_int, (1, N))

    def update(self, params, **kwargs):
        params = super().update(params, **kwargs)

        self['obs_intercept', 0, 0] = params[0]
        self['obs_cov', 0, 0] = params[1]

my_Simple = Simple(y, alpha)
mle_results = my_Simple.fit(method = 'nm', maxiter = 1000)
mle_results.summary()

推定でオフセットを考慮に入れると、約4の分散推定が得られると予想されます。ただし、それらを無視すると、正弦波からの変動の方が高くなります。実行するとわかるように、実際には高くなっています。

ここに何かアイデアはありますか?

cfulton

MLEModelクラスで状態空間システム行列に属性設定表記を使用できないため、self.state_intercept呼び出しは失敗します。たとえば、次の場合:

print(mle_results.filter_results.state_intercept)

次に、次のようになります。

[[0.]]

代わりに、次のことを行う必要があります。

self['state_intercept'] = np.reshape(state_int, (1, N))

予想どおり、分散の推定値は約4になります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

既知の切片で多項式をフィッティングする

分類Dev

フック機能の状態変化に対する入力フォーカスの喪失

分類Dev

POSTMANでjsonを使用して1対多の入力を休止状態にする

分類Dev

NUnit、SQL Server、およびUIテストでトランザクションをロールバックすることにより、データベースの既知の状態を維持する適切な方法

分類Dev

チェックボックス入力の状態を動的に更新する

分類Dev

pysparkで既知の適切な値をnullに入力します

分類Dev

ImportError:フラスコ内に既知の親パッケージがない状態で相対インポートを試行しました

分類Dev

入力チェックボックスAngularJSの状態を変更する

分類Dev

ループを使用して最後に既知の保存済みフィールドをNAに入力する

分類Dev

すべての入力が同じ親divを共有しているときに、クリック時にラジオ入力要素のチェック状態を切り替えるにはどうすればよいですか?

分類Dev

ReactのuseStateフックを使用するときにnull許容状態を入力する正しい方法

分類Dev

固定された既知のデータをクラスに格納する(c ++)

分類Dev

状態の作成におけるKubernetes入力ブロック

分類Dev

角度の状態に関するngクラスの問題?

分類Dev

コントローラの作成アクションでSelectListに状態を入力する方法

分類Dev

TypeScriptで既知および未知のキーを使用してオブジェクトを入力するにはどうすればよいですか

分類Dev

フローテストの入力状態を取得する方法

分類Dev

reactの入力タグに状態変数値を追加する

分類Dev

複数の入力を状態に設定する

分類Dev

各ループ内でrspecテストに自己を生成すると、最後の既知の状態が生成されます

分類Dev

リストのNAにPythonの最後の既知の値を入力します

分類Dev

入力フィールドの有効/無効状態を制御するために使用されるknockout.jsチェックボックス

分類Dev

既知のタイプのプロパティのみを使用してリテラルを入力します

分類Dev

クラスに多対多のlinqデータを入力する

分類Dev

Pythonで既知のクラスにスーパークラスを動的に追加する

分類Dev

Flask / Pythonエラー:Flaskの実行時に、既知の親パッケージがない状態で相対インポートを試行しました

分類Dev

既知の区切り文字を使用して不明な出力を解析するLinuxBashスクリプト

分類Dev

ノードは、どのノードがクラスターの現在の状態を確認したかをどのように知るのですか?

分類Dev

ラムダ= 1のSARSAの適格性トレースが、何度もアクセスされる状態とアクションのペアに対して爆発するのを防ぐにはどうすればよいですか?

Related 関連記事

  1. 1

    既知の切片で多項式をフィッティングする

  2. 2

    フック機能の状態変化に対する入力フォーカスの喪失

  3. 3

    POSTMANでjsonを使用して1対多の入力を休止状態にする

  4. 4

    NUnit、SQL Server、およびUIテストでトランザクションをロールバックすることにより、データベースの既知の状態を維持する適切な方法

  5. 5

    チェックボックス入力の状態を動的に更新する

  6. 6

    pysparkで既知の適切な値をnullに入力します

  7. 7

    ImportError:フラスコ内に既知の親パッケージがない状態で相対インポートを試行しました

  8. 8

    入力チェックボックスAngularJSの状態を変更する

  9. 9

    ループを使用して最後に既知の保存済みフィールドをNAに入力する

  10. 10

    すべての入力が同じ親divを共有しているときに、クリック時にラジオ入力要素のチェック状態を切り替えるにはどうすればよいですか?

  11. 11

    ReactのuseStateフックを使用するときにnull許容状態を入力する正しい方法

  12. 12

    固定された既知のデータをクラスに格納する(c ++)

  13. 13

    状態の作成におけるKubernetes入力ブロック

  14. 14

    角度の状態に関するngクラスの問題?

  15. 15

    コントローラの作成アクションでSelectListに状態を入力する方法

  16. 16

    TypeScriptで既知および未知のキーを使用してオブジェクトを入力するにはどうすればよいですか

  17. 17

    フローテストの入力状態を取得する方法

  18. 18

    reactの入力タグに状態変数値を追加する

  19. 19

    複数の入力を状態に設定する

  20. 20

    各ループ内でrspecテストに自己を生成すると、最後の既知の状態が生成されます

  21. 21

    リストのNAにPythonの最後の既知の値を入力します

  22. 22

    入力フィールドの有効/無効状態を制御するために使用されるknockout.jsチェックボックス

  23. 23

    既知のタイプのプロパティのみを使用してリテラルを入力します

  24. 24

    クラスに多対多のlinqデータを入力する

  25. 25

    Pythonで既知のクラスにスーパークラスを動的に追加する

  26. 26

    Flask / Pythonエラー:Flaskの実行時に、既知の親パッケージがない状態で相対インポートを試行しました

  27. 27

    既知の区切り文字を使用して不明な出力を解析するLinuxBashスクリプト

  28. 28

    ノードは、どのノードがクラスターの現在の状態を確認したかをどのように知るのですか?

  29. 29

    ラムダ= 1のSARSAの適格性トレースが、何度もアクセスされる状態とアクションのペアに対して爆発するのを防ぐにはどうすればよいですか?

ホットタグ

アーカイブ