Untitled

 avatar
unknown
plain_text
a year ago
1.5 kB
3
Indexable
import numpy as np

# Grouped data
intervals = [(0, 10), (10, 20), (20, 30), (30, 40), (40, 50)]
frequencies = [5, 8, 12, 10, 5]

# Midpoints of the intervals
midpoints = [(interval[0] + interval[1]) / 2 for interval in intervals]

# Calculate the data points for each interval
data_points = [midpoint * frequency for midpoint, frequency in zip(midpoints, frequencies)]

# Total frequency
total_frequency = np.sum(frequencies)

# Mean
mean = np.sum(data_points) / total_frequency

# Variance
variance = np.sum([(midpoint - mean)**2 * frequency for midpoint, frequency in zip(midpoints, frequencies)]) / total_frequency

# Standard deviation
std_deviation = np.sqrt(variance)

# Interquartile range (IQR)
cumulative_frequency = np.cumsum(frequencies)
Q1_index = np.argmax(cumulative_frequency >= total_frequency / 4)
Q3_index = np.argmax(cumulative_frequency >= 3 * total_frequency / 4)
Q1 = intervals[Q1_index][0] + ((total_frequency / 4 - cumulative_frequency[Q1_index - 1]) / frequencies[Q1_index]) * (intervals[Q1_index][1] - intervals[Q1_index][0])
Q3 = intervals[Q3_index][0] + ((3 * total_frequency / 4 - cumulative_frequency[Q3_index - 1]) / frequencies[Q3_index]) * (intervals[Q3_index][1] - intervals[Q3_index][0])
iqr = Q3 - Q1

# Coefficient of variation (CV)
cv = (std_deviation / mean) * 100

print("Mean:", mean)
print("Variance:", variance)
print("Standard Deviation:", std_deviation)
print("Interquartile Range (IQR):", iqr)
print("Coefficient of Variation (CV):", cv)
Editor is loading...
Leave a Comment