컴퓨터 시뮬레이션 한 책에서이 두 방정식을 얻었다. correlogram을 사용하여 분산을 추정하는 방법은 무엇입니까?
alt text http://i37.tinypic.com/x2ugxz.jpg
첫 번째는 분산을 추정 correlogram를 사용하는 방법이며, correlogram을 계산하는 것이다.관측치의 분산을 추정하는 일반적인 방법은 관측치가 종종 관련되기 때문에 컴퓨터 시뮬레이션에서 부정확하지 않습니다.
제 질문은 제 프로그램에서 계산 한 값이 너무 커서 올바른 것이 아니란 것입니다.
k가 커질 때 r [k]가 0에 가까워지기 때문에 두 번째 방정식이 상당히 큰 값을 갖기 때문에 방정식이 올바르지 않다고 생각합니까?
@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
다른 소프트웨어에서 다시 확인해 보셨습니까? 상한을 설명하는 수식입니까? 책이나 다른 출처에 대한 링크를 주시겠습니까? –
데이터를 확인해야합니다. 분산이 0에 가까워지면 r [k]는 무한대에 접근합니다. – Paul