【问题标题】:How to use correlogram to estimate variance?如何使用相关图估计方差?
【发布时间】:2010-12-10 22:41:56
【问题描述】:

从一本计算机模拟的书中,我得到了这两个方程。

第一个是计算correlogram,第二个是如何使用相关图估计方差。

在计算机模拟中,估计观察方差的常用方法通常不正确,因为观察通常是相关的。

我的问题是,我从我的程序中计算出来的值非常大,所以它不可能是正确的。

我认为因为当 k 变大时 r[k] 会接近 0,所以第二个方程会给出一个很大的值,所以也许方程不正确?

正如你所问,这是整个程序(用 Python 编写):

@property
def autocorrelation(self):
    n = self.packet_sent
    mean = self.mean
    waiting_times = self.waiting_times
    R = [ sum([(x - mean) ** 2 for x in waiting_times[:-1]]) / n ]
    #print R

    for k in range(1, n / 4 + 1):
        R.append(0)
        for i in range(0, n - k):
            R[k] += (waiting_times[i] - mean) * (waiting_times[i + k] - mean)
        R[k] /=  n

    auto_cor = [r / R[0] for r in R]
    return auto_cor

@property
def standard_deviation_wrong(self):
    '''This must be a wrong method'''
    s_x = self.standard_deviation_simple
    auto_cor = self.autocorrelation
    s = 0
    n = self.packet_sent
    for k, r in enumerate(auto_cor[1:]):
        s += 1 - (k + 1.0) * r / n
        #print "%f %f %f" % (k, r, s)
    s *= 2
    s += 1
    s = ((s_x ** 2) * s) ** 0.5
    return s

【问题讨论】:

  • 如果没有您编写的实际功能,很难分辨。
  • 您是否重新检查过其他软件?这些公式是否描述了一个上限?您能给我们一个指向这本书的链接或其他来源吗?
  • 我们需要查看数据。当您的方差接近零时,r[k] 将接近无穷大。

标签: math statistics simulation covariance time-series


【解决方案1】:

也可以使用函数acf() 计算相关图。

-k

【讨论】:

  • 哦,我只想到你可以尝试使用 acf() (希望它的实现是正确的)来缩小关于你的错误原因的搜索空间。
猜你喜欢
  • 1970-01-01
  • 2012-12-27
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 2017-11-21
  • 2021-12-01
相关资源
最近更新 更多