2009-10-28 4 views
2

컴퓨터 시뮬레이션 한 책에서이 두 방정식을 얻었다. 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 
+0

프로그래밍 된 실제 기능 없이는 말하기 어렵습니다. – nlucaroni

+0

다른 소프트웨어에서 다시 확인해 보셨습니까? 상한을 설명하는 수식입니까? 책이나 다른 출처에 대한 링크를 주시겠습니까? –

+0

데이터를 확인해야합니다. 분산이 0에 가까워지면 r [k]는 무한대에 접근합니다. – Paul

답변

1

correlogram 너무 기능 acf()으로 계산 될 수있다 : 당신이 요청으로

, 여기 (파이썬으로 작성된) 전체 프로그램입니다.

-k

+0

R 언어로 acf()를 의미합니까? 나는 그것을 시도했다. – ablmf

+0

아, 내가 염두에 두었던 것은 단순히 버그의 원인과 관련하여 검색 공간을 좁히기 위해 acf() (잘하면 구현이 올바른)를 사용할 수 있다는 것입니다. – knguyen

관련 문제