R:如何生成与先前生成的偏差自相关的偏差

问题描述

我有一个像这样的 R6 对象生成器:

library(R6)
library(MASS)

myClass <- R6Class("myClass",private = list(
                     ..vals = vector(mode = "numeric",2L),..estimate_vals = vector(mode = "numeric",..prevIoUs_estimate_vals = list()
                   ),public = list(
                    initialize = function() {
                      private$..vals <- MASS::mvrnorm(1,c(0,0),matrix(c(2,-1,2),ncol = 2,byrow = TRUE,dimnames = list(c("first","second"),c("first","second"))))
                    }),active = list(
                     update_estimate = function() {
                       
                       if (length(private$..prevIoUs_estimate_vals) < 1) {
                         private$..estimate_vals <- rnorm(n = length(private$..vals),mean = private$..vals,sd = 1.414214)
                       } else {
                         ####
                         ## private$..estimate_vals <- 
                         ## GENERATE DEVIATES THAT ARE AUTOcorrelated WITH private$..prevIoUs_estimate_vals 
                         #### 
                       }
                       private$..prevIoUs_estimate_vals <- append(list(private$..estimate_vals),private$..prevIoUs_estimate_vals)
                       
                     }
                   )
)

一个新对象被初始化时,private 字段 ..vals 会填充一组从多元正态分布中提取的偏差。一旦设置,它们就永远不会改变:

obj <- myClass$new()

然后我使用 private$..vals 绑定 active 估计 update_estimate 中的值:

obj$update_estimate

函数首先通过查看 length 字段 private..prevIoUs_estimate_vals 来检查这些值之前是否已经估计过。如果没有,它会估计它们,使用 rnorm 并将 mean 设置为 private$..vals 中的值。如果之前已经估计过它们,我希望从相同的分布中得出一个新的估计值,但要使偏差与 private$prevIoUs_estimate_vals 自相关。无论哪种情况,新的估计值都会附加到先前估计值的 list 中。

这个想法是新的偏差会受到以前的偏差的影响(我认为我将其称为自相关是正确的......)。但我不知道我该怎么做。

提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)