D'après un livre de simulation par ordinateur, j'ai obtenu cette équation.Comment utiliser le corrélogramme pour estimer la variance?
alt text http://i37.tinypic.com/x2ugxz.jpg
La première consiste à calculer correlogram, la seconde est de savoir comment utiliser corrélogramme pour estimer la variance.
L'approche commune pour estimer la variance d'observation n'est souvent pas incorrecte dans la simulation par ordinateur parce que les observations sont souvent liées.
Ma question est, la valeur que j'ai calculée à partir de mon programme est très grande, donc il ne pourrait pas être correct.
Je pense que parce que r [k] va se rapprocher de 0 quand k devient plus grand, la deuxième équation donnera une valeur assez grande, alors peut-être que l'équation est incorrecte?
Comme vous avez demandé, voici le programme complet (écrit en 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
difficile à dire sans les fonctions réelles que vous avez programmées. – nlucaroni
Avez-vous vérifié dans d'autres logiciels? Les formules décrivent-elles une limite supérieure? Pourriez-vous nous donner un lien vers le livre ou une autre source? –
Nous devons voir les données. Lorsque votre variance approche zéro, r [k] approchera l'infini. – Paul