Untitled
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