從計算機模擬的書中,我得到了這兩個等式。如何使用相關圖估計方差?
alt text http://i37.tinypic.com/x2ugxz.jpg
首先是計算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
如果沒有您編程的實際功能,很難說清楚。 – nlucaroni 2009-10-28 20:31:58
你有沒有檢查過其他軟件?這些公式是否描述了一個上限?你能給我們一個鏈接到這本書,或其他來源? – 2009-10-28 20:44:01
我們需要查看數據。當你的方差接近零時,r [k]將接近無窮大。 – Paul 2009-10-28 23:03:01