Untitled
unknown
plain_text
2 years ago
935 B
9
Indexable
import math
def calculate_dispersion(midpoints, frequencies):
n = sum(frequencies)
mean = sum(midpoints[i] * frequencies[i] for i in range(len(midpoints))) / n
# Variance
var = sum(((midpoints[i] - mean) ** 2) * frequencies[i] for i in range(len(midpoints))) / n
# Standard Deviation
std = math.sqrt(var)
# Quartile Deviation
q1 = n // 4
q3 = 3 * n // 4
q_deviation = (midpoints[q3] - midpoints[q1]) / 2
# Mean Deviation
mean_dev = sum(abs(midpoints[i] - mean) * frequencies[i] for i in range(len(midpoints))) / n
return var, std, q_deviation, mean_dev
# Example data
midpoints = [10, 20, 30, 40, 50]
frequencies = [5, 8, 12, 7, 3]
var, std, q_dev, mean_dev = calculate_dispersion(midpoints, frequencies)
print(f"Variance: {var}")
print(f"Standard Deviation: {std}")
print(f"Quartile Deviation: {q_dev}")
print(f"Mean Deviation: {mean_dev}")
Editor is loading...
Leave a Comment