Files
sci-gui-agent-benchmark/annotation/experiments/delays/delay.py

49 lines
1.6 KiB
Python

import glob
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
from scipy.stats import sem, t
def calculate_confidence_interval(data, confidence=0.95):
n = len(data)
m = np.mean(data)
std_err = sem(data)
h = std_err * t.ppf((1 + confidence) / 2, n - 1)
return m, m-h, m+h
runs = glob.glob("run*.txt")
TOTAL_EVENTS = 22509
percent_delays = []
all_delays = []
for run in runs:
with open(run, "r") as f:
delays = [float(line.split()[3]) for line in f if float(line.split()[3]) > 0] # consider only positive delays
percent_delays.append((len(delays) / TOTAL_EVENTS) * 100)
all_delays.extend(delays)
average_percent_delays = np.mean(percent_delays)
confidence_interval_percent_delays = calculate_confidence_interval(percent_delays)
print(f"Average percentage of delayed events across all runs: {average_percent_delays:.2f}%")
print(f"95% Confidence interval: ({confidence_interval_percent_delays[1]:.2f}%, {confidence_interval_percent_delays[2]:.2f}%)")
if all_delays:
mean_delay = np.mean(all_delays)
confidence_interval_delays = calculate_confidence_interval(all_delays)
print(f"Mean delay time: {mean_delay:.2f}")
print(f"95% Confidence interval for delay time: ({confidence_interval_delays[1]:.2f}, {confidence_interval_delays[2]:.2f})")
else:
print("No delay data available for calculation.")
sns.histplot(all_delays, bins=30, kde=False)
plt.xlabel('Delay Time (ms)')
plt.ylabel('Frequency')
plt.yscale('log')
plt.title('Histogram of Delay Times (macOS)')
plt.savefig('delays.png', dpi=300)
plt.show()