代码之家  ›  专栏  ›  技术社区  ›  faceclean

如何用相关图估计方差?

  •  2
  • faceclean  · 技术社区  · 16 年前

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

    alt text

    首先是计算 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
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Rob Hyndman    16 年前

    相关图可用函数计算 acf() 我也是。

    -千