首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用pykalman进行卡尔曼回归时,如何估计误差?

在使用pykalman进行卡尔曼回归时,如何估计误差?
EN

Stack Overflow用户
提问于 2018-10-01 18:48:35
回答 1查看 278关注 0票数 0

我用pykalman进行回归,但我想估计回归系数的误差。特别是,我们有以下表达式:

Y(t) = B(t)X(t) +v

如果回归系数(B)本身是一个随机过程,则:

B(t) = B(t-1) +w

因此,我所处理的“噪声”由v和w表示,表示高斯噪声,其中:

W~ N(0,Q)

V~ N(0,R)

现在-我想把信号/噪声比表示为Q / R。我的问题是如何从pykalman过程中提取这些值。目前,我的代码只返回回归系数,但如何获得Q和R?

代码语言:javascript
复制
 def UpdateKalman(self, ins1, ins2):
        obs_mat = np.array([[ins1, 1.0]])
        means, covs = self.kf.filter_update(self.previous_state_means.T,
                                            self.previous_state_covs[0],
                                            observation=np.asarray(ins2),
                                            observation_matrix=obs_mat)

        self.previous_state_covs = covs
        self.previous_state_means = means
        beta = means[:, 0][0]
        return beta
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-07 22:42:22

如果你想得到观测协方差(我理解你在你的问题中称之为R)和转换协方差(我理解你称之为Q),你可以直接从pykalman.standard.KalmanFilter类对象中得到它们。

假设在您的示例中,self.kf是suck对象,那么您可以获得如下所示:

代码语言:javascript
复制
   R = self.kf.observation_covariance
   Q = self.kf.transition_covariance

我的理解是,这个对象和这些矩阵是通过filter_update步骤在代码中更新的,即使通过它,也不会作为该函数的输出返回。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52597147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档